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?? */
--