diff --git a/channels/chan_oss.c b/channels/chan_oss.c
index 7fc4f40521781e20ed0d507a18407a0283ae6a2f..4459b4b6fb57c056f8b5931ba1d32c8ca9673504 100644
--- a/channels/chan_oss.c
+++ b/channels/chan_oss.c
@@ -53,7 +53,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
 #ifdef __linux
 #include <linux/soundcard.h>
-#elif defined(__FreeBSD__) || defined(__CYGWIN__) || defined(__GLIBC__)
+#elif defined(__FreeBSD__) || defined(__CYGWIN__) || defined(__GLIBC__) || defined(__sun)
 #include <sys/soundcard.h>
 #else
 #include <soundcard.h>
diff --git a/main/Makefile b/main/Makefile
index 1d80f1198a125c566a04ba8f8aab51a6ce314cc8..ba4c05a3b93bfb6e455c646e3838bb4b60f954c6 100644
--- a/main/Makefile
+++ b/main/Makefile
@@ -209,7 +209,9 @@ ASTSSL_LIB:=libasteriskssl.so
 $(ASTSSL_LIB).$(ASTSSL_SO_VERSION): _ASTLDFLAGS+=-Wl,-soname=$(ASTSSL_LIB).$(ASTSSL_SO_VERSION)
 $(ASTSSL_LIB).$(ASTSSL_SO_VERSION): _ASTCFLAGS+=-fPIC -DAST_MODULE=\"asteriskssl\"
 $(ASTSSL_LIB).$(ASTSSL_SO_VERSION): LIBS+=$(ASTSSL_LIBS)
-$(ASTSSL_LIB).$(ASTSSL_SO_VERSION): SO_SUPPRESS_SYMBOLS=-Wl,--version-script,libasteriskssl.exports,--warn-common
+ifeq ($(GNU_LD),1)
+    $(ASTSSL_LIB).$(ASTSSL_SO_VERSION): SO_SUPPRESS_SYMBOLS=-Wl,--version-script,libasteriskssl.exports,--warn-common
+endif
 $(ASTSSL_LIB).$(ASTSSL_SO_VERSION): SOLINK=$(DYLINK)
 
 # These rules are duplicated from $(ASTTOPDIR)/Makefile.rules because the library name