=== modified file 'src/libs/xpcom18a4/nsprpub/config/nsinstall.c'
--- src/libs/xpcom18a4/nsprpub/config/nsinstall.c	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/config/nsinstall.c	2011-07-17 16:32:09 +0000
@@ -98,7 +98,7 @@
 }
 #endif /* NEXTSTEP */
 
-#ifdef LINUX
+#if defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) 
 #include <getopt.h>
 #endif
 

=== modified file 'src/libs/xpcom18a4/nsprpub/configure.in'
--- src/libs/xpcom18a4/nsprpub/configure.in	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/configure.in	2011-07-17 16:32:09 +0000
@@ -1178,7 +1178,7 @@
 	esac
     ;;
 
-*-linux*)
+*-linux*|*-gnu*|*-k*bsd*-gnu)
     if test -z "$USE_NSPR_THREADS"; then
         USE_PTHREADS=1
         IMPL_STRATEGY=_PTH
@@ -1189,7 +1189,11 @@
     AC_DEFINE(_SVID_SOURCE)
     AC_DEFINE(_LARGEFILE64_SOURCE)
     AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
-    AC_DEFINE(LINUX)
+    case "${target_os}" in
+    linux*)
+        AC_DEFINE(LINUX)
+        ;;
+    esac
     CFLAGS="$CFLAGS -ansi -Wall"
     CXXFLAGS="$CXXFLAGS -ansi -Wall"
     MDCPUCFG_H=_linux.cfg
@@ -2222,7 +2226,7 @@
             _PTHREAD_LDFLAGS=-pthread
         fi
         ;;
-    *-linux*)
+    *-linux*|*-gnu*|*-k*bsd*-gnu)
         AC_DEFINE(_REENTRANT)
         ;;
     esac
@@ -2306,7 +2310,7 @@
         fi
     fi
     ;;
-*-linux*)
+*-linux*|*-gnu*|*-k*bsd*-gnu)
     if test -n "$USE_NSPR_THREADS"; then
         AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
     fi

=== modified file 'src/libs/xpcom18a4/nsprpub/pr/include/md/_linux.cfg'
--- src/libs/xpcom18a4/nsprpub/pr/include/md/_linux.cfg	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/pr/include/md/_linux.cfg	2011-07-17 16:32:09 +0000
@@ -35,6 +35,11 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
+/*
+ * This file is used by not only Linux but also other glibc systems
+ * such as GNU/Hurd and GNU/k*BSD.
+ */
+
 #ifndef nspr_cpucfg___
 #define nspr_cpucfg___
 
@@ -42,7 +47,7 @@
 #define XP_UNIX
 #endif
 
-#ifndef LINUX
+#if !defined(LINUX) && defined(__linux__)
 #define LINUX
 #endif
 

=== modified file 'src/libs/xpcom18a4/nsprpub/pr/include/md/_pth.h'
--- src/libs/xpcom18a4/nsprpub/pr/include/md/_pth.h	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/pr/include/md/_pth.h	2011-07-17 16:33:24 +0000
@@ -139,6 +139,7 @@
 	(!memcmp(&(t), &pt_zero_tid, sizeof(pthread_t)))
 #define _PT_PTHREAD_COPY_THR_HANDLE(st, dt)   (dt) = (st)
 #elif defined(IRIX) || defined(OSF1) || defined(AIX) || defined(SOLARIS) \
+	|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
 	|| defined(HPUX) || defined(LINUX) || defined(FREEBSD) \
 	|| defined(NETBSD) || defined(OPENBSD) || defined(BSDI) \
 	|| defined(VMS) || defined(NTO) || defined(DARWIN) \
@@ -191,7 +192,8 @@
 /*
  * These platforms don't have sigtimedwait()
  */
-#if (defined(AIX) && !defined(AIX4_3_PLUS)) || defined(LINUX) \
+#if (defined(AIX) && !defined(AIX4_3_PLUS)) \
+	|| defined(LINUX) || defined(__GNU__)|| defined(__GLIBC__) \
 	|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
 	|| defined(BSDI) || defined(VMS) || defined(UNIXWARE) \
 	|| defined(DARWIN)
@@ -231,7 +233,8 @@
 #define PT_PRIO_MAX            sched_get_priority_max(SCHED_OTHER)
 #endif /* defined(_PR_DCETHREADS) */
 
-#elif defined(LINUX) || defined(FREEBSD)
+#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
+	|| defined(FREEBSD)
 #define PT_PRIO_MIN            sched_get_priority_min(SCHED_OTHER)
 #define PT_PRIO_MAX            sched_get_priority_max(SCHED_OTHER)
 #elif defined(NTO)
@@ -286,7 +289,8 @@
 		onemillisec.tv_nsec = 1000000L;			\
         nanosleep(&onemillisec,NULL);			\
     PR_END_MACRO
-#elif defined(HPUX) || defined(LINUX) || defined(SOLARIS) \
+#elif defined(HPUX) || defined(SOLARIS) \
+	|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
 	|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
 	|| defined(BSDI) || defined(NTO) || defined(DARWIN) \
 	|| defined(UNIXWARE)

=== modified file 'src/libs/xpcom18a4/nsprpub/pr/include/md/_unixos.h'
--- src/libs/xpcom18a4/nsprpub/pr/include/md/_unixos.h	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/pr/include/md/_unixos.h	2011-07-17 16:34:10 +0000
@@ -46,7 +46,8 @@
  * Linux: FD_SETSIZE is defined in /usr/include/sys/select.h and should
  * not be redefined.
  */
-#if !defined(LINUX) && !defined(DARWIN) && !defined(NEXTSTEP) && !defined(L4ENV)
+#if !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__) \
+  && !defined(DARWIN) && !defined(NEXTSTEP) && !defined(L4ENV)
 #ifndef FD_SETSIZE
 #define FD_SETSIZE  4096
 #endif

=== modified file 'src/libs/xpcom18a4/nsprpub/pr/include/md/_vbox.cfg'
--- src/libs/xpcom18a4/nsprpub/pr/include/md/_vbox.cfg	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/pr/include/md/_vbox.cfg	2011-07-17 16:39:44 +0000
@@ -45,7 +45,7 @@
 # include <md/_freebsd.cfg>
 #elif defined(RT_OS_L4)
 # include <md/_l4v2.cfg>
-#elif defined(RT_OS_LINUX)
+#elif defined(RT_OS_LINUX) || defined(__GNU__) || defined(__GLIBC__)
 # include <md/_linux.cfg>
 #elif defined(RT_OS_NETBSD)
 # include <md/_netbsd.cfg>

=== modified file 'src/libs/xpcom18a4/nsprpub/pr/include/md/prosdep.h'
--- src/libs/xpcom18a4/nsprpub/pr/include/md/prosdep.h	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/pr/include/md/prosdep.h	2011-07-17 16:32:09 +0000
@@ -90,7 +90,7 @@
 #elif defined(IRIX)
 #include "md/_irix.h"
 
-#elif defined(LINUX)
+#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)
 #include "md/_linux.h"
 
 #elif defined(OSF1)

=== modified file 'src/libs/xpcom18a4/nsprpub/pr/src/linking/Makefile.in'
--- src/libs/xpcom18a4/nsprpub/pr/src/linking/Makefile.in	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/pr/src/linking/Makefile.in	2011-07-17 16:32:09 +0000
@@ -63,7 +63,7 @@
 INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
 
 # For Dl_info and dladdr.
-ifeq ($(OS_TARGET),Linux)
+ifeq (,$(filter-out Linux GNU GNU_%,$(OS_TARGET)))
 DEFINES    += -D_GNU_SOURCE
 endif
 

=== modified file 'src/libs/xpcom18a4/nsprpub/pr/src/linking/prlink.c'
--- src/libs/xpcom18a4/nsprpub/pr/src/linking/prlink.c	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/pr/src/linking/prlink.c	2011-07-17 16:32:09 +0000
@@ -1810,7 +1810,8 @@
 PR_IMPLEMENT(char *)
 PR_GetLibraryFilePathname(const char *name, PRFuncPtr addr)
 {
-#if defined(SOLARIS) || defined(LINUX) || defined(FREEBSD)
+#if defined(SOLARIS) || defined(FREEBSD) \
+        || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)
     Dl_info dli;
     char *result;
 

=== modified file 'src/libs/xpcom18a4/nsprpub/pr/src/md/prosdep.c'
--- src/libs/xpcom18a4/nsprpub/pr/src/md/prosdep.c	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/pr/src/md/prosdep.c	2011-07-17 16:32:09 +0000
@@ -63,7 +63,8 @@
 
     /* Get page size */
 #ifdef XP_UNIX
-#if defined SUNOS4 || defined LINUX || defined BSDI || defined AIX \
+#if defined SUNOS4 || defined BSDI || defined AIX \
+        || defined LINUX || defined __GNU__ || defined __GLIBC__ \
         || defined FREEBSD || defined NETBSD || defined OPENBSD \
         || defined DARWIN || defined NEXTSTEP
     _pr_pageSize = getpagesize();

=== modified file 'src/libs/xpcom18a4/nsprpub/pr/src/md/unix/unix.c'
--- src/libs/xpcom18a4/nsprpub/pr/src/md/unix/unix.c	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/pr/src/md/unix/unix.c	2011-07-17 16:34:49 +0000
@@ -65,7 +65,7 @@
  * PRInt32* pointer to a _PRSockLen_t* pointer.
  */
 #if defined(HAVE_SOCKLEN_T) \
-    || (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2) \
+    || (defined(__GLIBC__) && __GLIBC__ >= 2) \
     || defined(L4ENV)
 #define _PRSockLen_t socklen_t
 #elif defined(IRIX) || defined(HPUX) || defined(OSF1) || defined(SOLARIS) \

=== modified file 'src/libs/xpcom18a4/nsprpub/pr/src/md/unix/uxproces.c'
--- src/libs/xpcom18a4/nsprpub/pr/src/md/unix/uxproces.c	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/pr/src/md/unix/uxproces.c	2011-07-17 16:32:09 +0000
@@ -99,7 +99,8 @@
  * that can share the virtual address space and file descriptors.
  */
 #if (defined(IRIX) && !defined(_PR_PTHREADS)) \
-        || (defined(LINUX) && defined(_PR_PTHREADS))
+        || ((defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)) \
+        && defined(_PR_PTHREADS))
 #define _PR_SHARE_CLONES
 #endif
 
@@ -113,7 +114,8 @@
  */
 
 #if defined(_PR_GLOBAL_THREADS_ONLY) \
-	|| (defined(_PR_PTHREADS) && !defined(LINUX))
+	|| (defined(_PR_PTHREADS) \
+	&& !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__))
 #define _PR_NATIVE_THREADS
 #endif
 

=== modified file 'src/libs/xpcom18a4/nsprpub/pr/src/md/unix/uxrng.c'
--- src/libs/xpcom18a4/nsprpub/pr/src/md/unix/uxrng.c	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/pr/src/md/unix/uxrng.c	2011-07-17 16:32:09 +0000
@@ -138,7 +138,8 @@
     return 0;
 }
 
-#elif (defined(LINUX) || defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD))
+#elif (defined(LINUX) || defined(FREEBSD) || defined(__FreeBSD_kernel__) \
+    || defined(NETBSD) || defined(__NetBSD_kernel__) || defined(OPENBSD))
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>

=== modified file 'src/libs/xpcom18a4/nsprpub/pr/src/misc/prnetdb.c'
--- src/libs/xpcom18a4/nsprpub/pr/src/misc/prnetdb.c	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/pr/src/misc/prnetdb.c	2011-07-17 16:35:48 +0000
@@ -108,7 +108,7 @@
 #define _PR_HAVE_GETPROTO_R_INT
 #endif
 
-#if (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2) || defined(L4ENV)
+#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(L4ENV)
 #define _PR_HAVE_GETPROTO_R
 #define _PR_HAVE_5_ARG_GETPROTO_R
 #endif

=== modified file 'src/libs/xpcom18a4/nsprpub/pr/src/pthreads/ptio.c'
--- src/libs/xpcom18a4/nsprpub/pr/src/pthreads/ptio.c	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/pr/src/pthreads/ptio.c	2011-07-17 18:22:12 +0000
@@ -206,7 +206,7 @@
 #if defined(SOLARIS)
 #define _PRSockOptVal_t char *
 #elif defined(IRIX) || defined(OSF1) || defined(AIX) || defined(HPUX) \
-    || defined(LINUX) || defined(FREEBSD) || defined(BSDI) || defined(VMS) \
+    || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(FREEBSD) || defined(BSDI) || defined(VMS) \
     || defined(NTO) || defined(OPENBSD) || defined(DARWIN) \
     || defined(UNIXWARE) || defined(NETBSD)
 #define _PRSockOptVal_t void *
@@ -220,7 +220,8 @@
 #define _PRSelectFdSetArg_t void *
 #elif defined(IRIX) || (defined(AIX) && !defined(AIX4_1)) \
     || defined(OSF1) || defined(SOLARIS) \
-    || defined(HPUX10_30) || defined(HPUX11) || defined(LINUX) \
+    || defined(HPUX10_30) || defined(HPUX11) \
+    || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
     || defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
     || defined(BSDI) || defined(VMS) || defined(NTO) || defined(DARWIN) \
     || defined(UNIXWARE)
@@ -304,7 +305,7 @@
  * most current systems.
  */
 #if defined(HAVE_SOCKLEN_T) \
-    || (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2)
+    || (defined(__GLIBC__) && __GLIBC__ >= 2)
 typedef socklen_t pt_SockLen;
 #elif (defined(AIX) && !defined(AIX4_1)) \
     || defined(VMS)
@@ -3258,7 +3259,8 @@
 };
 
 #if defined(HPUX) || defined(OSF1) || defined(SOLARIS) || defined (IRIX) \
-    || defined(AIX) || defined(LINUX) || defined(FREEBSD) || defined(NETBSD) \
+    || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
+    || defined(AIX) || defined(FREEBSD) || defined(NETBSD) \
     || defined(OPENBSD) || defined(BSDI) || defined(VMS) || defined(NTO) \
     || defined(DARWIN) || defined(UNIXWARE)
 #define _PR_FCNTL_FLAGS O_NONBLOCK
@@ -4757,7 +4759,8 @@
 
 #include <sys/types.h>
 #include <sys/time.h>
-#if !defined(SUNOS4) && !defined(HPUX) && !defined(LINUX)
+#if !defined(SUNOS4) && !defined(HPUX) \
+    && !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__)
 #include <sys/select.h>
 #endif
 

=== modified file 'src/libs/xpcom18a4/nsprpub/pr/tests/Makefile.in'
--- src/libs/xpcom18a4/nsprpub/pr/tests/Makefile.in	2011-07-05 17:05:22 +0000
+++ src/libs/xpcom18a4/nsprpub/pr/tests/Makefile.in	2011-07-17 16:32:09 +0000
@@ -376,14 +376,10 @@
     EXTRA_LIBS = -lsocket -lnsl -lgen -lresolv
 endif
 
-ifeq ($(OS_ARCH), Linux)
-    ifeq ($(OS_RELEASE), 1.2)
-        EXTRA_LIBS = -ldl
-    else
-        LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR)
-        ifeq ($(USE_PTHREADS),1)
-            EXTRA_LIBS = -lpthread
-        endif
+ifeq (,$(filter-out Linux GNU GNU_%,$(OS_ARCH)))
+    LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR)
+    ifeq ($(USE_PTHREADS),1)
+        EXTRA_LIBS = -lpthread
     endif
 endif
 

