iceowl (1.0~b1+dfsg2-2+squeeze2) Support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch

Summary

 configure.in                                                           |    7 +-
 directory/c-sdk/config/nsinstall.c                                     |    2 
 directory/c-sdk/configure.in                                           |   15 +++-
 directory/c-sdk/ldap/include/portable.h                                |   31 ++++------
 directory/c-sdk/ldap/libraries/libldap/Makefile.client                 |    4 -
 directory/c-sdk/ldap/libraries/libldap/Makefile.in                     |    2 
 directory/c-sdk/ldap/libraries/libldap/compat.c                        |    2 
 directory/c-sdk/ldap/libraries/libprldap/ldappr-error.c                |    2 
 mozilla/config/rules.mk                                                |    8 ++
 mozilla/configure.in                                                   |    7 +-
 mozilla/js/src/configure.in                                            |   10 ++-
 mozilla/media/liboggplay/src/liboggplay/std_semaphore.h                |    2 
 mozilla/media/libsydneyaudio/src/Makefile.in                           |    6 +
 mozilla/xpcom/glue/standalone/Makefile.in                              |    2 
 mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in                  |    2 
 mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h |    2 
 16 files changed, 64 insertions(+), 40 deletions(-)

    
download this patch

Patch contents

From: Mike Hommey <glandium@debian.org>
Date: Tue, 11 Mar 2008 08:29:25 +0100
Subject: Support building on GNU/kFreeBSD and GNU/Hurd

https://bugzilla.mozilla.org/show_bug.cgi?id=356011

Squashed kFreeBSD/Hurd related fixes:
- Fix FTBFS on Hurd-i386
- Don't build oss support on *bsd and hurd
- Fix FTBFS of liboggplay on hurd
- Build fixes for GNU/kFreeBSD in directory/
- Missing bits for Hurd support
---
 configure.in                                       |    7 ++--
 directory/c-sdk/config/nsinstall.c                 |    2 +-
 directory/c-sdk/configure.in                       |   15 ++++++---
 directory/c-sdk/ldap/include/portable.h            |   31 +++++++++----------
 .../c-sdk/ldap/libraries/libldap/Makefile.client   |    4 +-
 directory/c-sdk/ldap/libraries/libldap/Makefile.in |    2 +-
 directory/c-sdk/ldap/libraries/libldap/compat.c    |    2 +-
 .../c-sdk/ldap/libraries/libprldap/ldappr-error.c  |    2 +-
 mozilla/config/rules.mk                            |    8 +++++
 mozilla/configure.in                               |    7 ++--
 mozilla/js/src/configure.in                        |   10 ++++--
 .../liboggplay/src/liboggplay/std_semaphore.h      |    2 +-
 mozilla/media/libsydneyaudio/src/Makefile.in       |    6 ++++
 mozilla/xpcom/glue/standalone/Makefile.in          |    2 +-
 .../xpcom/reflect/xptcall/src/md/unix/Makefile.in  |    2 +-
 .../src/md/unix/xptc_platforms_unixish_x86.h       |    2 +-
 16 files changed, 64 insertions(+), 40 deletions(-)

diff --git a/configure.in b/configure.in
index 7762fd3..a4454d9 100644
--- a/configure.in
+++ b/configure.in
@@ -1190,6 +1190,7 @@ if test -n "$CROSS_COMPILE"; then
     case "${target_os}" in
         linux*)       OS_ARCH=Linux OS_TARGET=Linux ;;
         kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD OS_TARGET=GNU_kFreeBSD ;;
+        gnu*)         OS_ARCH=GNU ;;
         solaris*)     OS_ARCH=SunOS OS_RELEASE=5 ;;
         mingw*)       OS_ARCH=WINNT ;;
         wince*)       OS_ARCH=WINCE ;;
@@ -1790,7 +1791,7 @@ case "$host" in
     LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) $(LIBXUL_DIST)/bin/XUL -lobjc'
     ;;
 
-*-linux*|*-kfreebsd*-gnu)
+*-linux*|*-kfreebsd*-gnu|*-gnu*)
     HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
     HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
     HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
@@ -2761,7 +2762,7 @@ dnl ========================================================
 dnl = Flags to strip unused symbols from .so components
 dnl ========================================================
 case "$target" in
-    *-linux*|*-kfreebsd*-gnu)
+    *-linux*|*-kfreebsd*-gnu|*-gnu*)
         MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
         ;;
     *-solaris*)
@@ -3398,7 +3399,7 @@ then
 			fi
 			;;
 
-	    *-*-linux*|*-*-kfreebsd*-gnu)
+	    *-*-linux*|*-*-kfreebsd*-gnu|*-*-gnu*)
 			AC_DEFINE(_REENTRANT) 
 			;;
 
diff --git a/directory/c-sdk/config/nsinstall.c b/directory/c-sdk/config/nsinstall.c
index dfdb837..9f9c84a 100644
--- a/directory/c-sdk/config/nsinstall.c
+++ b/directory/c-sdk/config/nsinstall.c
@@ -109,7 +109,7 @@ my_getcwd (char *buf, size_t size)
 }
 #endif /* NEXTSTEP */
 
-#ifdef LINUX
+#if defined(LINUX) || defined(__GLIBC__) || defined(__GNU__)
 #include <getopt.h>
 #endif
 
diff --git a/directory/c-sdk/configure.in b/directory/c-sdk/configure.in
index 5e018df..7fcb1fc 100644
--- a/directory/c-sdk/configure.in
+++ b/directory/c-sdk/configure.in
@@ -771,6 +771,7 @@ if test -n "$CROSS_COMPILE"; then
     OS_TEST="${target_cpu}"
     case "${target_os}" in
         linux*)       OS_ARCH=Linux ;;
+        kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD ;;
         solaris*)     OS_ARCH=SunOS OS_RELEASE=5 ;;
         mingw*)     OS_ARCH=WINNT ;;
         darwin*)    OS_ARCH=Darwin ;;
@@ -1486,7 +1487,7 @@ tools are selected during the Xcode/Developer Tools installation.])
 	esac
     ;;
 
-*-linux*)
+*-linux*|*-kfreebsd*-gnu|*-gnu*)
     if test -z "$USE_NSPR_THREADS"; then
         USE_PTHREADS=1
     fi
@@ -1496,8 +1497,12 @@ tools are selected during the Xcode/Developer Tools installation.])
     AC_DEFINE(_SVID_SOURCE)
     AC_DEFINE(_LARGEFILE64_SOURCE)
     AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
-    AC_DEFINE(LINUX)
-    AC_DEFINE(linux)
+    case "${target_os}" in
+     linux*)
+        AC_DEFINE(LINUX)
+        AC_DEFINE(linux)
+        ;;
+    esac
     LD='$(CC)'
     CFLAGS="$CFLAGS -ansi -Wall"
     CXXFLAGS="$CXXFLAGS -ansi -Wall"
@@ -2346,7 +2351,7 @@ if test -n "$USE_PTHREADS"; then
 	        _PTHREAD_LDFLAGS=
 	    fi
 	    ;;
-    *-linux*)
+    *-linux*|*-kfreebsd*-gnu)
         AC_DEFINE(_REENTRANT)
         ;;
     esac
@@ -2422,7 +2427,7 @@ case "$target" in
         fi
     fi
     ;;
-*-linux*)
+*-linux*|*-kfreebsd*-gnu)
     if test -n "$USE_NSPR_THREADS"; then
         AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
     fi
diff --git a/directory/c-sdk/ldap/include/portable.h b/directory/c-sdk/ldap/include/portable.h
index 8cc8445..e4dc1c6 100644
--- a/directory/c-sdk/ldap/include/portable.h
+++ b/directory/c-sdk/ldap/include/portable.h
@@ -122,7 +122,7 @@
  * some systems don't have the BSD re_comp and re_exec routines
  */
 #ifndef NEED_BSDREGEX
-#if ( defined( SYSV ) || defined( NETBSD ) || defined( freebsd ) || defined( linux ) || defined( DARWIN )) && !defined(sgi)
+#if ( defined( SYSV ) || defined( NETBSD ) || defined( freebsd ) || defined( linux ) || defined(__GNU__) || defined(__GLIBC__) || defined( DARWIN )) && !defined(sgi)
 #define NEED_BSDREGEX
 #endif
 #endif
@@ -151,7 +151,7 @@
  * Is snprintf() part of the standard C runtime library?
  */
 #if !defined(HAVE_SNPRINTF)
-#if defined(SOLARIS) || defined(LINUX) || defined(HPUX) || defined(AIX)
+#if defined(SOLARIS) || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(HPUX) || defined(AIX)
 #define HAVE_SNPRINTF
 #endif
 #if defined(_WINDOWS)
@@ -175,7 +175,7 @@
  * for select()
  */
 #if !defined(WINSOCK) && !defined(_WINDOWS) && !defined(macintosh) && !defined(XP_OS2)
-#if defined(hpux) || defined(LINUX) || defined(SUNOS4) || defined(XP_BEOS)
+#if defined(hpux) || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(SUNOS4) || defined(XP_BEOS)
 #include <sys/time.h>
 #else
 #include <sys/select.h>
@@ -247,15 +247,14 @@
 #define HAVE_TIME_R
 #endif
 
-#if defined(SNI) || defined(LINUX1_2)
+#if defined(SNI) || defined(LINUX1_2) || defined(__GNU__) || defined(__GLIBC__)
 int strcasecmp(const char *, const char *);
 #ifdef SNI
 int strncasecmp(const char *, const char *, int);
-#endif /* SNI */
-#ifdef LINUX1_2
+#else /* SNI */
 int strncasecmp(const char *, const char *, size_t);
-#endif /* LINUX1_2 */
-#endif /* SNI || LINUX1_2 */
+#endif
+#endif /* SNI || LINUX1_2 || __GNU__ || __GLIBC__ */
 
 #if defined(_WINDOWS) || defined(macintosh) || defined(XP_OS2) || defined(DARWIN)
 #define GETHOSTBYNAME( n, r, b, l, e )  gethostbyname( n )
@@ -273,7 +272,12 @@ int strncasecmp(const char *, const char *, size_t);
 #define NSLDAPI_NETDB_BUF_SIZE	1024
 #endif
 
-#if defined(sgi) || defined(HPUX9) || defined(SCOOS) || \
+#if defined(__GLIBC__) && __GLIBC__ >= 2
+typedef char GETHOSTBYNAME_buf_t [NSLDAPI_NETDB_BUF_SIZE];
+#define GETHOSTBYNAME_BUF_T GETHOSTBYNAME_buf_t
+#define GETHOSTBYNAME( n, r, b, l, rp, e )  gethostbyname_r( n, r, b, l, rp, e )
+#define GETHOSTBYNAME_R_RETURNS_INT
+#elif defined(sgi) || defined(HPUX9) || defined(SCOOS) || \
     defined(UNIXWARE) || defined(SUNOS4) || defined(SNI) || defined(BSDI) || \
     defined(NCR) || defined(OSF1) || defined(NEC) || defined(VMS) || \
     ( defined(HPUX10) && !defined(_REENTRANT)) || defined(HPUX11) || \
@@ -295,11 +299,6 @@ typedef char GETHOSTBYNAME_buf_t [NSLDAPI_NETDB_BUF_SIZE];
 #elif defined(HPUX10)
 #define GETHOSTBYNAME_BUF_T struct hostent_data
 #define GETHOSTBYNAME( n, r, b, l, e )	nsldapi_compat_gethostbyname_r( n, r, (char *)&b, l, e )
-#elif defined(LINUX)
-typedef char GETHOSTBYNAME_buf_t [NSLDAPI_NETDB_BUF_SIZE];
-#define GETHOSTBYNAME_BUF_T GETHOSTBYNAME_buf_t
-#define GETHOSTBYNAME( n, r, b, l, rp, e )  gethostbyname_r( n, r, b, l, rp, e )
-#define GETHOSTBYNAME_R_RETURNS_INT
 #else
 typedef char GETHOSTBYNAME_buf_t [NSLDAPI_NETDB_BUF_SIZE];
 #define GETHOSTBYNAME_BUF_T GETHOSTBYNAME_buf_t
@@ -317,7 +316,7 @@ typedef char GETHOSTBYNAME_buf_t [NSLDAPI_NETDB_BUF_SIZE];
 	|| defined(OSF1V4) || defined(AIX) || defined(UnixWare) \
         || defined(hpux) || defined(HPUX11) || defined(NETBSD) \
         || defined(IRIX6) || defined(FREEBSD) || defined(VMS) \
-        || defined(NTO) || defined(OPENBSD)
+        || defined(NTO) || defined(OPENBSD) || defined(__GLIBC__)
 #define NSLDAPI_CTIME( c, b, l )        ctime_r( c, b )
 #elif defined( OSF1V3 )
 #define NSLDAPI_CTIME( c, b, l )	(ctime_r( c, b, l ) ? NULL : b)
@@ -458,7 +457,7 @@ int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
 #define NSLDAPI_FOPEN( filename, mode )	fopen( filename, mode )
 #endif
 
-#if defined(LINUX) || defined(AIX) || defined(HPUX) || defined(_WINDOWS)
+#if defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(AIX) || defined(HPUX) || defined(_WINDOWS)
 size_t nsldapi_compat_strlcpy(char *dst, const char *src, size_t len);
 #define STRLCPY nsldapi_compat_strlcpy
 #else
diff --git a/directory/c-sdk/ldap/libraries/libldap/Makefile.client b/directory/c-sdk/ldap/libraries/libldap/Makefile.client
index 9b1af44..073f6fa 100644
--- a/directory/c-sdk/ldap/libraries/libldap/Makefile.client
+++ b/directory/c-sdk/ldap/libraries/libldap/Makefile.client
@@ -177,7 +177,7 @@ EXTRA_LIBS = -L$(NSCP_DISTDIR)/$(OBJDIR_NAME)/lib -l$(LBER_LIBNAME)
 EXTRA_LIBS += -L$(NSCP_DISTDIR)/lib
 endif
 
-ifeq ($(OS_ARCH), Linux)
+ifneq (,$(filter Linux GNU GNU_%, $(OS_ARCH)))
 EXTRA_LIBS = -L$(NSCP_DISTDIR)/$(OBJDIR_NAME)/lib -l$(LBER_LIBNAME)
 EXTRA_LIBS += -L$(NSCP_DISTDIR)/lib
 endif
@@ -253,7 +253,7 @@ endif
 ifeq ($(OS_ARCH), AIX)
 	$(LINK_LIB) ../liblber/$(OBJDIR_NAME)/*.a
 else
-ifeq ($(OS_ARCH), Linux)
+ifneq (,$(filter Linux GNU GNU_%, $(OS_ARCH)))
 	$(LINK_LIB) ../liblber/$(OBJDIR_NAME)/*.a
 else
 	$(LINK_LIB) $(EXTRA_LIBS)
diff --git a/directory/c-sdk/ldap/libraries/libldap/Makefile.in b/directory/c-sdk/ldap/libraries/libldap/Makefile.in
index ec12cab..d16300d 100644
--- a/directory/c-sdk/ldap/libraries/libldap/Makefile.in
+++ b/directory/c-sdk/ldap/libraries/libldap/Makefile.in
@@ -202,7 +202,7 @@ ifeq ($(OS_ARCH), IRIX)
 EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) $(OS_LIBS) -lc
 endif
 
-ifeq ($(OS_ARCH), Linux)
+ifneq (,$(filter Linux GNU GNU_%, $(OS_ARCH)))
 EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME)
 endif
 
diff --git a/directory/c-sdk/ldap/libraries/libldap/compat.c b/directory/c-sdk/ldap/libraries/libldap/compat.c
index 94e58ca..8cc1a71 100644
--- a/directory/c-sdk/ldap/libraries/libldap/compat.c
+++ b/directory/c-sdk/ldap/libraries/libldap/compat.c
@@ -83,7 +83,7 @@ nsldapi_compat_ctime_r( const time_t *clock, char *buf, int buflen )
 }
 #endif /* HPUX10 && _REENTRANT && !HPUX11 */
 
-#if defined(LINUX) || defined(AIX) || defined(HPUX) || defined(_WINDOWS)
+#if defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(AIX) || defined(HPUX) || defined(_WINDOWS)
 /* 
  * Copies src to the dstsize buffer at dst. The copy will never 
  * overflow the destination buffer and the buffer will always be null 
diff --git a/directory/c-sdk/ldap/libraries/libprldap/ldappr-error.c b/directory/c-sdk/ldap/libraries/libprldap/ldappr-error.c
index b0cb6ed..16e9d59 100644
--- a/directory/c-sdk/ldap/libraries/libprldap/ldappr-error.c
+++ b/directory/c-sdk/ldap/libraries/libprldap/ldappr-error.c
@@ -231,7 +231,7 @@ struct prldap_errormap_entry {
 
 #if defined(__hpux) || defined(_AIX) || defined(OSF1) || defined(DARWIN) || \
   defined(BEOS) || defined(FREEBSD) || defined(BSDI) || defined(VMS) || \
-  defined(OPENBSD) || defined(NETBSD)
+  defined(OPENBSD) || defined(NETBSD) || defined(__FreeBSD_kernel__)
 #define EDEADLOCK       -1
 #endif
 
diff --git a/mozilla/config/rules.mk b/mozilla/config/rules.mk
index d9864a0..f0b80ea 100644
--- a/mozilla/config/rules.mk
+++ b/mozilla/config/rules.mk
@@ -666,6 +666,14 @@ endif
 endif 
 
 #
+# GNU doesn't have path length limitation
+#
+
+ifeq ($(OS_ARCH),GNU)
+OS_CPPFLAGS += -DPATH_MAX=1024 -DMAXPATHLEN=1024
+endif
+
+#
 # MINGW32
 #
 ifeq ($(OS_ARCH),WINNT)
diff --git a/mozilla/configure.in b/mozilla/configure.in
index ffab2ae..19fb7c0 100644
--- a/mozilla/configure.in
+++ b/mozilla/configure.in
@@ -1022,6 +1022,7 @@ if test -n "$CROSS_COMPILE"; then
     case "${target_os}" in
         linux*)       OS_ARCH=Linux OS_TARGET=Linux ;;
         kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD OS_TARGET=GNU_kFreeBSD ;;
+        gnu*)         OS_ARCH=GNU ;;
         solaris*)     OS_ARCH=SunOS OS_RELEASE=5 ;;
         mingw*)       OS_ARCH=WINNT ;;
         wince*)       OS_ARCH=WINCE ;;
@@ -1624,7 +1625,7 @@ case "$host" in
     LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) $(LIBXUL_DIST)/bin/XUL -lobjc'
     ;;
 
-*-linux*|*-kfreebsd*-gnu)
+*-linux*|*-kfreebsd*-gnu|*-gnu*)
     HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
     HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
     HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
@@ -2645,7 +2646,7 @@ dnl ========================================================
 dnl = Flags to strip unused symbols from .so components
 dnl ========================================================
 case "$target" in
-    *-linux*|*-kfreebsd*-gnu)
+    *-linux*|*-kfreebsd*-gnu|*-gnu*)
         MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
         ;;
     *-solaris*)
@@ -3328,7 +3329,7 @@ then
 			fi
 			;;
 
-	    *-*-linux*|*-*-kfreebsd*-gnu)
+	    *-*-linux*|*-*-kfreebsd*-gnu|*-*-gnu*)
 			AC_DEFINE(_REENTRANT) 
 			;;
 
diff --git a/mozilla/js/src/configure.in b/mozilla/js/src/configure.in
index e2eefd7..415fa77 100644
--- a/mozilla/js/src/configure.in
+++ b/mozilla/js/src/configure.in
@@ -923,6 +923,7 @@ if test -n "$CROSS_COMPILE"; then
     case "${target_os}" in
         linux*)       OS_ARCH=Linux OS_TARGET=Linux ;;
         kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD OS_TARGET=GNU_kFreeBSD ;;
+        gnu*)         OS_ARCH=GNU ;;
         solaris*)     OS_ARCH=SunOS OS_RELEASE=5 ;;
         mingw*)       OS_ARCH=WINNT ;;
         wince*)       OS_ARCH=WINCE ;;
@@ -1524,7 +1525,7 @@ case "$host" in
     LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) $(LIBXUL_DIST)/bin/XUL -lobjc'
     ;;
 
-*-linux*|*-kfreebsd*-gnu)
+*-linux*|*-kfreebsd*-gnu|*-gnu*)
     HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
     HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
     HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
@@ -2423,7 +2424,7 @@ dnl ========================================================
 dnl = Flags to strip unused symbols from .so components
 dnl ========================================================
 case "$target" in
-    *-linux*|*-kfreebsd*-gnu)
+    *-linux*|*-kfreebsd*-gnu|*-gnu*)
         MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
         ;;
     *-solaris*)
@@ -2506,6 +2507,9 @@ solaris*)
 freebsd*|kfreebsd*)
     AC_DEFINE(AVMPLUS_UNIX)
     ;;
+gnu*)
+    AC_DEFINE(AVMPLUS_UNIX)
+    ;;
 *cygwin*|*mingw*|*mks*|*msvc*|*wince)
     AC_DEFINE(AVMPLUS_WIN32)
     ;;
@@ -3095,7 +3099,7 @@ then
 			fi
 			;;
 
-	    *-*-linux*|*-*-kfreebsd*-gnu)
+	    *-*-linux*|*-*-kfreebsd*-gnu|*-*-gnu*)
 			AC_DEFINE(_REENTRANT) 
 			;;
 
diff --git a/mozilla/media/liboggplay/src/liboggplay/std_semaphore.h b/mozilla/media/liboggplay/src/liboggplay/std_semaphore.h
index 0a3c83f..345ead7 100644
--- a/mozilla/media/liboggplay/src/liboggplay/std_semaphore.h
+++ b/mozilla/media/liboggplay/src/liboggplay/std_semaphore.h
@@ -74,7 +74,7 @@
  * @retval non-zero on error 
  */
 
-#if defined(linux) || defined(SOLARIS) || defined(AIX) || defined(__FreeBSD__)
+#if defined(linux) || defined(SOLARIS) || defined(AIX) || defined(__FreeBSD__) || defined(__GLIBC__)
 #include <semaphore.h>
 #if defined(__FreeBSD__) 
 #define SEM_CREATE(p,s) sem_init(&(p), 0, s)  
diff --git a/mozilla/media/libsydneyaudio/src/Makefile.in b/mozilla/media/libsydneyaudio/src/Makefile.in
index 6a5eea9..1d172ae 100644
--- a/mozilla/media/libsydneyaudio/src/Makefile.in
+++ b/mozilla/media/libsydneyaudio/src/Makefile.in
@@ -45,6 +45,12 @@ MODULE		= sydneyaudio
 LIBRARY_NAME	= sydneyaudio
 FORCE_STATIC_LIB= 1
 
+ifneq (,$(filter DragonFly FreeBSD GNU GNU_% NetBSD OpenBSD,$(OS_ARCH)))
+CSRCS		= \
+		sydney_audio_oss.c \
+		$(NULL)
+endif
+
 ifeq ($(OS_ARCH),Linux)
 CSRCS		= \
 		sydney_audio_alsa.c \
diff --git a/mozilla/xpcom/glue/standalone/Makefile.in b/mozilla/xpcom/glue/standalone/Makefile.in
index 08411fe..a52ddbc 100644
--- a/mozilla/xpcom/glue/standalone/Makefile.in
+++ b/mozilla/xpcom/glue/standalone/Makefile.in
@@ -62,7 +62,7 @@ endif
 ifneq (,$(filter WINNT WINCE,$(OS_ARCH)))
 LINKSRC = nsGlueLinkingWin.cpp
 endif
-ifneq (,$(filter AIX DragonFly FreeBSD Linux NetBSD OpenBSD SunOS,$(OS_ARCH)))
+ifneq (,$(filter AIX DragonFly FreeBSD GNU GNU_% Linux NetBSD OpenBSD SunOS,$(OS_ARCH)))
 LINKSRC = nsGlueLinkingDlopen.cpp
 endif
 ifeq (OS2,$(OS_ARCH))
diff --git a/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in b/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
index 2a5dd8c..56be8b2 100644
--- a/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
+++ b/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
@@ -64,7 +64,7 @@ include $(topsrcdir)/config/config.mk
 #
 # Lots of Unixish x86 flavors
 #
-ifneq (,$(filter FreeBSD NetBSD OpenBSD BSD_OS Darwin,$(OS_ARCH)))
+ifneq (,$(filter FreeBSD NetBSD OpenBSD BSD_OS Darwin GNU,$(OS_ARCH)))
 ifeq (86,$(findstring 86,$(OS_TEST)))
 CPPSRCS		:= xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp
 ifeq (Darwin,$(OS_ARCH))
diff --git a/mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h b/mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h
index 71fd140..d453e55 100644
--- a/mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h
+++ b/mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h
@@ -67,7 +67,7 @@
 *
 */
 
-#if defined(LINUX) || (defined(__GLIBC__) && defined(__FreeBSD_kernel__))
+#if defined(LINUX) || (defined(__GLIBC__) && (defined(__FreeBSD_kernel__) || defined(__GNU__)))
 
 #if (__GNUC__ == 2) && (__GNUC_MINOR__ <= 7)
 /* Old gcc 2.7.x.x.  What does gcc 2.8.x do?? */
--