+++ /dev/null
-D/nsprpub////
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_8_7_RTM
+++ /dev/null
-D/admin////
-D/build////
-D/config////
-D/lib////
-D/pkg////
-D/pr////
-D/tools////
-D/include////
-D/macbuild////
-/.cvsignore/1.2/Sat May 12 00:53:26 2001//TNSPR_4_8_RTM
-/aclocal.m4/1.1/Fri Sep 24 18:10:19 2010//TNSPR_4_8_7_BETA1
-/LICENSE/1.1/Tue Mar 6 13:16:12 2012//TNSPR_4_9_1_RTM
-/Makefile.in/1.26/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/configure/1.331/Tue Jul 24 08:48:27 2012//TNSPR_4_9_2_RTM
-/configure.in/1.334/Tue Jul 24 08:48:27 2012//TNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/explode.pl/1.3/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/makeTargetDirs.sh/1.4/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/symlinks.sh/1.3/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/repackage.sh/1.34/Tue Jul 24 08:48:27 2012//TNSPR_4_9_2_RTM
-D
+++ /dev/null
-mozilla/nsprpub/admin
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-#! /bin/sh
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-# ------------------------------------------------------------------
-# repackage.sh -- Repackage NSPR from /s/b/c to mozilla.org format
-#
-# syntax: repackage.sh
-#
-# Description:
-# repackage.sh creates NSPR binary distributions for mozilla.org from
-# the internal binary distributions in /share/builds/components/nspr20.
-# There are reasons why we can't just push the internal binary distributions
-# to mozilla.org. External developers prefer to use the common archive
-# file format for their platforms, rather than the jar files we use internally.
-#
-# On Unix, we create a tar.gz file. On Windows, we create a zip file.
-# For example: NSPR 4.1.1, these would be nspr-4.1.1.tar.gz and nspr-4.1.1.zip.
-#
-# When unpacked, nspr-4.1.1.tar.gz or nspr-4.1.1.zip should expand to a
-# nspr-4.1.1 directory that contains three subdirectories: include, lib,
-# and bin. The header files, with the correct line endings for the
-# platform, are in nspr-4.1.1/include. The libraries are in nspr-4.1.1/lib.
-# The executable programs are in nspr-4.1.1/bin.
-#
-# Note! Files written with Gnu tar are not readable by some non-Gnu
-# versions. Sun, in particular.
-#
-#
-#
-#
-# ------------------------------------------------------------------
-
-FROMTOP=/share/builds/components/nspr20/v4.9.2
-TOTOP=./v4.9.2
-NSPRDIR=nspr-4.9.2
-SOURCETAG=NSPR_4_9_2_RTM
-
-#
-# enumerate Unix object directories on /s/b/c
-UNIX_OBJDIRS="
-HP-UXB.11.11_64_DBG.OBJ
-HP-UXB.11.11_64_OPT.OBJ
-HP-UXB.11.11_DBG.OBJ
-HP-UXB.11.11_OPT.OBJ
-HP-UXB.11.23_ia64_32_DBG.OBJ
-HP-UXB.11.23_ia64_32_OPT.OBJ
-HP-UXB.11.23_ia64_64_DBG.OBJ
-HP-UXB.11.23_ia64_64_OPT.OBJ
-Linux2.4_x86_glibc_PTH_DBG.OBJ
-Linux2.4_x86_glibc_PTH_OPT.OBJ
-Linux2.6_x86_64_glibc_PTH_DBG.OBJ
-Linux2.6_x86_64_glibc_PTH_OPT.OBJ
-Linux2.6_x86_glibc_PTH_DBG.OBJ
-Linux2.6_x86_glibc_PTH_OPT.OBJ
-SunOS5.9_64_DBG.OBJ
-SunOS5.9_64_OPT.OBJ
-SunOS5.9_DBG.OBJ
-SunOS5.9_OPT.OBJ
-"
-#
-# enumerate Windows object directories on /s/b/c
-WIN_OBJDIRS="
-WIN954.0_DBG.OBJ
-WIN954.0_DBG.OBJD
-WIN954.0_OPT.OBJ
-WINNT5.0_DBG.OBJ
-WINNT5.0_DBG.OBJD
-WINNT5.0_OPT.OBJ
-"
-
-#
-# Create the destination directory.
-#
-echo "removing directory $TOTOP"
-rm -rf $TOTOP
-echo "creating directory $TOTOP"
-mkdir -p $TOTOP
-
-#
-# Generate the tar.gz files for Unix platforms.
-#
-for OBJDIR in $UNIX_OBJDIRS; do
- echo "removing directory $NSPRDIR"
- rm -rf $NSPRDIR
- echo "creating directory $NSPRDIR"
- mkdir $NSPRDIR
-
- echo "creating directory $NSPRDIR/include"
- mkdir $NSPRDIR/include
- echo "copying $FROMTOP/$OBJDIR/include"
- cp -r $FROMTOP/$OBJDIR/include $NSPRDIR
-
- echo "copying $FROMTOP/$OBJDIR/lib"
- cp -r $FROMTOP/$OBJDIR/lib $NSPRDIR
-
- echo "copying $FROMTOP/$OBJDIR/bin"
- cp -r $FROMTOP/$OBJDIR/bin $NSPRDIR
-
- echo "creating directory $TOTOP/$OBJDIR"
- mkdir $TOTOP/$OBJDIR
- echo "creating $TOTOP/$OBJDIR/$NSPRDIR.tar"
- tar cvf $TOTOP/$OBJDIR/$NSPRDIR.tar $NSPRDIR
- echo "gzipping $TOTOP/$OBJDIR/$NSPRDIR.tar"
- gzip $TOTOP/$OBJDIR/$NSPRDIR.tar
-done
-
-#
-# Generate the zip files for Windows platforms.
-#
-for OBJDIR in $WIN_OBJDIRS; do
- echo "removing directory $NSPRDIR"
- rm -rf $NSPRDIR
- echo "creating directory $NSPRDIR"
- mkdir $NSPRDIR
-
- echo "creating directory $NSPRDIR/include"
- mkdir $NSPRDIR/include
- echo "creating directory $NSPRDIR/include/private"
- mkdir $NSPRDIR/include/private
- echo "creating directory $NSPRDIR/include/obsolete"
- mkdir $NSPRDIR/include/obsolete
-
- # copy headers and adjust unix line-end to Windows line-end
- # Note: Watch out for the "sed" command line.
- # when editing the command, take care to preserve the "^M" as the literal
- # cntl-M character! in vi, use "cntl-v cntl-m" to enter it!
- #
- headers=`ls $FROMTOP/$OBJDIR/include/*.h`
- for header in $headers; do
- sed -e 's/$/\r/g' $header > $NSPRDIR/include/`basename $header`
- done
- headers=`ls $FROMTOP/$OBJDIR/include/obsolete/*.h`
- for header in $headers; do
- sed -e 's/$/\r/g' $header > $NSPRDIR/include/obsolete/`basename $header`
- done
- headers=`ls $FROMTOP/$OBJDIR/include/private/*.h`
- for header in $headers; do
- sed -e 's/$/\r/g' $header > $NSPRDIR/include/private/`basename $header`
- done
-
- echo "copying $FROMTOP/$OBJDIR/lib"
- cp -r $FROMTOP/$OBJDIR/lib $NSPRDIR
-
- echo "copying $FROMTOP/$OBJDIR/bin"
- cp -r $FROMTOP/$OBJDIR/bin $NSPRDIR
-
- echo "creating directory $TOTOP/$OBJDIR"
- mkdir -p $TOTOP/$OBJDIR
- echo "creating $TOTOP/$OBJDIR/$NSPRDIR.zip"
- zip -r $TOTOP/$OBJDIR/$NSPRDIR.zip $NSPRDIR
-done
-
-#
-# package the source from CVS
-#
-echo "Packaging source"
-echo "removing directory $NSPRDIR"
-rm -rf $NSPRDIR
-echo "creating directory $NSPRDIR"
-mkdir $NSPRDIR
-myWD=`pwd`
-cd $NSPRDIR
-echo "Pulling source from CVS with tag $SOURCETAG"
-cvs co -r $SOURCETAG mozilla/nsprpub
-cd $myWD
-mkdir $TOTOP/src
-echo "Creating source tar file: $TOTOP/src/$NSPRDIR.tar"
-tar cvf $TOTOP/src/$NSPRDIR.tar $NSPRDIR
-echo "gzip $TOTOP/src/$NSPRDIR.tar"
-gzip $TOTOP/src/$NSPRDIR.tar
-
-#
-# Remove the working directory.
-#
-echo "removing directory $NSPRDIR"
-rm -rf $NSPRDIR
-# --- end repackage.sh ---------------------------------------------
+++ /dev/null
-D/autoconf////
-D/win32////
-/cygwin-wrapper/1.5/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
+++ /dev/null
-mozilla/nsprpub/build
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/config.guess/1.17/Wed May 20 19:54:24 2009//TNSPR_4_8_RTM
-/config.sub/1.20/Sat Feb 4 09:59:12 2012//TNSPR_4_9_BETA6
-/acwinpaths.m4/1.2/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/install-sh/1.3/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/build/autoconf
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/pgomerge.py/1.2/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/build/win32
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/3.5/Fri Jul 20 00:22:11 2001//TNSPR_4_8_RTM
-/nspr.m4/1.4/Mon Jan 21 09:52:48 2008//TNSPR_4_8_RTM
-/system-headers/3.2/Mon May 9 05:50:20 2005//TNSPR_4_8_RTM
-/Makefile.in/1.26/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/autoconf.mk.in/1.46/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/config.mk/3.37/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/gcc_hidden.h/3.2/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/libc_r.h/3.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/make-system-wrappers.pl/3.2/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/nfspwd.pl/3.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/now.c/3.16/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/nsinstall.c/3.25/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/nspr-config.in/1.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/nspr.pc.in/1.1/Fri May 18 22:26:17 2012//TNSPR_4_9_1_RTM
-/nsprincl.mk.in/1.3/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/nsprincl.sh.in/1.3/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/pathsub.h/3.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rules.mk/3.85/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prdepend.h/1.17/Tue Jul 24 08:48:27 2012//TNSPR_4_9_2_RTM
-D
+++ /dev/null
-mozilla/nsprpub/config
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/include
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-D/ds////
-D/libc////
-D/msgc////
-D/prstreams////
-D/tests////
-/.cvsignore/1.2/Sat May 12 01:02:30 2001//TNSPR_4_8_RTM
-/Makefile.in/1.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
+++ /dev/null
-mozilla/nsprpub/lib
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.3/Mon May 14 22:12:54 2001//TNSPR_4_8_RTM
-/Makefile.in/1.39/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plarena.c/3.20/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plarena.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plarenas.h/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plds.def/1.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plds.rc/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plhash.c/3.14/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plhash.h/3.11/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plvrsion.c/3.11/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/lib/ds
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-D/include////
-D/src////
-/.cvsignore/1.2/Sat May 12 01:13:53 2001//TNSPR_4_8_RTM
-/README/3.1/Sat Mar 28 03:36:48 1998//TNSPR_4_8_RTM
-/Makefile.in/1.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
+++ /dev/null
-mozilla/nsprpub/lib/libc
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 01:14:37 2001//TNSPR_4_8_RTM
-/README/3.1/Sat Mar 28 03:36:48 1998//TNSPR_4_8_RTM
-/Makefile.in/1.12/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plbase64.h/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plerror.h/3.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plgetopt.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plstr.h/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/lib/libc/include
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.3/Mon May 14 22:11:59 2001//TNSPR_4_8_RTM
-/README/3.1/Sat Mar 28 03:36:50 1998//TNSPR_4_8_RTM
-/Makefile.in/1.36/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/base64.c/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plc.def/1.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plc.rc/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plerror.c/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plgetopt.c/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plvrsion.c/3.15/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/strcase.c/1.3/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/strcat.c/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/strchr.c/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/strcmp.c/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/strcpy.c/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/strdup.c/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/strlen.c/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/strpbrk.c/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/strstr.c/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/strtok.c/1.3/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/lib/libc/src
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-D/include////
-D/src////
-D/tests////
+++ /dev/null
-mozilla/nsprpub/lib/msgc
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/lib/msgc/include
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/lib/msgc/src
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/lib/msgc/tests
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-D/tests////
-/.cvsignore/1.2/Sat May 12 06:36:32 2001//TNSPR_4_8_RTM
-/Makefile.in/1.25/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/plvrsion.c/3.11/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prstrms.cpp/3.13/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prstrms.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prstrms.rc/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
+++ /dev/null
-mozilla/nsprpub/lib/prstreams
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-D/testprstrm////
+++ /dev/null
-mozilla/nsprpub/lib/prstreams/tests
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 06:40:34 2001//TNSPR_4_8_RTM
-/Makefile.in/1.16/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/testprstrm.cpp/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/lib/prstreams/tests/testprstrm
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-D/windows////
-/.cvsignore/1.2/Sat May 12 01:31:18 2001//TNSPR_4_8_RTM
-/Makefile.in/1.26/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/arena.c/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/base64t.c/3.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/getopt.c/1.2/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/string.c/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
+++ /dev/null
-mozilla/nsprpub/lib/tests
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/lib/tests/windows
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/macbuild
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-D/linux////
-D/solaris////
-/Makefile.in/1.4/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
+++ /dev/null
-mozilla/nsprpub/pkg
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/Makefile.in/1.12/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/sun-nspr.spec/1.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pkg/linux
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-D/SUNWpr////
-D/SUNWprd////
-D/SUNWprx////
-D/common_files////
-D/SUNWnspr////
-D/SUNWnsprx////
-D/SUNWpr-devl////
-D/SUNWprdx////
-D/SUNWprx-devl////
-/Makefile-devl.com/1.4/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/Makefile-devl.targ/1.4/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/Makefile.com/1.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/Makefile.in/1.4/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/Makefile.targ/1.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/bld_awk_pkginfo.ksh/1.4/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/proto64.mk/1.4/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
+++ /dev/null
-mozilla/nsprpub/pkg/solaris
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/pkg/solaris/SUNWnspr
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/pkg/solaris/SUNWnsprx
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/pkg/solaris/SUNWpr-devl
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-/Makefile.in/1.3/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/depend/1.4/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/pkginfo.tmpl/1.4/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prototype_com/1.5/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prototype_i386/1.5/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prototype_sparc/1.5/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pkg/solaris/SUNWpr
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/Makefile.in/1.4/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/depend/1.4/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/pkginfo.tmpl/1.4/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prototype/1.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pkg/solaris/SUNWprd
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/pkg/solaris/SUNWprdx
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/pkg/solaris/SUNWprx-devl
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/pkg/solaris/SUNWprx
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-/copyright/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pkg/solaris/common_files
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-D/include////
-D/src////
-D/tests////
-/.cvsignore/1.2/Sat May 12 01:41:04 2001//TNSPR_4_8_RTM
-/Makefile.in/1.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
+++ /dev/null
-mozilla/nsprpub/pr
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-D/md////
-D/obsolete////
-D/private////
-/.cvsignore/1.2/Sat May 12 01:41:57 2001//TNSPR_4_8_RTM
-/Makefile.in/1.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/gencfg.c/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/nspr.h/3.13/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/pratom.h/3.21/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prbit.h/3.15/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prclist.h/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prcmon.h/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prcountr.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prcvar.h/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prdtoa.h/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prenv.h/3.13/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prerr.h/3.11/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prerror.h/3.15/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prinet.h/3.19/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prinrval.h/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prio.h/3.45/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/pripcsem.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prlink.h/3.18/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prlock.h/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prlog.h/3.19/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prlong.h/3.17/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prmem.h/3.13/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prmon.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prmwait.h/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prnetdb.h/3.13/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prolock.h/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prpdce.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prprf.h/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prproces.h/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prrng.h/1.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prrwlock.h/1.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prshm.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prshma.h/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prsystem.h/3.12/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prtime.h/3.14/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prtpool.h/1.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prtrace.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prtypes.h/3.49/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prvrsion.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prwin16.h/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prinit.h/3.79/Tue Jul 24 08:48:28 2012//TNSPR_4_9_2_RTM
-/prthread.h/3.16/Tue Jul 24 08:48:28 2012//TNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/pr/include
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 01:47:58 2001//TNSPR_4_8_RTM
-/Makefile.in/1.24/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_aix.h/3.17/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_aix32.cfg/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_aix64.cfg/3.11/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_beos.cfg/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_beos.h/3.26/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_bsdi.cfg/3.12/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_bsdi.h/3.13/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_darwin.cfg/3.15/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_darwin.h/3.26/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_dgux.cfg/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_dgux.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_freebsd.cfg/3.12/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_freebsd.h/3.23/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_hpux.h/3.25/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_hpux32.cfg/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_hpux64.cfg/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_irix.h/3.16/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_irix32.cfg/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_irix64.cfg/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_linux.cfg/3.28/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_linux.h/3.61/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_ncr.cfg/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_ncr.h/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_nec.cfg/3.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_nec.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_netbsd.cfg/3.13/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_netbsd.h/3.20/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_nextstep.cfg/3.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_nextstep.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_nspr_pthread.h/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_nto.cfg/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_nto.h/3.12/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_openbsd.cfg/3.12/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_openbsd.h/3.11/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_os2.cfg/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_os2.h/3.44/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_os2_errors.h/3.14/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_osf1.cfg/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_osf1.h/3.18/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_pcos.h/3.12/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_pth.h/3.39/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_qnx.cfg/3.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_qnx.h/3.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_reliantunix.cfg/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_reliantunix.h/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_riscos.cfg/3.4/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_riscos.h/3.4/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_scoos.cfg/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_scoos.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_solaris.cfg/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_solaris.h/3.31/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_sony.cfg/3.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_sony.h/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_sunos4.cfg/3.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_sunos4.h/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_symbian.cfg/1.5/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_symbian.h/1.3/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_unix_errors.h/3.11/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_unixos.h/3.42/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_unixware.cfg/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_unixware.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_unixware7.cfg/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_win32_errors.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_win95.cfg/3.11/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_winnt.cfg/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prosdep.h/3.23/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/sunos4.h/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/_win95.h/3.41/Tue Jul 24 08:48:28 2012//TNSPR_4_9_2_RTM
-/_winnt.h/3.37/Tue Jul 24 08:48:28 2012//TNSPR_4_9_2_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/include/md
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef nspr_cpucfg___
-#define nspr_cpucfg___
-
-#ifndef XP_UNIX
-#define XP_UNIX
-#endif
-
-#ifndef NCR
-#define NCR
-#endif
-
-#define IS_LITTLE_ENDIAN 1
-#undef IS_BIG_ENDIAN
-#undef HAVE_LONG_LONG
-#undef HAVE_ALIGNED_DOUBLES
-#undef HAVE_ALIGNED_LONGLONGS
-
-#define PR_BYTES_PER_BYTE 1
-#define PR_BYTES_PER_SHORT 2
-#define PR_BYTES_PER_INT 4
-#define PR_BYTES_PER_INT64 8
-#define PR_BYTES_PER_LONG 4
-#define PR_BYTES_PER_FLOAT 4
-#define PR_BYTES_PER_DOUBLE 8
-#define PR_BYTES_PER_WORD 4
-#define PR_BYTES_PER_DWORD 8
-#define PR_BYTES_PER_WORD_LOG2 2
-#define PR_BYTES_PER_DWORD_LOG2 3
-
-#define PR_BITS_PER_BYTE 8
-#define PR_BITS_PER_SHORT 16
-#define PR_BITS_PER_INT 32
-#define PR_BITS_PER_INT64 64
-#define PR_BITS_PER_LONG 32
-#define PR_BITS_PER_FLOAT 32
-#define PR_BITS_PER_DOUBLE 64
-#define PR_BITS_PER_WORD 32
-
-#define PR_BITS_PER_BYTE_LOG2 3
-#define PR_BITS_PER_SHORT_LOG2 4
-#define PR_BITS_PER_INT_LOG2 5
-#define PR_BITS_PER_INT64_LOG2 6
-#define PR_BITS_PER_LONG_LOG2 5
-#define PR_BITS_PER_FLOAT_LOG2 5
-#define PR_BITS_PER_DOUBLE_LOG2 6
-#define PR_BITS_PER_WORD_LOG2 5
-
-#define PR_ALIGN_OF_SHORT 2
-#define PR_ALIGN_OF_INT 4
-#define PR_ALIGN_OF_LONG 4
-#define PR_ALIGN_OF_INT64 4
-#define PR_ALIGN_OF_FLOAT 4
-#define PR_ALIGN_OF_DOUBLE 4
-#define PR_ALIGN_OF_POINTER 4
-
-#define _PR_POLL_BACKCOMPAT
-
-#ifndef NO_NSPR_10_SUPPORT
-
-#define BYTES_PER_BYTE PR_BYTES_PER_BYTE
-#define BYTES_PER_SHORT PR_BYTES_PER_SHORT
-#define BYTES_PER_INT PR_BYTES_PER_INT
-#define BYTES_PER_INT64 PR_BYTES_PER_INT64
-#define BYTES_PER_LONG PR_BYTES_PER_LONG
-#define BYTES_PER_FLOAT PR_BYTES_PER_FLOAT
-#define BYTES_PER_DOUBLE PR_BYTES_PER_DOUBLE
-#define BYTES_PER_WORD PR_BYTES_PER_WORD
-#define BYTES_PER_DWORD PR_BYTES_PER_DWORD
-
-#define BITS_PER_BYTE PR_BITS_PER_BYTE
-#define BITS_PER_SHORT PR_BITS_PER_SHORT
-#define BITS_PER_INT PR_BITS_PER_INT
-#define BITS_PER_INT64 PR_BITS_PER_INT64
-#define BITS_PER_LONG PR_BITS_PER_LONG
-#define BITS_PER_FLOAT PR_BITS_PER_FLOAT
-#define BITS_PER_DOUBLE PR_BITS_PER_DOUBLE
-#define BITS_PER_WORD PR_BITS_PER_WORD
-
-#define BITS_PER_BYTE_LOG2 PR_BITS_PER_BYTE_LOG2
-#define BITS_PER_SHORT_LOG2 PR_BITS_PER_SHORT_LOG2
-#define BITS_PER_INT_LOG2 PR_BITS_PER_INT_LOG2
-#define BITS_PER_INT64_LOG2 PR_BITS_PER_INT64_LOG2
-#define BITS_PER_LONG_LOG2 PR_BITS_PER_LONG_LOG2
-#define BITS_PER_FLOAT_LOG2 PR_BITS_PER_FLOAT_LOG2
-#define BITS_PER_DOUBLE_LOG2 PR_BITS_PER_DOUBLE_LOG2
-#define BITS_PER_WORD_LOG2 PR_BITS_PER_WORD_LOG2
-
-#define ALIGN_OF_SHORT PR_ALIGN_OF_SHORT
-#define ALIGN_OF_INT PR_ALIGN_OF_INT
-#define ALIGN_OF_LONG PR_ALIGN_OF_LONG
-#define ALIGN_OF_INT64 PR_ALIGN_OF_INT64
-#define ALIGN_OF_FLOAT PR_ALIGN_OF_FLOAT
-#define ALIGN_OF_DOUBLE PR_ALIGN_OF_DOUBLE
-#define ALIGN_OF_POINTER PR_ALIGN_OF_POINTER
-#define ALIGN_OF_WORD PR_ALIGN_OF_WORD
-
-#define BYTES_PER_WORD_LOG2 PR_BYTES_PER_WORD_LOG2
-#define BYTES_PER_DWORD_LOG2 PR_BYTES_PER_DWORD_LOG2
-#define WORDS_PER_DWORD_LOG2 PR_WORDS_PER_DWORD_LOG2
-
-#endif /* NO_NSPR_10_SUPPORT */
-
-#endif /* nspr_cpucfg___ */
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef nspr_unixware_defs_h___
-#define nspr_unixware_defs_h___
-
-/*
- * Internal configuration macros
- */
-
-#define PR_LINKER_ARCH "ncr"
-#define _PR_SI_SYSNAME "NCR"
-#define _PR_SI_ARCHITECTURE "x86"
-#define PR_DLL_SUFFIX ".so"
-
-#define _PR_VMBASE 0x30000000
-#define _PR_STACK_VMBASE 0x50000000
-#define _MD_DEFAULT_STACK_SIZE 65536L
-#define _MD_MMAP_FLAGS MAP_PRIVATE
-
-#define HAVE_DLL
-#define USE_DLFCN
-#define _PR_RECV_BROKEN /* recv doesn't work on Unix Domain Sockets */
-
-#if !defined (HAVE_STRERROR)
-#define HAVE_STRERROR
-#endif
-
-#ifndef HAVE_WEAK_IO_SYMBOLS
-#define HAVE_WEAK_IO_SYMBOLS
-#endif
-
-#define _PR_POLL_AVAILABLE
-#define _PR_USE_POLL
-#define _PR_NO_LARGE_FILES
-
-#undef HAVE_STACK_GROWING_UP
-#define HAVE_NETCONFIG
-#define NEED_STRFTIME_LOCK
-#define NEED_TIME_R
-#define NEED_LOCALTIME_R
-#define NEED_GMTIME_R
-#define NEED_ASCTIME_R
-#define NEED_STRTOK_R
-#define NEED_CTIME_R
-#define _PR_NEED_STRCASECMP
-
-#define USE_SETJMP
-
-#include <setjmp.h>
-
-#define _SETJMP setjmp
-#define _LONGJMP longjmp
-#define _PR_CONTEXT_TYPE jmp_buf
-#define _MD_GET_SP(_t) (_t)->md.context[4]
-#define _PR_NUM_GCREGS _JBLEN
-
-#define CONTEXT(_th) ((_th)->md.context)
-
-/*
-** Initialize the thread context preparing it to execute _main.
-*/
-#define _MD_INIT_CONTEXT(_thread, _sp, _main, status) \
-{ \
- *status = PR_TRUE; \
- if(_SETJMP(CONTEXT(_thread))) (*_main)(); \
- _MD_GET_SP(_thread) = (int) ((_sp) - 128); \
-}
-
-#define _MD_SWITCH_CONTEXT(_thread) \
- if (!_SETJMP(CONTEXT(_thread))) { \
- (_thread)->md.errcode = errno; \
- _PR_Schedule(); \
- }
-
-/*
-** Restore a thread context, saved by _MD_SWITCH_CONTEXT
-*/
-#define _MD_RESTORE_CONTEXT(_thread) \
-{ \
- errno = (_thread)->md.errcode; \
- _MD_SET_CURRENT_THREAD(_thread); \
- _LONGJMP(CONTEXT(_thread), 1); \
-}
-
-/* Machine-dependent (MD) data structures.
- * Don't use SVR4 native threads (yet).
- */
-
-struct _MDThread {
- _PR_CONTEXT_TYPE context;
- int id;
- int errcode;
-};
-
-struct _MDThreadStack {
- PRInt8 notused;
-};
-
-struct _MDLock {
- PRInt8 notused;
-};
-
-struct _MDSemaphore {
- PRInt8 notused;
-};
-
-struct _MDCVar {
- PRInt8 notused;
-};
-
-struct _MDSegment {
- PRInt8 notused;
-};
-
-/*
- * md-specific cpu structure field
- */
-#define _PR_MD_MAX_OSFD FD_SETSIZE
-
-struct _MDCPU_Unix {
- PRCList ioQ;
- PRUint32 ioq_timeout;
- PRInt32 ioq_max_osfd;
- PRInt32 ioq_osfd_cnt;
-#ifndef _PR_USE_POLL
- fd_set fd_read_set, fd_write_set, fd_exception_set;
- PRInt16 fd_read_cnt[_PR_MD_MAX_OSFD],fd_write_cnt[_PR_MD_MAX_OSFD],
- fd_exception_cnt[_PR_MD_MAX_OSFD];
-#else
- struct pollfd *ioq_pollfds;
- int ioq_pollfds_size;
-#endif /* _PR_USE_POLL */
-};
-
-#define _PR_IOQ(_cpu) ((_cpu)->md.md_unix.ioQ)
-#define _PR_ADD_TO_IOQ(_pq, _cpu) PR_APPEND_LINK(&_pq.links, &_PR_IOQ(_cpu))
-#define _PR_FD_READ_SET(_cpu) ((_cpu)->md.md_unix.fd_read_set)
-#define _PR_FD_READ_CNT(_cpu) ((_cpu)->md.md_unix.fd_read_cnt)
-#define _PR_FD_WRITE_SET(_cpu) ((_cpu)->md.md_unix.fd_write_set)
-#define _PR_FD_WRITE_CNT(_cpu) ((_cpu)->md.md_unix.fd_write_cnt)
-#define _PR_FD_EXCEPTION_SET(_cpu) ((_cpu)->md.md_unix.fd_exception_set)
-#define _PR_FD_EXCEPTION_CNT(_cpu) ((_cpu)->md.md_unix.fd_exception_cnt)
-#define _PR_IOQ_TIMEOUT(_cpu) ((_cpu)->md.md_unix.ioq_timeout)
-#define _PR_IOQ_MAX_OSFD(_cpu) ((_cpu)->md.md_unix.ioq_max_osfd)
-#define _PR_IOQ_OSFD_CNT(_cpu) ((_cpu)->md.md_unix.ioq_osfd_cnt)
-#define _PR_IOQ_POLLFDS(_cpu) ((_cpu)->md.md_unix.ioq_pollfds)
-#define _PR_IOQ_POLLFDS_SIZE(_cpu) ((_cpu)->md.md_unix.ioq_pollfds_size)
-
-#define _PR_IOQ_MIN_POLLFDS_SIZE(_cpu) 32
-
-struct _MDCPU {
- struct _MDCPU_Unix md_unix;
-};
-
-#define _MD_INIT_LOCKS()
-#define _MD_NEW_LOCK(lock) PR_SUCCESS
-#define _MD_FREE_LOCK(lock)
-#define _MD_LOCK(lock)
-#define _MD_UNLOCK(lock)
-#define _MD_INIT_IO()
-#define _MD_IOQ_LOCK()
-#define _MD_IOQ_UNLOCK()
-
-/*
- * The following are copied from _sunos.h, _aix.h. This means
- * some of them should probably be moved into _unixos.h. But
- * _irix.h seems to be quite different in regard to these macros.
- */
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
-
-#define _MD_EARLY_INIT _MD_EarlyInit
-#define _MD_FINAL_INIT _PR_UnixInit
-#define _MD_INIT_RUNNING_CPU(cpu) _MD_unix_init_running_cpu(cpu)
-#define _MD_INIT_THREAD _MD_InitializeThread
-#define _MD_EXIT_THREAD(thread)
-#define _MD_SUSPEND_THREAD(thread)
-#define _MD_RESUME_THREAD(thread)
-#define _MD_CLEAN_THREAD(_thread)
-
-/*
- * We wrapped the select() call. _MD_SELECT refers to the built-in,
- * unwrapped version.
- */
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/select.h>
-extern int _select(int nfds, fd_set *readfds, fd_set *writefds,
- fd_set *execptfds, struct timeval *timeout);
-#define _MD_SELECT _select
-
-#define _MD_POLL _poll
-extern int _poll(struct pollfd *fds, unsigned long nfds, int timeout);
-
-#endif /* nspr_ncr_defs_h */
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef nspr_cpucfg___
-#define nspr_cpucfg___
-
-#ifndef XP_UNIX
-#define XP_UNIX
-#endif
-
-#ifndef NEC
-#define NEC
-#endif
-
-#undef IS_LITTLE_ENDIAN
-#define IS_BIG_ENDIAN 1
-#undef HAVE_LONG_LONG
-#undef HAVE_ALIGNED_DOUBLES
-#undef HAVE_ALIGNED_LONGLONGS
-
-#define PR_BYTES_PER_BYTE 1
-#define PR_BYTES_PER_SHORT 2
-#define PR_BYTES_PER_INT 4
-#define PR_BYTES_PER_INT64 8
-#define PR_BYTES_PER_LONG 4
-#define PR_BYTES_PER_FLOAT 4
-#define PR_BYTES_PER_DOUBLE 8
-#define PR_BYTES_PER_WORD 4
-#define PR_BYTES_PER_DWORD 8
-
-#define PR_BITS_PER_BYTE 8
-#define PR_BITS_PER_SHORT 16
-#define PR_BITS_PER_INT 32
-#define PR_BITS_PER_INT64 64
-#define PR_BITS_PER_LONG 32
-#define PR_BITS_PER_FLOAT 32
-#define PR_BITS_PER_DOUBLE 64
-#define PR_BITS_PER_WORD 32
-
-#define PR_BITS_PER_BYTE_LOG2 3
-#define PR_BITS_PER_SHORT_LOG2 4
-#define PR_BITS_PER_INT_LOG2 5
-#define PR_BITS_PER_INT64_LOG2 6
-#define PR_BITS_PER_LONG_LOG2 5
-#define PR_BITS_PER_FLOAT_LOG2 5
-#define PR_BITS_PER_DOUBLE_LOG2 6
-#define PR_BITS_PER_WORD_LOG2 5
-
-#define PR_ALIGN_OF_SHORT 2
-#define PR_ALIGN_OF_INT 4
-#define PR_ALIGN_OF_LONG 4
-#define PR_ALIGN_OF_INT64 4
-#define PR_ALIGN_OF_FLOAT 4
-#define PR_ALIGN_OF_DOUBLE 8
-#define PR_ALIGN_OF_POINTER 4
-#define PR_ALIGN_OF_WORD 4
-
-#define PR_BYTES_PER_WORD_LOG2 2
-#define PR_BYTES_PER_DWORD_LOG2 3
-
-#ifndef NO_NSPR_10_SUPPORT
-
-#define BYTES_PER_BYTE PR_BYTES_PER_BYTE
-#define BYTES_PER_SHORT PR_BYTES_PER_SHORT
-#define BYTES_PER_INT PR_BYTES_PER_INT
-#define BYTES_PER_INT64 PR_BYTES_PER_INT64
-#define BYTES_PER_LONG PR_BYTES_PER_LONG
-#define BYTES_PER_FLOAT PR_BYTES_PER_FLOAT
-#define BYTES_PER_DOUBLE PR_BYTES_PER_DOUBLE
-#define BYTES_PER_WORD PR_BYTES_PER_WORD
-#define BYTES_PER_DWORD PR_BYTES_PER_DWORD
-
-#define BITS_PER_BYTE PR_BITS_PER_BYTE
-#define BITS_PER_SHORT PR_BITS_PER_SHORT
-#define BITS_PER_INT PR_BITS_PER_INT
-#define BITS_PER_INT64 PR_BITS_PER_INT64
-#define BITS_PER_LONG PR_BITS_PER_LONG
-#define BITS_PER_FLOAT PR_BITS_PER_FLOAT
-#define BITS_PER_DOUBLE PR_BITS_PER_DOUBLE
-#define BITS_PER_WORD PR_BITS_PER_WORD
-
-#define BITS_PER_BYTE_LOG2 PR_BITS_PER_BYTE_LOG2
-#define BITS_PER_SHORT_LOG2 PR_BITS_PER_SHORT_LOG2
-#define BITS_PER_INT_LOG2 PR_BITS_PER_INT_LOG2
-#define BITS_PER_INT64_LOG2 PR_BITS_PER_INT64_LOG2
-#define BITS_PER_LONG_LOG2 PR_BITS_PER_LONG_LOG2
-#define BITS_PER_FLOAT_LOG2 PR_BITS_PER_FLOAT_LOG2
-#define BITS_PER_DOUBLE_LOG2 PR_BITS_PER_DOUBLE_LOG2
-#define BITS_PER_WORD_LOG2 PR_BITS_PER_WORD_LOG2
-
-#define ALIGN_OF_SHORT PR_ALIGN_OF_SHORT
-#define ALIGN_OF_INT PR_ALIGN_OF_INT
-#define ALIGN_OF_LONG PR_ALIGN_OF_LONG
-#define ALIGN_OF_INT64 PR_ALIGN_OF_INT64
-#define ALIGN_OF_FLOAT PR_ALIGN_OF_FLOAT
-#define ALIGN_OF_DOUBLE PR_ALIGN_OF_DOUBLE
-#define ALIGN_OF_POINTER PR_ALIGN_OF_POINTER
-#define ALIGN_OF_WORD PR_ALIGN_OF_WORD
-
-#define BYTES_PER_WORD_LOG2 PR_BYTES_PER_WORD_LOG2
-#define BYTES_PER_DWORD_LOG2 PR_BYTES_PER_DWORD_LOG2
-#define WORDS_PER_DWORD_LOG2 PR_WORDS_PER_DWORD_LOG2
-
-#endif /* NO_NSPR_10_SUPPORT */
-
-#endif /* nspr_cpucfg___ */
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef nspr_nec_defs_h___
-#define nspr_nec_defs_h___
-
-/*
- * Internal configuration macros
- */
-
-#define PR_LINKER_ARCH "nec"
-#define _PR_SI_SYSNAME "NEC"
-#define _PR_SI_ARCHITECTURE "mips"
-#define PR_DLL_SUFFIX ".so"
-
-#define _PR_STACK_VMBASE 0x50000000
-#define _MD_DEFAULT_STACK_SIZE 65536L
-#define _MD_MMAP_FLAGS MAP_PRIVATE
-
-#undef HAVE_STACK_GROWING_UP
-#define HAVE_DLL
-#define USE_DLFCN
-#define NEED_TIME_R
-#define NEED_STRFTIME_LOCK
-#define _PR_POLL_AVAILABLE
-#define _PR_USE_POLL
-#define _PR_NO_LARGE_FILES
-#define _PR_STAT_HAS_ST_ATIM_UNION
-
-#include <ucontext.h>
-#include <sys/regset.h>
-
-#define PR_NUM_GCREGS NGREG
-#define PR_CONTEXT_TYPE ucontext_t
-
-#define CONTEXT(_thread) (&(_thread)->md.context)
-
-#define _MD_GET_SP(_t) (_t)->md.context.uc_mcontext.gregs[CXT_SP]
-
-/*
-** Initialize the thread context preparing it to execute "e(o,a)"
-*/
-#define _MD_INIT_CONTEXT(thread, _sp, _main, status) \
-{ \
- *status = PR_TRUE; \
- getcontext(CONTEXT(thread)); \
- CONTEXT(thread)->uc_stack.ss_sp = (char*) (thread)->stack->stackBottom; \
- CONTEXT(thread)->uc_stack.ss_size = (thread)->stack->stackSize; \
- _MD_GET_SP(thread) = (greg_t) _sp - 64; \
- makecontext(CONTEXT(thread), _main, 0); \
-}
-
-#define _MD_SWITCH_CONTEXT(_thread) \
- if (!getcontext(CONTEXT(_thread))) { \
- (_thread)->md.errcode = errno; \
- _PR_Schedule(); \
- }
-
-/*
-** Restore a thread context, saved by _MD_SWITCH_CONTEXT
-*/
-#define _MD_RESTORE_CONTEXT(_thread) \
-{ \
- ucontext_t *uc = CONTEXT(_thread); \
- uc->uc_mcontext.gregs[CXT_V0] = 1; \
- uc->uc_mcontext.gregs[CXT_A3] = 0; \
- errno = (_thread)->md.errcode; \
- _MD_SET_CURRENT_THREAD(_thread); \
- setcontext(uc); \
-}
-
-/* Machine-dependent (MD) data structures */
-
-struct _MDThread {
- PR_CONTEXT_TYPE context;
- int id;
- int errcode;
-};
-
-struct _MDThreadStack {
- PRInt8 notused;
-};
-
-struct _MDLock {
- PRInt8 notused;
-};
-
-struct _MDSemaphore {
- PRInt8 notused;
-};
-
-struct _MDCVar {
- PRInt8 notused;
-};
-
-struct _MDSegment {
- PRInt8 notused;
-};
-
-/*
- * md-specific cpu structure field
- */
-#define _PR_MD_MAX_OSFD FD_SETSIZE
-
-struct _MDCPU_Unix {
- PRCList ioQ;
- PRUint32 ioq_timeout;
- PRInt32 ioq_max_osfd;
- PRInt32 ioq_osfd_cnt;
-#ifndef _PR_USE_POLL
- fd_set fd_read_set, fd_write_set, fd_exception_set;
- PRInt16 fd_read_cnt[_PR_MD_MAX_OSFD],fd_write_cnt[_PR_MD_MAX_OSFD],
- fd_exception_cnt[_PR_MD_MAX_OSFD];
-#else
- struct pollfd *ioq_pollfds;
- int ioq_pollfds_size;
-#endif /* _PR_USE_POLL */
-};
-
-#define _PR_IOQ(_cpu) ((_cpu)->md.md_unix.ioQ)
-#define _PR_ADD_TO_IOQ(_pq, _cpu) PR_APPEND_LINK(&_pq.links, &_PR_IOQ(_cpu))
-#define _PR_FD_READ_SET(_cpu) ((_cpu)->md.md_unix.fd_read_set)
-#define _PR_FD_READ_CNT(_cpu) ((_cpu)->md.md_unix.fd_read_cnt)
-#define _PR_FD_WRITE_SET(_cpu) ((_cpu)->md.md_unix.fd_write_set)
-#define _PR_FD_WRITE_CNT(_cpu) ((_cpu)->md.md_unix.fd_write_cnt)
-#define _PR_FD_EXCEPTION_SET(_cpu) ((_cpu)->md.md_unix.fd_exception_set)
-#define _PR_FD_EXCEPTION_CNT(_cpu) ((_cpu)->md.md_unix.fd_exception_cnt)
-#define _PR_IOQ_TIMEOUT(_cpu) ((_cpu)->md.md_unix.ioq_timeout)
-#define _PR_IOQ_MAX_OSFD(_cpu) ((_cpu)->md.md_unix.ioq_max_osfd)
-#define _PR_IOQ_OSFD_CNT(_cpu) ((_cpu)->md.md_unix.ioq_osfd_cnt)
-#define _PR_IOQ_POLLFDS(_cpu) ((_cpu)->md.md_unix.ioq_pollfds)
-#define _PR_IOQ_POLLFDS_SIZE(_cpu) ((_cpu)->md.md_unix.ioq_pollfds_size)
-
-#define _PR_IOQ_MIN_POLLFDS_SIZE(_cpu) 32
-
-struct _MDCPU {
- struct _MDCPU_Unix md_unix;
-};
-
-#define _MD_INIT_LOCKS()
-#define _MD_NEW_LOCK(lock) PR_SUCCESS
-#define _MD_FREE_LOCK(lock)
-#define _MD_LOCK(lock)
-#define _MD_UNLOCK(lock)
-#define _MD_INIT_IO()
-#define _MD_IOQ_LOCK()
-#define _MD_IOQ_UNLOCK()
-
-#define _MD_EARLY_INIT _MD_EarlyInit
-#define _MD_FINAL_INIT _PR_UnixInit
-#define _MD_INIT_RUNNING_CPU(cpu) _MD_unix_init_running_cpu(cpu)
-#define _MD_INIT_THREAD _MD_InitializeThread
-#define _MD_EXIT_THREAD(thread)
-#define _MD_CLEAN_THREAD(_thread)
-
-#define _MD_SELECT _select
-#define _MD_POLL _poll
-
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
-
-#endif /* nspr_nec_defs_h___ */
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef nspr_cpucfg___
-#define nspr_cpucfg___
-
-#ifndef XP_UNIX
-#define XP_UNIX
-#endif
-
-#ifndef NEXTSTEP
-#define NEXTSTEP
-#endif
-
-/* Platform specific
-*/
-#if defined(__sparc__)
-
-/* Check these
-*/
-#undef IS_LITTLE_ENDIAN
-#define IS_BIG_ENDIAN 1
-#define HAVE_LONG_LONG
-#undef HAVE_ALIGNED_DOUBLES
-#define HAVE_ALIGNED_LONGLONGS 1
-
-#define PR_BYTES_PER_BYTE 1
-#define PR_BYTES_PER_SHORT 2
-#define PR_BYTES_PER_INT 4
-#define PR_BYTES_PER_INT64 8
-#define PR_BYTES_PER_LONG 4
-#define PR_BYTES_PER_FLOAT 4
-#define PR_BYTES_PER_DOUBLE 8
-/* Taken from _solaris.cfg
-*/
-#define PR_BYTES_PER_WORD 4
-#define PR_BYTES_PER_DWORD 8
-#define PR_BYTES_PER_WORD_LOG2 2
-#define PR_BYTES_PER_DWORD_LOG2 3
-
-#define PR_BITS_PER_BYTE 8
-#define PR_BITS_PER_SHORT 16
-#define PR_BITS_PER_INT 32
-#define PR_BITS_PER_INT64 64
-#define PR_BITS_PER_LONG 32
-#define PR_BITS_PER_FLOAT 32
-#define PR_BITS_PER_DOUBLE 64
-/* Taken from _solaris.cfg
-*/
-#define PR_BITS_PER_WORD 32
-
-#define PR_BITS_PER_BYTE_LOG2 3
-#define PR_BITS_PER_SHORT_LOG2 4
-#define PR_BITS_PER_INT_LOG2 5
-#define PR_BITS_PER_INT64_LOG2 6
-#define PR_BITS_PER_LONG_LOG2 5
-#define PR_BITS_PER_FLOAT_LOG2 5
-#define PR_BITS_PER_DOUBLE_LOG2 6
-/* Taken from _solaris.cfg
-*/
-#define PR_BITS_PER_WORD_LOG2 5
-
-#define PR_ALIGN_OF_SHORT 2
-#define PR_ALIGN_OF_INT 4
-#define PR_ALIGN_OF_LONG 4
-#define PR_ALIGN_OF_INT64 8
-#define PR_ALIGN_OF_FLOAT 4
-#define PR_ALIGN_OF_DOUBLE 8
-#define PR_ALIGN_OF_POINTER 4
-
-#define PR_WORDS_PER_DWORD_LOG2 1
-
-#elif defined(__m68k__)
-
-/* Check these
-*/
-#undef IS_LITTLE_ENDIAN
-#define IS_BIG_ENDIAN 1
-#define HAVE_LONG_LONG
-#undef HAVE_ALIGNED_DOUBLES
-#define HAVE_ALIGNED_LONGLONGS 1
-
-#define PR_BYTES_PER_BYTE 1
-#define PR_BYTES_PER_SHORT 2
-#define PR_BYTES_PER_INT 4
-#define PR_BYTES_PER_INT64 8
-#define PR_BYTES_PER_LONG 4
-#define PR_BYTES_PER_FLOAT 4
-#define PR_BYTES_PER_DOUBLE 8
-#define PR_BYTES_PER_WORD 4
-#define PR_BYTES_PER_DWORD 8
-#define PR_BYTES_PER_WORD_LOG2 2
-#define PR_BYTES_PER_DWORD_LOG2 3
-
-#define PR_BITS_PER_BYTE 8
-#define PR_BITS_PER_SHORT 16
-#define PR_BITS_PER_INT 32
-#define PR_BITS_PER_INT64 64
-#define PR_BITS_PER_LONG 32
-#define PR_BITS_PER_FLOAT 32
-#define PR_BITS_PER_DOUBLE 64
-#define PR_BITS_PER_WORD 32
-
-#define PR_BITS_PER_BYTE_LOG2 3
-#define PR_BITS_PER_SHORT_LOG2 4
-#define PR_BITS_PER_INT_LOG2 5
-#define PR_BITS_PER_INT64_LOG2 6
-#define PR_BITS_PER_LONG_LOG2 5
-#define PR_BITS_PER_FLOAT_LOG2 5
-#define PR_BITS_PER_DOUBLE_LOG2 6
-#define PR_BITS_PER_WORD_LOG2 5
-
-#define PR_ALIGN_OF_SHORT 2
-#define PR_ALIGN_OF_INT 2
-#define PR_ALIGN_OF_LONG 2
-#define PR_ALIGN_OF_INT64 2
-#define PR_ALIGN_OF_FLOAT 2
-#define PR_ALIGN_OF_DOUBLE 2
-#define PR_ALIGN_OF_POINTER 2
-
-#define PR_WORDS_PER_DWORD_LOG2 1
-
-#elif defined(__i386__)
-
-/* Check these
-*/
-#define IS_LITTLE_ENDIAN 1
-#undef IS_BIG_ENDIAN
-#define HAVE_LONG_LONG
-#undef HAVE_ALIGNED_DOUBLES
-#define HAVE_ALIGNED_LONGLONGS 1
-
-#define PR_BYTES_PER_BYTE 1
-#define PR_BYTES_PER_SHORT 2
-#define PR_BYTES_PER_INT 4
-#define PR_BYTES_PER_INT64 8
-#define PR_BYTES_PER_LONG 4
-#define PR_BYTES_PER_FLOAT 4
-#define PR_BYTES_PER_DOUBLE 8
-#define PR_BYTES_PER_WORD 4
-#define PR_BYTES_PER_DWORD 8
-
-#define PR_BITS_PER_BYTE 8
-#define PR_BITS_PER_SHORT 16
-#define PR_BITS_PER_INT 32
-#define PR_BITS_PER_INT64 64
-#define PR_BITS_PER_LONG 32
-#define PR_BITS_PER_FLOAT 32
-#define PR_BITS_PER_DOUBLE 64
-#define PR_BITS_PER_WORD 32
-
-#define PR_BITS_PER_BYTE_LOG2 3
-#define PR_BITS_PER_SHORT_LOG2 4
-#define PR_BITS_PER_INT_LOG2 5
-#define PR_BITS_PER_INT64_LOG2 6
-#define PR_BITS_PER_LONG_LOG2 5
-#define PR_BITS_PER_FLOAT_LOG2 5
-#define PR_BITS_PER_DOUBLE_LOG2 6
-#define PR_BITS_PER_WORD_LOG2 5
-
-#define PR_ALIGN_OF_SHORT 2
-#define PR_ALIGN_OF_INT 4
-#define PR_ALIGN_OF_LONG 4
-#define PR_ALIGN_OF_INT64 4
-#define PR_ALIGN_OF_FLOAT 4
-#define PR_ALIGN_OF_DOUBLE 4
-#define PR_ALIGN_OF_POINTER 4
-#define PR_ALIGN_OF_WORD 4
-
-#define PR_BYTES_PER_WORD_LOG2 2
-#define PR_BYTES_PER_DWORD_LOG2 3
-#define PR_WORDS_PER_DWORD_LOG2 1
-#endif /* defined(__somearch__) */
-
-
-#ifndef NO_NSPR_10_SUPPORT
-
-#define BYTES_PER_BYTE PR_BYTES_PER_BYTE
-#define BYTES_PER_SHORT PR_BYTES_PER_SHORT
-#define BYTES_PER_INT PR_BYTES_PER_INT
-#define BYTES_PER_INT64 PR_BYTES_PER_INT64
-#define BYTES_PER_LONG PR_BYTES_PER_LONG
-#define BYTES_PER_FLOAT PR_BYTES_PER_FLOAT
-#define BYTES_PER_DOUBLE PR_BYTES_PER_DOUBLE
-#define BYTES_PER_WORD PR_BYTES_PER_WORD
-#define BYTES_PER_DWORD PR_BYTES_PER_DWORD
-
-#define BITS_PER_BYTE PR_BITS_PER_BYTE
-#define BITS_PER_SHORT PR_BITS_PER_SHORT
-#define BITS_PER_INT PR_BITS_PER_INT
-#define BITS_PER_INT64 PR_BITS_PER_INT64
-#define BITS_PER_LONG PR_BITS_PER_LONG
-#define BITS_PER_FLOAT PR_BITS_PER_FLOAT
-#define BITS_PER_DOUBLE PR_BITS_PER_DOUBLE
-#define BITS_PER_WORD PR_BITS_PER_WORD
-
-#define BITS_PER_BYTE_LOG2 PR_BITS_PER_BYTE_LOG2
-#define BITS_PER_SHORT_LOG2 PR_BITS_PER_SHORT_LOG2
-#define BITS_PER_INT_LOG2 PR_BITS_PER_INT_LOG2
-#define BITS_PER_INT64_LOG2 PR_BITS_PER_INT64_LOG2
-#define BITS_PER_LONG_LOG2 PR_BITS_PER_LONG_LOG2
-#define BITS_PER_FLOAT_LOG2 PR_BITS_PER_FLOAT_LOG2
-#define BITS_PER_DOUBLE_LOG2 PR_BITS_PER_DOUBLE_LOG2
-#define BITS_PER_WORD_LOG2 PR_BITS_PER_WORD_LOG2
-
-#define ALIGN_OF_SHORT PR_ALIGN_OF_SHORT
-#define ALIGN_OF_INT PR_ALIGN_OF_INT
-#define ALIGN_OF_LONG PR_ALIGN_OF_LONG
-#define ALIGN_OF_INT64 PR_ALIGN_OF_INT64
-#define ALIGN_OF_FLOAT PR_ALIGN_OF_FLOAT
-#define ALIGN_OF_DOUBLE PR_ALIGN_OF_DOUBLE
-#define ALIGN_OF_POINTER PR_ALIGN_OF_POINTER
-#define ALIGN_OF_WORD PR_ALIGN_OF_WORD
-
-#define BYTES_PER_WORD_LOG2 PR_BYTES_PER_WORD_LOG2
-#define BYTES_PER_DWORD_LOG2 PR_BYTES_PER_DWORD_LOG2
-#define WORDS_PER_DWORD_LOG2 PR_WORDS_PER_DWORD_LOG2
-
-#endif /* NO_NSPR_10_SUPPORT */
-
-#endif /* nspr_cpucfg___ */
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef nspr_nextstep_defs_h___
-#define nspr_nextstep_defs_h___
-
-#include "prthread.h"
-
-#include <bsd/libc.h>
-#include <bsd/syscall.h>
-
-/* syscall() is not declared in NEXTSTEP's syscall.h ...
-*/
-extern int syscall(int number, ...);
-
-/*
- * Internal configuration macros
- */
-
-#define PR_LINKER_ARCH "nextstep"
-#define _PR_SI_SYSNAME "NEXTSTEP"
-#if defined(__sparc__)
-#define _PR_SI_ARCHITECTURE "sparc"
-#elif defined(__m68k__)
-#define _PR_SI_ARCHITECTURE "m68k"
-#elif defined(__i386__)
-#define _PR_SI_ARCHITECTURE "x86"
-#else
-error Unknown NEXTSTEP architecture
-#endif
-#define PR_DLL_SUFFIX ".so"
-
-#define _PR_VMBASE 0x30000000
-#define _PR_STACK_VMBASE 0x50000000
-#define _MD_DEFAULT_STACK_SIZE 65536L
-#define _MD_MMAP_FLAGS MAP_PRIVATE
-
-#undef HAVE_STACK_GROWING_UP
-
-#define HAVE_WEAK_MALLOC_SYMBOLS
-
-#define HAVE_DLL
-#define USE_MACH_DYLD
-#define _PR_STAT_HAS_ONLY_ST_ATIME
-#define _PR_NO_LARGE_FILES
-
-#define USE_SETJMP
-
-#ifndef _PR_PTHREADS
-
-#include <setjmp.h>
-
-#define PR_CONTEXT_TYPE jmp_buf
-
-#define CONTEXT(_th) ((_th)->md.context)
-
-/* balazs.pataki@sztaki.hu:
-** __sparc__ is checked
-** __m68k__ is checked
-** __i386__ is a guess (one of the two defines should work)
-*/
-#if defined(__sparc__)
-#define _MD_GET_SP(_th) (_th)->md.context[2]
-#elif defined(__m68k__)
-#define _MD_GET_SP(_th) (_th)->md.context[2]
-#elif defined(__i386__)
-/* One of this two must be OK ... try using sc_onstack
-*/
-#define _MD_GET_SP(_th) (((struct sigcontext *) (_th)->md.context)->sc_onstack)
-//#define _MD_GET_SP(_th) (_th)->md.context[0].sc_esp
-#else
-error Unknown NEXTSTEP architecture
-#endif
-
-#define PR_NUM_GCREGS _JBLEN
-
-/*
-** Initialize a thread context to run "_main()" when started
-*/
-#define _MD_INIT_CONTEXT(_thread, _sp, _main, status) \
-{ \
- *status = PR_TRUE; \
- if (setjmp(CONTEXT(_thread))) { \
- _main(); \
- } \
- _MD_GET_SP(_thread) = (int) ((_sp) - 64); \
-}
-
-#define _MD_SWITCH_CONTEXT(_thread) \
- if (!setjmp(CONTEXT(_thread))) { \
- (_thread)->md.errcode = errno; \
- _PR_Schedule(); \
- }
-
-/*
-** Restore a thread context, saved by _MD_SWITCH_CONTEXT
-*/
-#define _MD_RESTORE_CONTEXT(_thread) \
-{ \
- errno = (_thread)->md.errcode; \
- _MD_SET_CURRENT_THREAD(_thread); \
- longjmp(CONTEXT(_thread), 1); \
-}
-
-/* Machine-dependent (MD) data structures */
-
-struct _MDThread {
- PR_CONTEXT_TYPE context;
- int id;
- int errcode;
-};
-
-struct _MDThreadStack {
- PRInt8 notused;
-};
-
-struct _MDLock {
- PRInt8 notused;
-};
-
-struct _MDSemaphore {
- PRInt8 notused;
-};
-
-struct _MDCVar {
- PRInt8 notused;
-};
-
-struct _MDSegment {
- PRInt8 notused;
-};
-
-/*
- * md-specific cpu structure field
- */
-#define _PR_MD_MAX_OSFD FD_SETSIZE
-
-struct _MDCPU_Unix {
- PRCList ioQ;
- PRUint32 ioq_timeout;
- PRInt32 ioq_max_osfd;
- PRInt32 ioq_osfd_cnt;
-#ifndef _PR_USE_POLL
- fd_set fd_read_set, fd_write_set, fd_exception_set;
- PRInt16 fd_read_cnt[_PR_MD_MAX_OSFD],fd_write_cnt[_PR_MD_MAX_OSFD],
- fd_exception_cnt[_PR_MD_MAX_OSFD];
-#else
- struct pollfd *ioq_pollfds;
- int ioq_pollfds_size;
-#endif /* _PR_USE_POLL */
-};
-
-#define _PR_IOQ(_cpu) ((_cpu)->md.md_unix.ioQ)
-#define _PR_ADD_TO_IOQ(_pq, _cpu) PR_APPEND_LINK(&_pq.links, &_PR_IOQ(_cpu))
-#define _PR_FD_READ_SET(_cpu) ((_cpu)->md.md_unix.fd_read_set)
-#define _PR_FD_READ_CNT(_cpu) ((_cpu)->md.md_unix.fd_read_cnt)
-#define _PR_FD_WRITE_SET(_cpu) ((_cpu)->md.md_unix.fd_write_set)
-#define _PR_FD_WRITE_CNT(_cpu) ((_cpu)->md.md_unix.fd_write_cnt)
-#define _PR_FD_EXCEPTION_SET(_cpu) ((_cpu)->md.md_unix.fd_exception_set)
-#define _PR_FD_EXCEPTION_CNT(_cpu) ((_cpu)->md.md_unix.fd_exception_cnt)
-#define _PR_IOQ_TIMEOUT(_cpu) ((_cpu)->md.md_unix.ioq_timeout)
-#define _PR_IOQ_MAX_OSFD(_cpu) ((_cpu)->md.md_unix.ioq_max_osfd)
-#define _PR_IOQ_OSFD_CNT(_cpu) ((_cpu)->md.md_unix.ioq_osfd_cnt)
-#define _PR_IOQ_POLLFDS(_cpu) ((_cpu)->md.md_unix.ioq_pollfds)
-#define _PR_IOQ_POLLFDS_SIZE(_cpu) ((_cpu)->md.md_unix.ioq_pollfds_size)
-
-#define _PR_IOQ_MIN_POLLFDS_SIZE(_cpu) 32
-
-struct _MDCPU {
- struct _MDCPU_Unix md_unix;
-};
-
-#define _MD_INIT_LOCKS()
-#define _MD_NEW_LOCK(lock) PR_SUCCESS
-#define _MD_FREE_LOCK(lock)
-#define _MD_LOCK(lock)
-#define _MD_UNLOCK(lock)
-#define _MD_INIT_IO()
-#define _MD_IOQ_LOCK()
-#define _MD_IOQ_UNLOCK()
-
-extern PRStatus _MD_InitializeThread(PRThread *thread);
-
-#define _MD_INIT_RUNNING_CPU(cpu) _MD_unix_init_running_cpu(cpu)
-#define _MD_INIT_THREAD _MD_InitializeThread
-#define _MD_EXIT_THREAD(thread)
-#define _MD_SUSPEND_THREAD(thread) _MD_suspend_thread
-#define _MD_RESUME_THREAD(thread) _MD_resume_thread
-#define _MD_CLEAN_THREAD(_thread)
-
-extern PRStatus _MD_CREATE_THREAD(
- PRThread *thread,
- void (*start) (void *),
- PRThreadPriority priority,
- PRThreadScope scope,
- PRThreadState state,
- PRUint32 stackSize);
-extern void _MD_SET_PRIORITY(struct _MDThread *thread, PRUintn newPri);
-extern PRStatus _MD_WAIT(PRThread *, PRIntervalTime timeout);
-extern PRStatus _MD_WAKEUP_WAITER(PRThread *);
-extern void _MD_YIELD(void);
-
-#endif /* ! _PR_PTHREADS */
-
-extern void _MD_EarlyInit(void);
-extern PRIntervalTime _PR_UNIX_GetInterval(void);
-extern PRIntervalTime _PR_UNIX_TicksPerSecond(void);
-
-#define _MD_EARLY_INIT _MD_EarlyInit
-#define _MD_FINAL_INIT _PR_UnixInit
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
-
-/*
- * We wrapped the select() call. _MD_SELECT refers to the built-in,
- * unwrapped version.
- */
-#define _MD_SELECT(nfds,r,w,e,tv) syscall(SYS_select,nfds,r,w,e,tv)
-
-/* For writev() */
-#include <sys/uio.h>
-
-/* signal.h */
-/* balazs.pataki@sztaki.hu: this is stolen from sunos4.h. The things is that
-** NEXTSTEP doesn't support these flags for `struct sigaction's sa_flags, so
-** I have to fake them ...
-*/
-#define SA_RESTART 0
-
-/* mmap */
-/* balazs.pataki@sztaki.hu: NEXTSTEP doesn't have mmap, at least not
-** publically. We have sys/mman.h, but it doesn't declare mmap(), and
-** PROT_NONE is also missing. syscall.h has entries for mmap, munmap, and
-** mprotect so I wrap these in nextstep.c as mmap(), munmap() and mprotect()
-** and pray for it to work.
-**
-*/
-caddr_t mmap(caddr_t addr, size_t len, int prot, int flags,
- int fildes, off_t off);
-int munmap(caddr_t addr, size_t len);
-int mprotect(caddr_t addr, size_t len, int prot);
-
-/* my_mmap() is implemented in nextstep.c and is based on map_fd() of mach.
-*/
-caddr_t my_mmap(caddr_t addr, size_t len, int prot, int flags,
- int fildes, off_t off);
-int my_munmap(caddr_t addr, size_t len);
-
-
-/* string.h
-*/
-/* balazs.pataki@sztaki.hu: this is missing so implemenetd in nextstep.c ...
-*/
-char *strdup(const char *s1);
-
-/* unistd.h
-*/
-/* balazs.pataki@sztaki.hu: these functions are hidden, though correctly
-** implemented in NEXTSTEP. Here I give the declaration for them to be used
-** by prmalloc.c, and I have a wrapped syscall() version of them in nextstep.c
-*/
-int brk(void *endds);
-void *sbrk(int incr);
-
-#endif /* nspr_nextstep_defs_h___ */
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef nspr_cpucfg___
-#define nspr_cpucfg___
-
-#ifndef XP_UNIX
-#define XP_UNIX
-#endif
-
-#ifndef RELIANTUNIX
-#define RELIANTUNIX
-#endif
-
-#undef IS_LITTLE_ENDIAN
-#define IS_BIG_ENDIAN 1
-#undef HAVE_LONG_LONG
-#undef HAVE_ALIGNED_DOUBLES
-#undef HAVE_ALIGNED_LONGLONGS
-
-#define PR_BYTES_PER_BYTE 1
-#define PR_BYTES_PER_SHORT 2
-#define PR_BYTES_PER_INT 4
-#define PR_BYTES_PER_INT64 8
-#define PR_BYTES_PER_LONG 4
-#define PR_BYTES_PER_FLOAT 4
-#define PR_BYTES_PER_WORD 4
-#define PR_BYTES_PER_DWORD 8
-#define PR_BYTES_PER_DOUBLE 8
-
-#define PR_BITS_PER_BYTE 8
-#define PR_BITS_PER_SHORT 16
-#define PR_BITS_PER_INT 32
-#define PR_BITS_PER_INT64 64
-#define PR_BITS_PER_LONG 32
-#define PR_BITS_PER_FLOAT 32
-#define PR_BITS_PER_WORD 32
-#define PR_BITS_PER_DWORD 64
-#define PR_BITS_PER_DOUBLE 64
-
-#define PR_BITS_PER_BYTE_LOG2 3
-#define PR_BITS_PER_SHORT_LOG2 4
-#define PR_BITS_PER_INT_LOG2 5
-#define PR_BITS_PER_INT64_LOG2 6
-#define PR_BITS_PER_LONG_LOG2 5
-#define PR_BITS_PER_FLOAT_LOG2 5
-#define PR_BITS_PER_WORD_LOG2 5
-#define PR_BITS_PER_DWORD_LOG2 6
-#define PR_BITS_PER_DOUBLE_LOG2 6
-
-#define PR_BYTES_PER_WORD_LOG2 2
-#define PR_BYTES_PER_DWORD_LOG2 3
-#define PR_WORDS_PER_DWORD_LOG2 1
-
-#define PR_ALIGN_OF_SHORT 2
-#define PR_ALIGN_OF_INT 4
-#define PR_ALIGN_OF_LONG 4
-#define PR_ALIGN_OF_INT64 8
-#define PR_ALIGN_OF_FLOAT 4
-#define PR_ALIGN_OF_WORD 4
-#define PR_ALIGN_OF_DOUBLE 8
-#define PR_ALIGN_OF_POINTER 4
-
-#define _PR_POLL_BACKCOMPAT
-
-#ifndef NO_NSPR_10_SUPPORT
-
-#define BYTES_PER_BYTE PR_BYTES_PER_BYTE
-#define BYTES_PER_SHORT PR_BYTES_PER_SHORT
-#define BYTES_PER_INT PR_BYTES_PER_INT
-#define BYTES_PER_INT64 PR_BYTES_PER_INT64
-#define BYTES_PER_LONG PR_BYTES_PER_LONG
-#define BYTES_PER_FLOAT PR_BYTES_PER_FLOAT
-#define BYTES_PER_DOUBLE PR_BYTES_PER_DOUBLE
-#define BYTES_PER_WORD PR_BYTES_PER_WORD
-#define BYTES_PER_DWORD PR_BYTES_PER_DWORD
-
-#define BITS_PER_BYTE PR_BITS_PER_BYTE
-#define BITS_PER_SHORT PR_BITS_PER_SHORT
-#define BITS_PER_INT PR_BITS_PER_INT
-#define BITS_PER_INT64 PR_BITS_PER_INT64
-#define BITS_PER_LONG PR_BITS_PER_LONG
-#define BITS_PER_FLOAT PR_BITS_PER_FLOAT
-#define BITS_PER_DOUBLE PR_BITS_PER_DOUBLE
-#define BITS_PER_WORD PR_BITS_PER_WORD
-
-#define BITS_PER_BYTE_LOG2 PR_BITS_PER_BYTE_LOG2
-#define BITS_PER_SHORT_LOG2 PR_BITS_PER_SHORT_LOG2
-#define BITS_PER_INT_LOG2 PR_BITS_PER_INT_LOG2
-#define BITS_PER_INT64_LOG2 PR_BITS_PER_INT64_LOG2
-#define BITS_PER_LONG_LOG2 PR_BITS_PER_LONG_LOG2
-#define BITS_PER_FLOAT_LOG2 PR_BITS_PER_FLOAT_LOG2
-#define BITS_PER_DOUBLE_LOG2 PR_BITS_PER_DOUBLE_LOG2
-#define BITS_PER_WORD_LOG2 PR_BITS_PER_WORD_LOG2
-
-#define ALIGN_OF_SHORT PR_ALIGN_OF_SHORT
-#define ALIGN_OF_INT PR_ALIGN_OF_INT
-#define ALIGN_OF_LONG PR_ALIGN_OF_LONG
-#define ALIGN_OF_INT64 PR_ALIGN_OF_INT64
-#define ALIGN_OF_FLOAT PR_ALIGN_OF_FLOAT
-#define ALIGN_OF_DOUBLE PR_ALIGN_OF_DOUBLE
-#define ALIGN_OF_POINTER PR_ALIGN_OF_POINTER
-#define ALIGN_OF_WORD PR_ALIGN_OF_WORD
-
-#define BYTES_PER_WORD_LOG2 PR_BYTES_PER_WORD_LOG2
-#define BYTES_PER_DWORD_LOG2 PR_BYTES_PER_DWORD_LOG2
-#define WORDS_PER_DWORD_LOG2 PR_WORDS_PER_DWORD_LOG2
-
-#endif /* NO_NSPR_10_SUPPORT */
-
-#endif /* nspr_cpucfg___ */
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-/*
- * reliantunix.h
- * 5/18/96 Taken from nec.h -- chrisk@netscape.com
- * 3/14/97 Modified for nspr20 -- chrisk@netscape.com
- */
-#ifndef nspr_reliantunix_defs_h___
-#define nspr_reliantunix_defs_h___
-
-/*
- * Internal configuration macros
- */
-
-#define PR_LINKER_ARCH "sinix"
-#define _PR_SI_SYSNAME "SINIX"
-#define _PR_SI_ARCHITECTURE "mips"
-#define PR_DLL_SUFFIX ".so"
-
-#define _PR_VMBASE 0x30000000
-#define _PR_STACK_VMBASE 0x50000000
-#define _MD_DEFAULT_STACK_SIZE (2*65536L)
-#define _MD_MMAP_FLAGS MAP_PRIVATE|MAP_FIXED
-
-#undef HAVE_STACK_GROWING_UP
-#define HAVE_DLL
-#define USE_DLFCN
-#define NEED_STRFTIME_LOCK
-#define NEED_TIME_R
-#define HAVE_NETCONFIG
-#define HAVE_WEAK_IO_SYMBOLS
-#define HAVE_WEAK_MALLOC_SYMBOLS
-#define _PR_RECV_BROKEN /* recv doesn't work on Unix Domain Sockets */
-#define _PR_POLL_AVAILABLE
-#define _PR_USE_POLL
-#define _PR_STAT_HAS_ST_ATIM
-#define _PR_NO_LARGE_FILES
-
-/*
- * Mike Patnode indicated that it is possibly safe now to use context-switching
- * calls that do not change the signal mask, like setjmp vs. sigsetjmp.
- * So we'll use our homegrown, getcontext/setcontext-compatible stuff which
- * will save us the getcontext/setcontext system calls at each context switch.
- * It already works in FastTrack 2.01, so it should do it here :-)
- * - chrisk 040497
- */
-#define USE_SETCXT /* temporarily disabled... */
-
-#include <ucontext.h>
-
-#ifdef USE_SETCXT
-/* use non-syscall machine language replacement */
-#define _GETCONTEXT getcxt
-#define _SETCONTEXT setcxt
-/* defined in os_ReliantUNIX.s */
-extern int getcxt(ucontext_t *);
-extern int setcxt(ucontext_t *);
-#else
-#define _GETCONTEXT getcontext
-#define _SETCONTEXT setcontext
-#endif
-
-#define _MD_GET_SP(_t) (_t)->md.context.uc_mcontext.gpregs[CXT_SP]
-#define _PR_CONTEXT_TYPE ucontext_t
-#define _PR_NUM_GCREGS NGREG
-
-#define CONTEXT(_thread) (&(_thread)->md.context)
-
-#define _PR_IS_NATIVE_THREAD_SUPPORTED() 0
-
-/*
-** Machine-dependent (MD) data structures.
-*/
-struct _MDThread {
- _PR_CONTEXT_TYPE context;
- int id;
- int errcode;
-};
-
-struct _MDThreadStack {
- PRInt8 notused;
-};
-
-struct _MDLock {
- PRInt8 notused;
-};
-
-struct _MDSemaphore {
- PRInt8 notused;
-};
-
-struct _MDCVar {
- PRInt8 notused;
-};
-
-struct _MDSegment {
- PRInt8 notused;
-};
-
-/*
- * md-specific cpu structure field
- */
-#define _PR_MD_MAX_OSFD FD_SETSIZE
-
-struct _MDCPU_Unix {
- PRCList ioQ;
- PRUint32 ioq_timeout;
- PRInt32 ioq_max_osfd;
- PRInt32 ioq_osfd_cnt;
-#ifndef _PR_USE_POLL
- fd_set fd_read_set, fd_write_set, fd_exception_set;
- PRInt16 fd_read_cnt[_PR_MD_MAX_OSFD],fd_write_cnt[_PR_MD_MAX_OSFD],
- fd_exception_cnt[_PR_MD_MAX_OSFD];
-#else
- struct pollfd *ioq_pollfds;
- int ioq_pollfds_size;
-#endif /* _PR_USE_POLL */
-};
-
-#define _PR_IOQ(_cpu) ((_cpu)->md.md_unix.ioQ)
-#define _PR_ADD_TO_IOQ(_pq, _cpu) PR_APPEND_LINK(&_pq.links, &_PR_IOQ(_cpu))
-#define _PR_FD_READ_SET(_cpu) ((_cpu)->md.md_unix.fd_read_set)
-#define _PR_FD_READ_CNT(_cpu) ((_cpu)->md.md_unix.fd_read_cnt)
-#define _PR_FD_WRITE_SET(_cpu) ((_cpu)->md.md_unix.fd_write_set)
-#define _PR_FD_WRITE_CNT(_cpu) ((_cpu)->md.md_unix.fd_write_cnt)
-#define _PR_FD_EXCEPTION_SET(_cpu) ((_cpu)->md.md_unix.fd_exception_set)
-#define _PR_FD_EXCEPTION_CNT(_cpu) ((_cpu)->md.md_unix.fd_exception_cnt)
-#define _PR_IOQ_TIMEOUT(_cpu) ((_cpu)->md.md_unix.ioq_timeout)
-#define _PR_IOQ_MAX_OSFD(_cpu) ((_cpu)->md.md_unix.ioq_max_osfd)
-#define _PR_IOQ_OSFD_CNT(_cpu) ((_cpu)->md.md_unix.ioq_osfd_cnt)
-#define _PR_IOQ_POLLFDS(_cpu) ((_cpu)->md.md_unix.ioq_pollfds)
-#define _PR_IOQ_POLLFDS_SIZE(_cpu) ((_cpu)->md.md_unix.ioq_pollfds_size)
-
-#define _PR_IOQ_MIN_POLLFDS_SIZE(_cpu) 32
-
-struct _MDCPU {
- struct _MDCPU_Unix md_unix;
-};
-
-#define _MD_INIT_LOCKS()
-#define _MD_NEW_LOCK(lock) PR_SUCCESS
-#define _MD_FREE_LOCK(lock)
-#define _MD_LOCK(lock)
-#define _MD_UNLOCK(lock)
-#define _MD_INIT_IO()
-#define _MD_IOQ_LOCK()
-#define _MD_IOQ_UNLOCK()
-
-/*
-** Initialize the thread context preparing it to execute "_main()"
-** - get a nice, fresh context
-** - set its SP to the stack we allcoated for it
-** - set it to start things at "e"
-*/
-#define _MD_INIT_CONTEXT(thread, _sp, _main, status) \
- PR_BEGIN_MACRO \
- *status = PR_TRUE; \
- _GETCONTEXT(CONTEXT(thread)); \
- /* this is supposed to point to the stack BASE, not to SP */ \
- CONTEXT(thread)->uc_stack.ss_sp = thread->stack->stackBottom; \
- CONTEXT(thread)->uc_stack.ss_size = thread->stack->stackSize; \
- CONTEXT(thread)->uc_mcontext.gpregs[CXT_SP] = ((unsigned long)_sp - 128) & 0xfffffff8; \
- CONTEXT(thread)->uc_mcontext.gpregs[CXT_T9] = _main; \
- CONTEXT(thread)->uc_mcontext.gpregs[CXT_EPC] = _main; \
- CONTEXT(thread)->uc_mcontext.gpregs[CXT_RA] = 0; \
- thread->no_sched = 0; \
- PR_END_MACRO
-
-/*
-** Save current context as it is scheduled away
-*/
-#define _MD_SWITCH_CONTEXT(_thread) \
- PR_BEGIN_MACRO \
- if (!_GETCONTEXT(CONTEXT(_thread))) { \
- _MD_SAVE_ERRNO(_thread); \
- _MD_SET_LAST_THREAD(_thread); \
- _PR_Schedule(); \
- } \
- PR_END_MACRO
-
-/*
-** Restore a thread context, saved by _MD_SWITCH_CONTEXT or set up
-** by _MD_INIT_CONTEXT
-** CXT_V0 is the register that holds the return value.
-** We must set it to 1 so that we can see if the return from
-** getcontext() is the result of calling getcontext() or
-** setcontext()...
-** setting a context got with getcontext() appears to
-** return from getcontext(), too!
-** CXT_A3 is the register that holds status when returning
-** from a syscall. It is set to 0 to indicate success,
-** because we want getcontext() on the other side of the magic
-** door to be ok.
-*/
-#define _MD_RESTORE_CONTEXT(_thread) \
- PR_BEGIN_MACRO \
- ucontext_t *uc = CONTEXT(_thread); \
- uc->uc_mcontext.gpregs[CXT_V0] = 1;\
- uc->uc_mcontext.gpregs[CXT_A3] = 0;\
- _MD_RESTORE_ERRNO(_thread); \
- _MD_SET_CURRENT_THREAD(_thread); \
- _SETCONTEXT(uc); \
- PR_END_MACRO
-
-#define _MD_SAVE_ERRNO(t) (t)->md.errcode = errno;
-#define _MD_RESTORE_ERRNO(t) errno = (t)->md.errcode;
-
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
-
-#define _MD_EARLY_INIT _MD_EarlyInit
-#define _MD_FINAL_INIT _PR_UnixInit
-#define _MD_INIT_RUNNING_CPU(cpu) _MD_unix_init_running_cpu(cpu)
-#define _MD_INIT_THREAD _MD_InitializeThread
-#define _MD_EXIT_THREAD(thread)
-#define _MD_SUSPEND_THREAD(thread)
-#define _MD_RESUME_THREAD(thread)
-#define _MD_CLEAN_THREAD(_thread)
-
-#if !defined(S_ISSOCK) && defined(S_IFSOCK)
-#define S_ISSOCK(mode) ((mode&0xF000) == 0xC000)
-#endif
-#if !defined(S_ISLNK) && defined(S_IFLNK)
-#define S_ISLNK(mode) ((mode&0xA000) == 0xC000)
-#endif
-
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/select.h>
-extern int _select(int nfds, fd_set *readfds, fd_set *writefds,
- fd_set *execptfds, struct timeval *timeout);
-#define _MD_SELECT(nfds,r,w,e,tv) _select(nfds,r,w,e,tv)
-#define _MD_POLL _poll
-
-#endif /* nspr_reliantunix_defs_h___ */
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef nspr_cpucfg___
-#define nspr_cpucfg___
-
-#ifndef XP_UNIX
-#define XP_UNIX
-#endif
-
-#ifndef SONY
-#define SONY
-#endif
-
-#undef IS_LITTLE_ENDIAN
-#define IS_BIG_ENDIAN 1
-
-#define PR_BYTES_PER_BYTE 1
-#define PR_BYTES_PER_SHORT 2
-#define PR_BYTES_PER_INT 4
-#define PR_BYTES_PER_INT64 8
-#define PR_BYTES_PER_LONG 4
-#define PR_BYTES_PER_FLOAT 4
-#define PR_BYTES_PER_DOUBLE 8
-#define PR_BYTES_PER_WORD 4
-#define PR_BYTES_PER_DWORD 8
-
-#define PR_BITS_PER_BYTE 8
-#define PR_BITS_PER_SHORT 16
-#define PR_BITS_PER_INT 32
-#define PR_BITS_PER_INT64 64
-#define PR_BITS_PER_LONG 32
-#define PR_BITS_PER_FLOAT 32
-#define PR_BITS_PER_DOUBLE 64
-#define PR_BITS_PER_WORD 32
-
-#define PR_BITS_PER_BYTE_LOG2 3
-#define PR_BITS_PER_SHORT_LOG2 4
-#define PR_BITS_PER_INT_LOG2 5
-#define PR_BITS_PER_INT64_LOG2 6
-#define PR_BITS_PER_LONG_LOG2 5
-#define PR_BITS_PER_FLOAT_LOG2 5
-#define PR_BITS_PER_DOUBLE_LOG2 6
-#define PR_BITS_PER_WORD_LOG2 5
-
-#define PR_ALIGN_OF_SHORT 2
-#define PR_ALIGN_OF_INT 4
-#define PR_ALIGN_OF_LONG 4
-#define PR_ALIGN_OF_INT64 8
-#define PR_ALIGN_OF_FLOAT 4
-#define PR_ALIGN_OF_DOUBLE 8
-#define PR_ALIGN_OF_POINTER 4
-
-#define PR_BYTES_PER_WORD_LOG2 2
-#define PR_BYTES_PER_DWORD_LOG2 3
-
-#undef HAVE_LONG_LONG
-#undef HAVE_ALIGNED_DOUBLES
-#undef HAVE_ALIGNED_LONGLONGS
-
-#ifndef NO_NSPR_10_SUPPORT
-
-#define BYTES_PER_BYTE PR_BYTES_PER_BYTE
-#define BYTES_PER_SHORT PR_BYTES_PER_SHORT
-#define BYTES_PER_INT PR_BYTES_PER_INT
-#define BYTES_PER_INT64 PR_BYTES_PER_INT64
-#define BYTES_PER_LONG PR_BYTES_PER_LONG
-#define BYTES_PER_FLOAT PR_BYTES_PER_FLOAT
-#define BYTES_PER_DOUBLE PR_BYTES_PER_DOUBLE
-#define BYTES_PER_WORD PR_BYTES_PER_WORD
-#define BYTES_PER_DWORD PR_BYTES_PER_DWORD
-
-#define BITS_PER_BYTE PR_BITS_PER_BYTE
-#define BITS_PER_SHORT PR_BITS_PER_SHORT
-#define BITS_PER_INT PR_BITS_PER_INT
-#define BITS_PER_INT64 PR_BITS_PER_INT64
-#define BITS_PER_LONG PR_BITS_PER_LONG
-#define BITS_PER_FLOAT PR_BITS_PER_FLOAT
-#define BITS_PER_DOUBLE PR_BITS_PER_DOUBLE
-#define BITS_PER_WORD PR_BITS_PER_WORD
-
-#define BITS_PER_BYTE_LOG2 PR_BITS_PER_BYTE_LOG2
-#define BITS_PER_SHORT_LOG2 PR_BITS_PER_SHORT_LOG2
-#define BITS_PER_INT_LOG2 PR_BITS_PER_INT_LOG2
-#define BITS_PER_INT64_LOG2 PR_BITS_PER_INT64_LOG2
-#define BITS_PER_LONG_LOG2 PR_BITS_PER_LONG_LOG2
-#define BITS_PER_FLOAT_LOG2 PR_BITS_PER_FLOAT_LOG2
-#define BITS_PER_DOUBLE_LOG2 PR_BITS_PER_DOUBLE_LOG2
-#define BITS_PER_WORD_LOG2 PR_BITS_PER_WORD_LOG2
-
-#define ALIGN_OF_SHORT PR_ALIGN_OF_SHORT
-#define ALIGN_OF_INT PR_ALIGN_OF_INT
-#define ALIGN_OF_LONG PR_ALIGN_OF_LONG
-#define ALIGN_OF_INT64 PR_ALIGN_OF_INT64
-#define ALIGN_OF_FLOAT PR_ALIGN_OF_FLOAT
-#define ALIGN_OF_DOUBLE PR_ALIGN_OF_DOUBLE
-#define ALIGN_OF_POINTER PR_ALIGN_OF_POINTER
-#define ALIGN_OF_WORD PR_ALIGN_OF_WORD
-
-#define BYTES_PER_WORD_LOG2 PR_BYTES_PER_WORD_LOG2
-#define BYTES_PER_DWORD_LOG2 PR_BYTES_PER_DWORD_LOG2
-#define WORDS_PER_DWORD_LOG2 PR_WORDS_PER_DWORD_LOG2
-
-#endif /* NO_NSPR_10_SUPPORT */
-
-#endif /* nspr_cpucfg___ */
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef nspr_sony_defs_h___
-#define nspr_sony_defs_h___
-
-#define PR_LINKER_ARCH "sony"
-#define _PR_SI_SYSNAME "SONY"
-#define _PR_SI_ARCHITECTURE "mips"
-#define PR_DLL_SUFFIX ".so"
-
-#define _PR_VMBASE 0x30000000
-#define _PR_STACK_VMBASE 0x50000000
-#define _MD_DEFAULT_STACK_SIZE 65536L
-#define _MD_MMAP_FLAGS MAP_PRIVATE
-
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
-
-#if defined(_PR_LOCAL_THREADS_ONLY)
-#include <ucontext.h>
-#include <sys/regset.h>
-
-#define PR_NUM_GCREGS NGREG
-#define PR_CONTEXT_TYPE ucontext_t
-
-#define CONTEXT(_thread) (&(_thread)->md.context)
-
-#define _MD_GET_SP(_t) (_t)->md.context.uc_mcontext.gregs[CXT_SP]
-
-/*
-** Initialize the thread context preparing it to execute _main()
-*/
-#define _MD_INIT_CONTEXT(_thread, _sp, _main, status) \
-{ \
- *status = PR_TRUE; \
- getcontext(CONTEXT(_thread)); \
- CONTEXT(_thread)->uc_stack.ss_sp = (char*) (_thread)->stack->stackBottom; \
- CONTEXT(_thread)->uc_stack.ss_size = (_thread)->stack->stackSize; \
- _MD_GET_SP(_thread) = (greg_t) (_sp) - 64; \
- makecontext(CONTEXT(_thread), _main, 0); \
-}
-
-#define _MD_SWITCH_CONTEXT(_thread) \
- if (!getcontext(CONTEXT(_thread))) { \
- (_thread)->md.errcode = errno; \
- _PR_Schedule(); \
- }
-
-/*
-** Restore a thread context, saved by _MD_SWITCH_CONTEXT
-*/
-#define _MD_RESTORE_CONTEXT(_thread) \
-{ \
- ucontext_t *uc = CONTEXT(_thread); \
- uc->uc_mcontext.gregs[CXT_V0] = 1; \
- uc->uc_mcontext.gregs[CXT_A3] = 0; \
- _MD_SET_CURRENT_THREAD(_thread); \
- errno = (_thread)->md.errcode; \
- setcontext(uc); \
-}
-
-/* Machine-dependent (MD) data structures */
-
-struct _MDThread {
- PR_CONTEXT_TYPE context;
- int id;
- int errcode;
-};
-
-struct _MDThreadStack {
- PRInt8 notused;
-};
-
-struct _MDLock {
- PRInt8 notused;
-};
-
-struct _MDSemaphore {
- PRInt8 notused;
-};
-
-struct _MDCVar {
- PRInt8 notused;
-};
-
-struct _MDSegment {
- PRInt8 notused;
-};
-
-/*
- * md-specific cpu structure field
- */
-#define _PR_MD_MAX_OSFD FD_SETSIZE
-
-struct _MDCPU_Unix {
- PRCList ioQ;
- PRUint32 ioq_timeout;
- PRInt32 ioq_max_osfd;
- PRInt32 ioq_osfd_cnt;
-#ifndef _PR_USE_POLL
- fd_set fd_read_set, fd_write_set, fd_exception_set;
- PRInt16 fd_read_cnt[_PR_MD_MAX_OSFD],fd_write_cnt[_PR_MD_MAX_OSFD],
- fd_exception_cnt[_PR_MD_MAX_OSFD];
-#else
- struct pollfd *ioq_pollfds;
- int ioq_pollfds_size;
-#endif /* _PR_USE_POLL */
-};
-
-#define _PR_IOQ(_cpu) ((_cpu)->md.md_unix.ioQ)
-#define _PR_ADD_TO_IOQ(_pq, _cpu) PR_APPEND_LINK(&_pq.links, &_PR_IOQ(_cpu))
-#define _PR_FD_READ_SET(_cpu) ((_cpu)->md.md_unix.fd_read_set)
-#define _PR_FD_READ_CNT(_cpu) ((_cpu)->md.md_unix.fd_read_cnt)
-#define _PR_FD_WRITE_SET(_cpu) ((_cpu)->md.md_unix.fd_write_set)
-#define _PR_FD_WRITE_CNT(_cpu) ((_cpu)->md.md_unix.fd_write_cnt)
-#define _PR_FD_EXCEPTION_SET(_cpu) ((_cpu)->md.md_unix.fd_exception_set)
-#define _PR_FD_EXCEPTION_CNT(_cpu) ((_cpu)->md.md_unix.fd_exception_cnt)
-#define _PR_IOQ_TIMEOUT(_cpu) ((_cpu)->md.md_unix.ioq_timeout)
-#define _PR_IOQ_MAX_OSFD(_cpu) ((_cpu)->md.md_unix.ioq_max_osfd)
-#define _PR_IOQ_OSFD_CNT(_cpu) ((_cpu)->md.md_unix.ioq_osfd_cnt)
-#define _PR_IOQ_POLLFDS(_cpu) ((_cpu)->md.md_unix.ioq_pollfds)
-#define _PR_IOQ_POLLFDS_SIZE(_cpu) ((_cpu)->md.md_unix.ioq_pollfds_size)
-
-#define _PR_IOQ_MIN_POLLFDS_SIZE(_cpu) 32
-
-struct _MDCPU {
- struct _MDCPU_Unix md_unix;
-};
-
-#define _MD_INIT_LOCKS()
-#define _MD_NEW_LOCK(lock) PR_SUCCESS
-#define _MD_FREE_LOCK(lock)
-#define _MD_LOCK(lock)
-#define _MD_UNLOCK(lock)
-#define _MD_INIT_IO()
-#define _MD_IOQ_LOCK()
-#define _MD_IOQ_UNLOCK()
-
-#define _MD_EARLY_INIT _MD_EarlyInit
-#define _MD_FINAL_INIT _PR_UnixInit
-#define _MD_INIT_RUNNING_CPU(cpu) _MD_unix_init_running_cpu(cpu)
-#define _MD_INIT_THREAD _MD_InitializeThread
-#define _MD_EXIT_THREAD(thread)
-#define _MD_SUSPEND_THREAD(thread)
-#define _MD_RESUME_THREAD(thread)
-#define _MD_CLEAN_THREAD(_thread)
-
-/* The following defines unwrapped versions of select() and poll(). */
-extern int _select (int, fd_set *, fd_set *, fd_set *, struct timeval *);
-#define _MD_SELECT _select
-
-#include <sys/poll.h>
-extern int _poll(struct pollfd *fds, unsigned long nfds, int timeout);
-#define _MD_POLL _poll
-
-#endif /* _PR_LOCAL_THREADS_ONLY */
-
-#undef HAVE_STACK_GROWING_UP
-#define HAVE_DLL
-#define USE_DLFCN
-#define NEED_TIME_R
-#define NEED_STRFTIME_LOCK
-
-/*
-** Missing function prototypes
-*/
-extern int gethostname(char *name, int namelen);
-
-#endif /* nspr_sony_defs_h___ */
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef nspr_cpucfg___
-#define nspr_cpucfg___
-
-#ifndef XP_UNIX
-#define XP_UNIX
-#endif
-
-#ifndef SUNOS4
-#define SUNOS4
-#endif
-
-#undef IS_LITTLE_ENDIAN
-#define IS_BIG_ENDIAN 1
-#undef HAVE_LONG_LONG
-#define HAVE_ALIGNED_DOUBLES
-#undef HAVE_ALIGNED_LONGLONGS
-
-#define PR_BYTES_PER_BYTE 1
-#define PR_BYTES_PER_SHORT 2
-#define PR_BYTES_PER_INT 4
-#define PR_BYTES_PER_INT64 8
-#define PR_BYTES_PER_LONG 4
-#define PR_BYTES_PER_FLOAT 4
-#define PR_BYTES_PER_DOUBLE 8
-#define PR_BYTES_PER_WORD 4
-#define PR_BYTES_PER_DWORD 8
-#define PR_BYTES_PER_WORD_LOG2 2
-#define PR_BYTES_PER_DWORD_LOG2 3
-
-#define PR_BITS_PER_BYTE 8
-#define PR_BITS_PER_SHORT 16
-#define PR_BITS_PER_INT 32
-#define PR_BITS_PER_INT64 64
-#define PR_BITS_PER_LONG 32
-#define PR_BITS_PER_FLOAT 32
-#define PR_BITS_PER_DOUBLE 64
-#define PR_BITS_PER_WORD 32
-
-#define PR_BITS_PER_BYTE_LOG2 3
-#define PR_BITS_PER_SHORT_LOG2 4
-#define PR_BITS_PER_INT_LOG2 5
-#define PR_BITS_PER_INT64_LOG2 6
-#define PR_BITS_PER_LONG_LOG2 5
-#define PR_BITS_PER_FLOAT_LOG2 5
-#define PR_BITS_PER_DOUBLE_LOG2 6
-#define PR_BITS_PER_WORD_LOG2 5
-
-#define PR_ALIGN_OF_SHORT 2
-#define PR_ALIGN_OF_INT 4
-#define PR_ALIGN_OF_LONG 4
-#define PR_ALIGN_OF_INT64 8
-#define PR_ALIGN_OF_FLOAT 4
-#define PR_ALIGN_OF_DOUBLE 8
-#define PR_ALIGN_OF_POINTER 4
-
-#ifndef NO_NSPR_10_SUPPORT
-
-#define BYTES_PER_BYTE PR_BYTES_PER_BYTE
-#define BYTES_PER_SHORT PR_BYTES_PER_SHORT
-#define BYTES_PER_INT PR_BYTES_PER_INT
-#define BYTES_PER_INT64 PR_BYTES_PER_INT64
-#define BYTES_PER_LONG PR_BYTES_PER_LONG
-#define BYTES_PER_FLOAT PR_BYTES_PER_FLOAT
-#define BYTES_PER_DOUBLE PR_BYTES_PER_DOUBLE
-#define BYTES_PER_WORD PR_BYTES_PER_WORD
-#define BYTES_PER_DWORD PR_BYTES_PER_DWORD
-
-#define BITS_PER_BYTE PR_BITS_PER_BYTE
-#define BITS_PER_SHORT PR_BITS_PER_SHORT
-#define BITS_PER_INT PR_BITS_PER_INT
-#define BITS_PER_INT64 PR_BITS_PER_INT64
-#define BITS_PER_LONG PR_BITS_PER_LONG
-#define BITS_PER_FLOAT PR_BITS_PER_FLOAT
-#define BITS_PER_DOUBLE PR_BITS_PER_DOUBLE
-#define BITS_PER_WORD PR_BITS_PER_WORD
-
-#define BITS_PER_BYTE_LOG2 PR_BITS_PER_BYTE_LOG2
-#define BITS_PER_SHORT_LOG2 PR_BITS_PER_SHORT_LOG2
-#define BITS_PER_INT_LOG2 PR_BITS_PER_INT_LOG2
-#define BITS_PER_INT64_LOG2 PR_BITS_PER_INT64_LOG2
-#define BITS_PER_LONG_LOG2 PR_BITS_PER_LONG_LOG2
-#define BITS_PER_FLOAT_LOG2 PR_BITS_PER_FLOAT_LOG2
-#define BITS_PER_DOUBLE_LOG2 PR_BITS_PER_DOUBLE_LOG2
-#define BITS_PER_WORD_LOG2 PR_BITS_PER_WORD_LOG2
-
-#define ALIGN_OF_SHORT PR_ALIGN_OF_SHORT
-#define ALIGN_OF_INT PR_ALIGN_OF_INT
-#define ALIGN_OF_LONG PR_ALIGN_OF_LONG
-#define ALIGN_OF_INT64 PR_ALIGN_OF_INT64
-#define ALIGN_OF_FLOAT PR_ALIGN_OF_FLOAT
-#define ALIGN_OF_DOUBLE PR_ALIGN_OF_DOUBLE
-#define ALIGN_OF_POINTER PR_ALIGN_OF_POINTER
-#define ALIGN_OF_WORD PR_ALIGN_OF_WORD
-
-#define BYTES_PER_WORD_LOG2 PR_BYTES_PER_WORD_LOG2
-#define BYTES_PER_DWORD_LOG2 PR_BYTES_PER_DWORD_LOG2
-#define WORDS_PER_DWORD_LOG2 PR_WORDS_PER_DWORD_LOG2
-
-#endif /* NO_NSPR_10_SUPPORT */
-
-#endif /* ifndef nspr_cpucfg___ */
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef nspr_sunos_defs_h___
-#define nspr_sunos_defs_h___
-
-#include "md/sunos4.h"
-
-/* On SunOS 4, memset is declared in memory.h */
-#include <memory.h>
-#include <errno.h>
-#include <sys/syscall.h>
-
-/*
- * Internal configuration macros
- */
-
-#define PR_LINKER_ARCH "sunos"
-#define _PR_SI_SYSNAME "SUNOS"
-#define _PR_SI_ARCHITECTURE "sparc"
-#define PR_DLL_SUFFIX ".so.1.0"
-
-/*
-** For sunos type machines, don't specify an address because the
-** NetBSD/SPARC O.S. does the wrong thing.
-*/
-#define _PR_VMBASE 0x30000000
-#define _PR_STACK_VMBASE 0x50000000
-#define _MD_DEFAULT_STACK_SIZE 65536L
-#define _MD_MMAP_FLAGS MAP_PRIVATE
-
-#undef HAVE_STACK_GROWING_UP
-#undef HAVE_WEAK_IO_SYMBOLS
-#undef HAVE_WEAK_MALLOC_SYMBOLS
-#define HAVE_DLL
-#define USE_DLFCN
-#define NEED_STRFTIME_LOCK
-#define NEED_TIME_R
-#define HAVE_BSD_FLOCK
-#define _PR_NO_LARGE_FILES
-#define _PR_STAT_HAS_ONLY_ST_ATIME
-
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
-
-#define USE_SETJMP
-
-#include <setjmp.h>
-
-#define _MD_GET_SP(_t) (_t)->md.context[2]
-
-#define PR_NUM_GCREGS _JBLEN
-
-#define CONTEXT(_th) ((_th)->md.context)
-
-/*
-** Initialize the thread context preparing it to execute _main.
-*/
-#define _MD_INIT_CONTEXT(_thread, _sp, _main, status) \
- PR_BEGIN_MACRO \
- int *context = (_thread)->md.context; \
- *status = PR_TRUE; \
- asm("ta 3"); \
- (void) setjmp(context); \
- (_thread)->md.context[2] = (int) ((_sp) - 64); \
- (_thread)->md.context[2] &= ~7; \
- (_thread)->md.context[3] = (int) _main; \
- (_thread)->md.context[4] = (int) _main + 4; \
- PR_END_MACRO
-
-#define _MD_SWITCH_CONTEXT(_thread) \
- asm("ta 3"); \
- if (!setjmp(CONTEXT(_thread))) { \
- (_thread)->md.errcode = errno; \
- _PR_Schedule(); \
- }
-
-/*
-** Restore a thread context, saved by _MD_SWITCH_CONTEXT
-*/
-#define _MD_RESTORE_CONTEXT(_thread) \
-{ \
- errno = (_thread)->md.errcode; \
- _MD_SET_CURRENT_THREAD(_thread); \
- longjmp(CONTEXT(_thread), 1); \
-}
-
-#pragma unknown_control_flow(longjmp)
-#pragma unknown_control_flow(setjmp)
-#pragma unknown_control_flow(_PR_Schedule)
-
-/*
-** Missing function prototypes
-*/
-
-extern int socket (int domain, int type, int protocol);
-extern int getsockname (int s, struct sockaddr *name, int *namelen);
-extern int getpeername (int s, struct sockaddr *name, int *namelen);
-extern int getsockopt (int s, int level, int optname, char* optval, int* optlen);
-extern int setsockopt (int s, int level, int optname, const char* optval, int optlen);
-extern int accept (int s, struct sockaddr *addr, int *addrlen);
-extern int listen (int s, int backlog);
-extern int brk(void *);
-extern void *sbrk(int);
-
-
-/* Machine-dependent (MD) data structures. SunOS 4 has no native threads. */
-
-struct _MDThread {
- jmp_buf context;
- int id;
- int errcode;
-};
-
-struct _MDThreadStack {
- PRInt8 notused;
-};
-
-struct _MDLock {
- PRInt8 notused;
-};
-
-struct _MDSemaphore {
- PRInt8 notused;
-};
-
-struct _MDCVar {
- PRInt8 notused;
-};
-
-struct _MDSegment {
- PRInt8 notused;
-};
-
-/*
- * md-specific cpu structure field
- */
-#define _PR_MD_MAX_OSFD FD_SETSIZE
-
-struct _MDCPU_Unix {
- PRCList ioQ;
- PRUint32 ioq_timeout;
- PRInt32 ioq_max_osfd;
- PRInt32 ioq_osfd_cnt;
-#ifndef _PR_USE_POLL
- fd_set fd_read_set, fd_write_set, fd_exception_set;
- PRInt16 fd_read_cnt[_PR_MD_MAX_OSFD],fd_write_cnt[_PR_MD_MAX_OSFD],
- fd_exception_cnt[_PR_MD_MAX_OSFD];
-#else
- struct pollfd *ioq_pollfds;
- int ioq_pollfds_size;
-#endif /* _PR_USE_POLL */
-};
-
-#define _PR_IOQ(_cpu) ((_cpu)->md.md_unix.ioQ)
-#define _PR_ADD_TO_IOQ(_pq, _cpu) PR_APPEND_LINK(&_pq.links, &_PR_IOQ(_cpu))
-#define _PR_FD_READ_SET(_cpu) ((_cpu)->md.md_unix.fd_read_set)
-#define _PR_FD_READ_CNT(_cpu) ((_cpu)->md.md_unix.fd_read_cnt)
-#define _PR_FD_WRITE_SET(_cpu) ((_cpu)->md.md_unix.fd_write_set)
-#define _PR_FD_WRITE_CNT(_cpu) ((_cpu)->md.md_unix.fd_write_cnt)
-#define _PR_FD_EXCEPTION_SET(_cpu) ((_cpu)->md.md_unix.fd_exception_set)
-#define _PR_FD_EXCEPTION_CNT(_cpu) ((_cpu)->md.md_unix.fd_exception_cnt)
-#define _PR_IOQ_TIMEOUT(_cpu) ((_cpu)->md.md_unix.ioq_timeout)
-#define _PR_IOQ_MAX_OSFD(_cpu) ((_cpu)->md.md_unix.ioq_max_osfd)
-#define _PR_IOQ_OSFD_CNT(_cpu) ((_cpu)->md.md_unix.ioq_osfd_cnt)
-#define _PR_IOQ_POLLFDS(_cpu) ((_cpu)->md.md_unix.ioq_pollfds)
-#define _PR_IOQ_POLLFDS_SIZE(_cpu) ((_cpu)->md.md_unix.ioq_pollfds_size)
-
-#define _PR_IOQ_MIN_POLLFDS_SIZE(_cpu) 32
-
-struct _MDCPU {
- struct _MDCPU_Unix md_unix;
-};
-
-#define _MD_INIT_LOCKS()
-#define _MD_NEW_LOCK(lock) PR_SUCCESS
-#define _MD_FREE_LOCK(lock)
-#define _MD_LOCK(lock)
-#define _MD_UNLOCK(lock)
-#define _MD_INIT_IO()
-#define _MD_IOQ_LOCK()
-#define _MD_IOQ_UNLOCK()
-
-/* These are copied from _solaris.h */
-
-#define _MD_EARLY_INIT _MD_EarlyInit
-#define _MD_FINAL_INIT _PR_UnixInit
-#define _MD_INIT_RUNNING_CPU(cpu) _MD_unix_init_running_cpu(cpu)
-#define _MD_INIT_THREAD _MD_InitializeThread
-#define _MD_EXIT_THREAD(thread)
-#define _MD_SUSPEND_THREAD(thread)
-#define _MD_RESUME_THREAD(thread)
-#define _MD_CLEAN_THREAD(_thread)
-
-/*
- * We wrapped the select() call. _MD_SELECT refers to the built-in,
- * unwrapped version.
- */
-#define _MD_SELECT(nfds,r,w,e,tv) syscall(SYS_select,nfds,r,w,e,tv)
-#define _MD_POLL(fds,nfds,timeout) syscall(SYS_poll,fds,nfds,timeout)
-
-#endif /* nspr_sparc_defs_h___ */
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef pr_sunos4_h___
-#define pr_sunos4_h___
-
-#ifndef SVR4
-
-/*
-** Hodge podge of random missing prototypes for the Sunos4 system
-*/
-#include <stdio.h>
-#include <stdarg.h>
-#include <time.h>
-#include <limits.h>
-#include <sys/types.h>
-
-#define PATH_MAX _POSIX_PATH_MAX
-
-struct timeval;
-struct timezone;
-struct itimerval;
-struct sockaddr;
-struct stat;
-struct tm;
-
-/* ctype.h */
-extern int tolower(int);
-extern int toupper(int);
-
-/* errno.h */
-extern char *sys_errlist[];
-extern int sys_nerr;
-
-#define strerror(e) sys_errlist[((unsigned)(e) < sys_nerr) ? e : 0]
-
-extern void perror(const char *);
-
-/* getopt */
-extern char *optarg;
-extern int optind;
-extern int getopt(int argc, char **argv, char *spec);
-
-/* math.h */
-extern int srandom(long val);
-extern long random(void);
-
-/* memory.h */
-#define memmove(to,from,len) bcopy((char*)(from),(char*)(to),len)
-
-extern void bcopy(const char *, char *, int);
-
-/* signal.h */
-/*
-** SunOS4 sigaction hides interrupts by default, so we can safely define
-** SA_RESTART to 0.
-*/
-#define SA_RESTART 0
-
-/* stdio.h */
-extern int printf(const char *, ...);
-extern int fprintf(FILE *, const char *, ...);
-extern int vprintf(const char *, va_list);
-extern int vfprintf(FILE *, const char *, va_list);
-extern char *vsprintf(char *, const char *, va_list);
-extern int scanf(const char *, ...);
-extern int sscanf(const char *, const char *, ...);
-extern int fscanf(FILE *, const char *, ...);
-extern int fgetc(FILE *);
-extern int fputc(int, FILE *);
-extern int fputs(const char *, FILE *);
-extern int puts(const char *);
-extern int fread(void *, size_t, size_t, FILE *);
-extern int fwrite(const char *, int, int, FILE *);
-extern int fseek(FILE *, long, int);
-extern long ftell(FILE *);
-extern int rewind(FILE *);
-extern int fflush(FILE *);
-extern int _flsbuf(unsigned char, FILE *);
-extern int fclose(FILE *);
-extern int remove(const char *);
-extern int setvbuf(FILE *, char *, int, size_t);
-extern int system(const char *);
-extern FILE *popen(const char *, const char *);
-extern int pclose(FILE *);
-
-/* stdlib.h */
-#define strtoul strtol
-
-extern int isatty(int fildes);
-extern long strtol(const char *, char **, int);
-extern int putenv(const char *);
-extern void srand48(long);
-extern long lrand48(void);
-extern double drand48(void);
-
-/* string.h */
-extern int strcasecmp(const char *, const char *);
-extern int strncasecmp(const char *, const char *, size_t);
-extern int strcoll(const char *, const char *);
-
-/* time.h */
-extern time_t mktime(struct tm *);
-extern size_t strftime(char *, size_t, const char *, const struct tm *);
-extern int gettimeofday(struct timeval *, struct timezone *);
-extern int setitimer(int, struct itimerval *, struct itimerval *);
-extern time_t time(time_t *);
-extern time_t timegm(struct tm *);
-extern struct tm *localtime(const time_t *);
-extern struct tm *gmtime(const time_t *);
-
-/* unistd.h */
-extern int rename(const char *, const char *);
-extern int ioctl(int, int, int *arg);
-extern int connect(int, struct sockaddr *, int);
-extern int readlink(const char *, char *, int);
-extern int symlink(const char *, const char *);
-extern int ftruncate(int, off_t);
-extern int fchmod(int, mode_t);
-extern int fchown(int, uid_t, gid_t);
-extern int lstat(const char *, struct stat *);
-extern int fstat(int, struct stat *);
-extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
-extern int gethostname(char *, int);
-extern char *getwd(char *);
-extern int getpagesize(void);
-
-#endif /* SVR4 */
-
-#endif /* pr_sunos4_h___ */
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 01:58:29 2001//TNSPR_4_8_RTM
-/Makefile.in/1.11/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/pralarm.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/probslet.h/3.13/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/protypes.h/3.25/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prsem.h/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/include/obsolete
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 02:03:58 2001//TNSPR_4_8_RTM
-/Makefile.in/1.11/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/pprio.h/3.19/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/pprmwait.h/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/pprthred.h/3.11/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prpriv.h/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/primpl.h/3.95/Tue Jul 24 08:48:28 2012//TNSPR_4_9_2_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/include/private
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-D/bthreads////
-D/cplus////
-D/io////
-D/linking////
-D/malloc////
-D/md////
-D/memory////
-D/misc////
-D/pthreads////
-D/threads////
-D/cthreads////
-/.cvsignore/1.3/Mon May 14 22:10:58 2001//TNSPR_4_8_RTM
-/Makefile.in/1.62/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/nspr.rc/3.13/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/os2extra.def/1.3/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prvrsion.c/3.17/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/nspr.def/1.20/Tue Jul 24 08:48:28 2012//TNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/pr/src
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 06:00:27 2001//TNSPR_4_8_RTM
-/Makefile.in/1.11/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/bsrcs.mk/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/btcvar.c/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/btlocks.c/3.9/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/btmisc.c/3.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/btmon.c/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/btsem.c/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/btthread.c/3.10/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/objs.mk/3.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/src/bthreads
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-D/tests////
-/.cvsignore/1.2/Sat May 12 06:01:46 2001//TNSPR_4_8_RTM
-/Makefile.in/1.11/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcascii.h/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcbase.cpp/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcbase.h/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rccv.cpp/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rccv.h/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcfileio.cpp/1.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcfileio.h/1.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcinrval.cpp/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcinrval.h/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcio.cpp/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcio.h/1.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rclock.cpp/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rclock.h/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcmon.h/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcnetdb.cpp/1.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcnetdb.h/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcnetio.cpp/1.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcnetio.h/1.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcthread.cpp/1.7/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rcthread.h/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rctime.cpp/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/rctime.h/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
+++ /dev/null
-mozilla/nsprpub/pr/src/cplus
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 06:06:48 2001//TNSPR_4_8_RTM
-/Makefile.in/1.15/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/fileio.cpp/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/interval.cpp/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/ranfile.cpp/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/switch.cpp/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/thread.cpp/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/time.cpp/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/tpd.cpp/1.6/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/src/cplus/tests
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/pr/src/cthreads
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 04:14:49 2001//TNSPR_4_8_RTM
-/Makefile.in/1.15/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prdir.c/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prfdcach.c/3.16/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prfile.c/3.48/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prio.c/3.24/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/priometh.c/3.20/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/pripv6.c/3.14/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prlayer.c/3.21/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prlog.c/3.55/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prmapopt.c/3.22/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prmmap.c/3.8/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prmwait.c/3.21/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prpolevt.c/3.18/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prprf.c/3.23/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prscanf.c/3.12/Fri Jun 1 14:48:44 2012//TNSPR_4_9_1_RTM
-/prsocket.c/3.65/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prstdio.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/src/io
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 04:20:22 2001//TNSPR_4_8_RTM
-/Makefile.in/1.20/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prlink.c/3.112/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/src/linking
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 04:22:54 2001//TNSPR_4_8_RTM
-/Makefile.in/1.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prmalloc.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prmem.c/3.21/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/src/malloc
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-D/beos////
-D/mac////
-D/os2////
-D/unix////
-D/windows////
-/.cvsignore/1.2/Sat May 12 04:24:53 2001//TNSPR_4_8_RTM
-/Makefile.in/1.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prosdep.c/3.15/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
+++ /dev/null
-mozilla/nsprpub/pr/src/md
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 06:08:09 2001//TNSPR_4_8_RTM
-/Makefile.in/1.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/bcpu.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/beos.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/beos_errors.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/bfile.c/3.17/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/bmemory.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/bmisc.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/bmmap.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/bnet.c/3.17/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/bproc.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/brng.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/bseg.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/bsrcs.mk/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/btime.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/objs.mk/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/src/md/beos
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/pr/src/md/mac
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 06:11:46 2001//TNSPR_4_8_RTM
-/Makefile.in/1.18/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/objs.mk/1.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os2_errors.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os2cv.c/3.17/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os2emx.s/1.5/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os2gc.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os2inrval.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os2io.c/3.20/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os2misc.c/3.28/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os2poll.c/3.16/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os2rng.c/1.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os2sem.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os2sock.c/3.20/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os2thred.c/3.22/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os2vaclegacy.s/3.3/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/src/md/os2
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 04:29:27 2001//TNSPR_4_8_RTM
-/Makefile.in/1.28/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/aix.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/aixwrap.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/bsdi.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/darwin.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/dgux.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/freebsd.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/hpux.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/irix.c/3.15/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/linux.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ncr.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/nec.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/netbsd.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/nextstep.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/nto.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/objs.mk/3.35/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/openbsd.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_AIX.s/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_BSD_386_2.s/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_Darwin.s/1.3/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_Darwin_ppc.s/3.4/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_Darwin_x86.s/1.4/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_Darwin_x86_64.s/1.3/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_HPUX.s/1.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_HPUX_ia64.s/1.4/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_Irix.s/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_Linux_ia64.s/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_Linux_ppc.s/1.3/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_Linux_x86.s/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_Linux_x86_64.s/1.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_ReliantUNIX.s/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_SunOS_sparcv9.s/3.3/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_SunOS_ultrasparc.s/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_SunOS_x86.s/3.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/os_SunOS_x86_64.s/1.5/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/osf1.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/pthreads_user.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/qnx.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/reliantunix.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/riscos.c/3.2/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/scoos.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/solaris.c/3.18/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/sony.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/sunos4.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/symbian.c/1.2/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/unix.c/3.60/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/unix_errors.c/3.30/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/unixware.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/uxpoll.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/uxproces.c/3.27/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/uxrng.c/1.26/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/uxshm.c/3.14/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/uxwrap.c/3.16/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/src/md/unix
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-/*
- * NCR 3.0 - cloned from UnixWare by ruslan
- */
-#include "primpl.h"
-
-#include <setjmp.h>
-
-void _MD_EarlyInit(void)
-{
-}
-
-PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np)
-{
- if (isCurrent) {
- (void) setjmp(CONTEXT(t));
- }
- *np = sizeof(CONTEXT(t)) / sizeof(PRWord);
- return (PRWord *) CONTEXT(t);
-}
-
-#ifdef ALARMS_BREAK_TCP /* I don't think they do */
-
-PRInt32 _MD_connect(PRInt32 osfd, const PRNetAddr *addr, PRInt32 addrlen,
- PRIntervalTime timeout)
-{
- PRInt32 rv;
-
- _MD_BLOCK_CLOCK_INTERRUPTS();
- rv = _connect(osfd,addr,addrlen);
- _MD_UNBLOCK_CLOCK_INTERRUPTS();
-}
-
-PRInt32 _MD_accept(PRInt32 osfd, PRNetAddr *addr, PRInt32 addrlen,
- PRIntervalTime timeout)
-{
- PRInt32 rv;
-
- _MD_BLOCK_CLOCK_INTERRUPTS();
- rv = _accept(osfd,addr,addrlen);
- _MD_UNBLOCK_CLOCK_INTERRUPTS();
- return(rv);
-}
-#endif
-
-/*
- * These are also implemented in pratom.c using NSPR locks. Any reason
- * this might be better or worse? If you like this better, define
- * _PR_HAVE_ATOMIC_OPS in include/md/unixware.h
- */
-#ifdef _PR_HAVE_ATOMIC_OPS
-/* Atomic operations */
-#include <stdio.h>
-static FILE *_uw_semf;
-
-void
-_MD_INIT_ATOMIC(void)
-{
- /* Sigh. Sure wish SYSV semaphores weren't such a pain to use */
- if ((_uw_semf = tmpfile()) == NULL)
- PR_ASSERT(0);
-
- return;
-}
-
-void
-_MD_ATOMIC_INCREMENT(PRInt32 *val)
-{
- flockfile(_uw_semf);
- (*val)++;
- unflockfile(_uw_semf);
-}
-
-void
-_MD_ATOMIC_ADD(PRInt32 *ptr, PRInt32 val)
-{
- flockfile(_uw_semf);
- (*ptr) += val;
- unflockfile(_uw_semf);
-}
-
-
-void
-_MD_ATOMIC_DECREMENT(PRInt32 *val)
-{
- flockfile(_uw_semf);
- (*val)--;
- unflockfile(_uw_semf);
-}
-
-void
-_MD_ATOMIC_SET(PRInt32 *val, PRInt32 newval)
-{
- flockfile(_uw_semf);
- *val = newval;
- unflockfile(_uw_semf);
-}
-#endif
-
-void
-_MD_SET_PRIORITY(_MDThread *thread, PRUintn newPri)
-{
- return;
-}
-
-PRStatus
-_MD_InitializeThread(PRThread *thread)
-{
- return PR_SUCCESS;
-}
-
-PRStatus
-_MD_WAIT(PRThread *thread, PRIntervalTime ticks)
-{
- PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE));
- _PR_MD_SWITCH_CONTEXT(thread);
- return PR_SUCCESS;
-}
-
-PRStatus
-_MD_WAKEUP_WAITER(PRThread *thread)
-{
- if (thread) {
- PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE));
- }
- return PR_SUCCESS;
-}
-
-/* These functions should not be called for Unixware */
-void
-_MD_YIELD(void)
-{
- PR_NOT_REACHED("_MD_YIELD should not be called for Unixware.");
-}
-
-PRStatus
-_MD_CREATE_THREAD(
- PRThread *thread,
- void (*start) (void *),
- PRUintn priority,
- PRThreadScope scope,
- PRThreadState state,
- PRUint32 stackSize)
-{
- PR_NOT_REACHED("_MD_CREATE_THREAD should not be called for Unixware.");
- return PR_FAILURE;
-}
-
-/*
- This is temp. replacement for localtime_r. Normally PR_ExplodeTime should
- be used as to my understanding
-*/
-
-/*
-** $$$$$ THEN WHY ARE WE DOING THIS? - AOF $$$$$
-*/
-
-#define NEED_LOCALTIME_R
-#define NEED_GMTIME_R
-#define NEED_ASCTIME_R
-#define NEED_STRTOK_R
-#define NEED_CTIME_R
-
-#if defined (NEED_LOCALTIME_R) || defined (NEED_CTIME_R) || defined (NEED_ASCTIME_R) || defined (NEED_GMTIME_R) || defined (NEED_STRTOK_R)
-#include "prlock.h"
-#endif
-
-#if defined (NEED_LOCALTIME_R)
-
-static PRLock *localtime_r_monitor = NULL;
-
-struct tm *localtime_r (const time_t *clock, struct tm *result)
-{
- struct tm *tmPtr;
- int needLock = PR_Initialized(); /* We need to use a lock to protect
- * against NSPR threads only when the
- * NSPR thread system is activated. */
-
- if (needLock) {
- if (localtime_r_monitor == NULL) {
-
- localtime_r_monitor = PR_NewLock();
- }
- PR_Lock(localtime_r_monitor);
- }
-
- /*
- * On Windows, localtime() returns a NULL pointer if 'clock'
- * represents a time before midnight January 1, 1970. In
- * that case, we also return a NULL pointer and the struct tm
- * object pointed to by 'result' is not modified.
- */
-
- tmPtr = localtime(clock);
- if (tmPtr) {
- *result = *tmPtr;
- } else {
- result = NULL;
- }
-
- if (needLock) PR_Unlock(localtime_r_monitor);
-
- return result;
-}
-
-#endif
-
-#if defined (NEED_GMTIME_R)
-
-static PRLock *gmtime_r_monitor = NULL;
-
-struct tm *gmtime_r (const time_t *clock, struct tm *result)
-{
- struct tm *tmPtr;
- int needLock = PR_Initialized(); /* We need to use a lock to protect
- * against NSPR threads only when the
- * NSPR thread system is activated. */
-
- if (needLock) {
- if (gmtime_r_monitor == NULL) {
- gmtime_r_monitor = PR_NewLock();
- }
- PR_Lock(gmtime_r_monitor);
- }
-
- tmPtr = gmtime(clock);
- if (tmPtr) {
- *result = *tmPtr;
- } else {
- result = NULL;
- }
-
- if (needLock) PR_Unlock(gmtime_r_monitor);
-
- return result;
-}
-
-#endif
-
-#if defined (NEED_CTIME_R)
-
-static PRLock *ctime_r_monitor = NULL;
-
-char *ctime_r (const time_t *clock, char *buf, int buflen)
-{
- char *cbuf;
- int needLock = PR_Initialized(); /* We need to use a lock to protect
- * against NSPR threads only when the
- * NSPR thread system is activated. */
-
- if (needLock) {
-
- if (ctime_r_monitor == NULL) {
- ctime_r_monitor = PR_NewLock();
- }
- PR_Lock(ctime_r_monitor);
- }
-
- cbuf = ctime (clock);
- if (cbuf) {
- strncpy (buf, cbuf, buflen - 1);
- buf[buflen - 1] = 0;
- }
-
- if (needLock) PR_Unlock(ctime_r_monitor);
-
- return cbuf;
-}
-
-#endif
-
-#if defined (NEED_ASCTIME_R)
-
-static PRLock *asctime_r_monitor = NULL;
-
-
-char *asctime_r (const struct tm *tm, char *buf, int buflen)
-{
- char *cbuf;
- int needLock = PR_Initialized(); /* We need to use a lock to protect
- * against NSPR threads only when the
- * NSPR thread system is activated. */
-
- if (needLock) {
- if (asctime_r_monitor == NULL) {
- asctime_r_monitor = PR_NewLock();
- }
- PR_Lock(asctime_r_monitor);
- }
-
- cbuf = asctime (tm);
- if (cbuf) {
- strncpy (buf, cbuf, buflen - 1);
- buf[buflen - 1] = 0;
- }
-
- if (needLock) PR_Unlock(asctime_r_monitor);
-
- return cbuf;
-
-}
-#endif
-
-#if defined (NEED_STRTOK_R)
-
-char *
-strtok_r (s, delim, last)
- register char *s;
- register const char *delim;
- register char **last;
-{
- register char *spanp;
- register int c, sc;
- char *tok;
-
-
- if (s == NULL && (s = *last) == NULL)
- return (NULL);
-
- /*
- * Skip (span) leading delimiters (s += strspn(s, delim), sort of).
- */
-cont:
-
- c = *s++;
- for (spanp = (char *)delim; (sc = *spanp++) != 0;) {
- if (c == sc)
- goto cont;
- }
-
- if (c == 0) { /* no non-delimiter characters */
- *last = NULL;
- return (NULL);
- }
- tok = s - 1;
-
- /*
- * Scan token (scan for delimiters: s += strcspn(s, delim), sort of).
- * Note that delim must have one NUL; we stop if we see that, too.
- */
- for (;;) {
- c = *s++;
- spanp = (char *)delim;
- do {
- if ((sc = *spanp++) == c) {
- if (c == 0)
- s = NULL;
-
- else
- s[-1] = 0;
- *last = s;
- return (tok);
- }
- } while (sc != 0);
- }
- /* NOTREACHED */
-}
-
-#endif
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "primpl.h"
-
-void _MD_EarlyInit(void)
-{
-}
-
-PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np)
-{
- if (isCurrent) {
- (void) setjmp(CONTEXT(t));
- }
- *np = sizeof(CONTEXT(t)) / sizeof(PRWord);
- return (PRWord *) CONTEXT(t);
-}
-
-void
-_MD_SET_PRIORITY(_MDThread *thread, PRUintn newPri)
-{
- return;
-}
-
-PRStatus
-_MD_InitializeThread(PRThread *thread)
-{
- return PR_SUCCESS;
-}
-
-PRStatus
-_MD_WAIT(PRThread *thread, PRIntervalTime ticks)
-{
- PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE));
- _PR_MD_SWITCH_CONTEXT(thread);
- return PR_SUCCESS;
-}
-
-PRStatus
-_MD_WAKEUP_WAITER(PRThread *thread)
-{
- if (thread) {
- PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE));
- }
- return PR_SUCCESS;
-}
-
-/* These functions should not be called for NEC */
-void
-_MD_YIELD(void)
-{
- PR_NOT_REACHED("_MD_YIELD should not be called for NEC.");
-}
-
-PRStatus
-_MD_CREATE_THREAD(
- PRThread *thread,
- void (*start) (void *),
- PRThreadPriority priority,
- PRThreadScope scope,
- PRThreadState state,
- PRUint32 stackSize)
-{
- PR_NOT_REACHED("_MD_CREATE_THREAD should not be called for NEC.");
- return PR_FAILURE;
-}
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "primpl.h"
-
-#import <mach/mach.h>
-#import <mach/mach_error.h>
-#import <mach-o/dyld.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/mman.h>
-#include <syscall.h>
-
-
-
-/* These functions are hidden in NEXTSTEP, but beacuse they have syscall()
-** entries I can wrap these into their corresponding missing function.
-*/
-caddr_t
-mmap(caddr_t addr, size_t len, int prot, int flags,
- int fildes, off_t off)
-{
- return (caddr_t) syscall (SYS_mmap, addr, len, prot, flags, fildes, off);
-}
-
-int
-munmap(caddr_t addr, size_t len)
-{
- return syscall (SYS_munmap, addr, len);
-}
-
-int
-mprotect(caddr_t addr, size_t len, int prot)
-{
- return syscall (SYS_mprotect, addr, len, prot);
-}
-
-
-/* If found the brk() symbol in the sahred libraries but no syscall() entry ...
-** I don't know whether it will work ...
-int brk(void *endds)
-{
- return syscall ();
-}
-*/
-
-void *sbrk(int incr)
-{
- return (void *) syscall (SYS_sbrk, incr);
-}
-
-/* These are my mach based versions, untested and probably bad ...
-*/
-caddr_t my_mmap(caddr_t addr, size_t len, int prot, int flags,
- int fildes, off_t off)
-{
- kern_return_t ret_val;
-
- /* First map ...
- */
- ret_val = map_fd ( fildes, /* fd */
- (vm_offset_t) off, /* offset */
- (vm_offset_t*)&addr, /* address */
- TRUE, /* find_space */
- (vm_size_t) len); /* size */
-
- if (ret_val != KERN_SUCCESS) {
- mach_error("Error calling map_fd() in mmap", ret_val );
- return (caddr_t)0;
- }
-
- /* ... then protect (this is probably bad)
- */
- ret_val = vm_protect( task_self(), /* target_task */
- (vm_address_t)addr, /* address */
- (vm_size_t) len, /* size */
- FALSE, /* set_maximum */
- (vm_prot_t) prot); /* new_protection */
- if (ret_val != KERN_SUCCESS) {
- mach_error("vm_protect in mmap()", ret_val );
- return (caddr_t)0;
- }
-
- return addr;
-}
-
-int my_munmap(caddr_t addr, size_t len)
-{
- kern_return_t ret_val;
-
- ret_val = vm_deallocate(task_self(),
- (vm_address_t) addr,
- (vm_size_t) len);
-
- if (ret_val != KERN_SUCCESS) {
- mach_error("vm_deallocate in munmap()", ret_val);
- return -1;
- }
-
- return 0;
-}
-
-int my_mprotect(caddr_t addr, size_t len, int prot)
-{
- vm_prot_t mach_prot;
- kern_return_t ret_val;
-
- switch (prot) {
- case PROT_READ: mach_prot = VM_PROT_READ; break;
- case PROT_WRITE: mach_prot = VM_PROT_WRITE; break;
- case PROT_EXEC: mach_prot = VM_PROT_EXECUTE; break;
- case PROT_NONE: mach_prot = VM_PROT_NONE; break;
- }
-
- ret_val = vm_protect(task_self(), /* target_task */
- (vm_address_t)addr, /* address */
- (vm_size_t) len, /* size */
- FALSE, /* set_maximum */
- (vm_prot_t) prot); /* new_protection */
-
- if (ret_val != KERN_SUCCESS) {
- mach_error("vm_protect in mprotect()", ret_val);
- return -1;
- }
-
- return 0;
-}
-
-char *strdup(const char *s1)
-{
- int len = strlen (s1);
- char *copy = (char*) malloc (len+1);
-
- if (copy == (char*)0)
- return (char*)0;
-
- strcpy (copy, s1);
-
- return copy;
-}
-
-/* Stub rld functions
-*/
-extern NSObjectFileImageReturnCode NSCreateObjectFileImageFromFile(
- const char *pathName,
- NSObjectFileImage *objectFileImage)
-{
- return NSObjectFileImageFailure;
-}
-
-extern void * NSAddressOfSymbol(
- NSSymbol symbol)
-{
- return NULL;
-}
-
-extern NSModule NSLinkModule(
- NSObjectFileImage objectFileImage,
- const char *moduleName, /* can be NULL */
- enum bool bindNow)
-{
- return NULL;
-}
-
-extern NSSymbol NSLookupAndBindSymbol(
- const char *symbolName)
-{
- return NULL;
-}
-
-extern enum bool NSUnLinkModule(
- NSModule module,
- enum bool keepMemoryMapped)
-{
- return 0;
-}
-
-
-
-void _MD_EarlyInit(void)
-{
-}
-
-PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np)
-{
-#ifndef _PR_PTHREADS
- if (isCurrent) {
- (void) sigsetjmp(CONTEXT(t), 1);
- }
- *np = sizeof(CONTEXT(t)) / sizeof(PRWord);
- return (PRWord *) CONTEXT(t);
-#else
- *np = 0;
- return NULL;
-#endif
-}
-
-#ifndef _PR_PTHREADS
-
-void
-_MD_SET_PRIORITY(_MDThread *thread, PRUintn newPri)
-{
- return;
-}
-
-PRStatus
-_MD_InitializeThread(PRThread *thread)
-{
- return PR_SUCCESS;
-}
-
-PRStatus
-_MD_WAIT(PRThread *thread, PRIntervalTime ticks)
-{
- PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE));
- _PR_MD_SWITCH_CONTEXT(thread);
- return PR_SUCCESS;
-}
-
-PRStatus
-_MD_WAKEUP_WAITER(PRThread *thread)
-{
- if (thread) {
- PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE));
- }
- return PR_SUCCESS;
-}
-
-/* These functions should not be called for NEXTSTEP */
-void
-_MD_YIELD(void)
-{
- PR_NOT_REACHED("_MD_YIELD should not be called for NEXTSTEP.");
-}
-
-PRStatus
-_MD_CREATE_THREAD(
- PRThread *thread,
- void (*start) (void *),
- PRThreadPriority priority,
- PRThreadScope scope,
- PRThreadState state,
- PRUint32 stackSize)
-{
- PR_NOT_REACHED("_MD_CREATE_THREAD should not be called for NEXTSTEP.");
- return PR_FAILURE;
-}
-
-#endif
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-/* We want position independent code */
-#define PIC
-
-#include <sys/asm.h>
-#include <sys/regdef.h>
-#include <sys/syscall.h>
-
- .file 1 "os_ReliantUNIX.s"
- .option pic2
- .text
-
- .align 2
- .globl getcxt
- .ent getcxt
-getcxt:
- .frame sp,0,$31 # vars= 0, regs= 0/0, args= 0, extra= 0
- # saved integer regs
- sw ra,180(a0) # gpregs[CXT_EPC]
- sw gp,152(a0) # gpregs[CXT_GP]
- sw sp,156(a0) # gpregs[CXT_SP]
- sw s8,160(a0) # gpregs[CXT_S8]
- sw s0,104(a0) # gpregs[CXT_S0]
- sw s1,108(a0) # gpregs[CXT_S1]
- sw s2,112(a0) # gpregs[CXT_S2]
- sw s3,116(a0) # gpregs[CXT_S3]
- sw s4,120(a0) # gpregs[CXT_S4]
- sw s5,124(a0) # gpregs[CXT_S5]
- sw s6,128(a0) # gpregs[CXT_S6]
- sw s7,132(a0) # gpregs[CXT_S7]
- # csr
- cfc1 v0,$31
- # saved float regs
- s.d $f20,264(a0) # fpregs.fp_r.fp_dregs[10]
- s.d $f22,272(a0) # fpregs.fp_r.fp_dregs[11]
- s.d $f24,280(a0) # fpregs.fp_r.fp_dregs[12]
- s.d $f26,288(a0) # fpregs.fp_r.fp_dregs[13]
- s.d $f28,296(a0) # fpregs.fp_r.fp_dregs[14]
- s.d $f30,304(a0) # fpregs.fp_r.fp_dregs[15]
- sw v0,312(a0) # fpregs.fp_csr
-
- # give no illusions about the contents
- li v0,0x0c # UC_CPU | UC_MAU
- sw v0,0(a0) # uc_flags
-
- move v0,zero
- j ra
- .end getcxt
-
- .align 2
- .globl setcxt
- .ent setcxt
-setcxt:
- .frame sp,0,$31 # vars= 0, regs= 0/0, args= 0, extra= 0
- lw v0,312(a0) # fpregs.fp_csr
- li v1,0xfffc0fff # mask out exception cause bits
- and v0,v0,v1
- # saved integer regs
- lw t9,180(a0) # gpregs[CXT_EPC]
- lw ra,180(a0) # gpregs[CXT_EPC]
- lw gp,152(a0) # gpregs[CXT_GP]
- lw sp,156(a0) # gpregs[CXT_SP]
- ctc1 v0,$31 # fp_csr
- lw s8,160(a0) # gpregs[CXT_S8]
- lw s0,104(a0) # gpregs[CXT_S0]
- lw s1,108(a0) # gpregs[CXT_S1]
- lw s2,112(a0) # gpregs[CXT_S2]
- lw s3,116(a0) # gpregs[CXT_S3]
- lw s4,120(a0) # gpregs[CXT_S4]
- lw s5,124(a0) # gpregs[CXT_S5]
- lw s6,128(a0) # gpregs[CXT_S6]
- lw s7,132(a0) # gpregs[CXT_S7]
- # saved float regs
- l.d $f20,264(a0) # fpregs.fp_r.fp_dregs[10]
- l.d $f22,272(a0) # fpregs.fp_r.fp_dregs[11]
- l.d $f24,280(a0) # fpregs.fp_r.fp_dregs[12]
- l.d $f26,288(a0) # fpregs.fp_r.fp_dregs[13]
- l.d $f28,296(a0) # fpregs.fp_r.fp_dregs[14]
- l.d $f30,304(a0) # fpregs.fp_r.fp_dregs[15]
-
- # load these, too
- # they were not saved, but maybe the user modified them...
- lw v0,48(a0)
- lw v1,52(a0)
- lw a1,60(a0)
- lw a2,64(a0)
- lw a3,68(a0)
- lw a0,56(a0) # there is no way back
-
- j ra
-
- .end setcxt
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-/*
- * SINIX (ReliantUNIX) 5.4 - copied from unixware.c by chrisk 040497
- */
-#include "primpl.h"
-
-#include <ucontext.h>
-
-void _MD_EarlyInit(void)
-{
-}
-
-PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np)
-{
- if (isCurrent) {
- (void) _GETCONTEXT(CONTEXT(t));
- }
- *np = sizeof(CONTEXT(t)) / sizeof(PRWord);
- return (PRWord *) CONTEXT(t);
-}
-
-#ifdef ALARMS_BREAK_TCP /* I don't think they do */
-
-PRInt32 _MD_connect(PRInt32 osfd, PRNetAddr *addr, PRInt32 addrlen,
- PRIntervalTime timeout)
-{
- PRInt32 rv;
-
- _MD_BLOCK_CLOCK_INTERRUPTS();
- rv = _connect(osfd,addr,addrlen);
- _MD_UNBLOCK_CLOCK_INTERRUPTS();
-}
-
-PRInt32 _MD_accept(PRInt32 osfd, PRNetAddr *addr, PRInt32 addrlen,
- PRIntervalTime timeout)
-{
- PRInt32 rv;
-
- _MD_BLOCK_CLOCK_INTERRUPTS();
- rv = _accept(osfd,addr,addrlen);
- _MD_UNBLOCK_CLOCK_INTERRUPTS();
- return(rv);
-}
-#endif
-
-void
-_MD_SET_PRIORITY(_MDThread *thread, PRUintn newPri)
-{
- return;
-}
-
-PRStatus
-_MD_InitializeThread(PRThread *thread)
-{
- return PR_SUCCESS;
-}
-
-PRStatus
-_MD_WAIT(PRThread *thread, PRIntervalTime ticks)
-{
- PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE));
- _PR_MD_SWITCH_CONTEXT(thread);
- return PR_SUCCESS;
-}
-
-PRStatus
-_MD_WAKEUP_WAITER(PRThread *thread)
-{
- if (thread) {
- PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE));
- }
- return PR_SUCCESS;
-}
-
-/* These functions should not be called for SINIX */
-/* Why? Just copied it from UNIXWARE... flying-by-night, chrisk 040497 */
-void
-_MD_YIELD(void)
-{
- PR_NOT_REACHED("_MD_YIELD should not be called for SINIX.");
-}
-
-PRStatus
-_MD_CREATE_THREAD(
- PRThread *thread,
- void (*start) (void *),
- PRUintn priority,
- PRThreadScope scope,
- PRThreadState state,
- PRUint32 stackSize)
-{
- PR_NOT_REACHED("_MD_CREATE_THREAD should not be called for SINIX.");
-#if defined(SNI) && !defined(__GNUC__)
- /* make compiler happy */
- return (PRStatus)NULL;
-#endif
-}
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "primpl.h"
-
-#include <signal.h>
-
-void _MD_EarlyInit(void)
-{
-}
-
-PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np)
-{
-#ifndef _PR_PTHREADS
- if (isCurrent) {
- (void) setjmp(CONTEXT(t), 1);
- }
- *np = sizeof(CONTEXT(t)) / sizeof(PRWord);
- return (PRWord *) CONTEXT(t);
-#else
- *np = 0;
- return NULL;
-#endif
-}
-
-#ifndef _PR_PTHREADS
-void
-_MD_SET_PRIORITY(_MDThread *thread, PRUintn newPri)
-{
- return;
-}
-
-PRStatus
-_MD_InitializeThread(PRThread *thread)
-{
- return PR_SUCCESS;
-}
-
-PRStatus
-_MD_WAIT(PRThread *thread, PRIntervalTime ticks)
-{
- PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE));
- _PR_MD_SWITCH_CONTEXT(thread);
- return PR_SUCCESS;
-}
-
-PRStatus
-_MD_WAKEUP_WAITER(PRThread *thread)
-{
- if (thread) {
- PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE));
- }
- return PR_SUCCESS;
-}
-
-/* These functions should not be called for Sony */
-void
-_MD_YIELD(void)
-{
- PR_NOT_REACHED("_MD_YIELD should not be called for SONY.");
-}
-
-PRStatus
-_MD_CREATE_THREAD(
- PRThread *thread,
- void (*start) (void *),
- PRThreadPriority priority,
- PRThreadScope scope,
- PRThreadState state,
- PRUint32 stackSize)
-{
- PR_NOT_REACHED("_MD_CREATE_THREAD should not be called for SONY.");
- return PR_FAILURE;
-}
-#endif /* ! _PR_PTHREADS */
+++ /dev/null
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include <setjmp.h>
-#include "primpl.h"
-
-void _MD_EarlyInit(void)
-{
-}
-
-PRStatus _MD_CREATE_THREAD(PRThread *thread,
- void (*start)(void *),
- PRThreadPriority priority,
- PRThreadScope scope,
- PRThreadState state,
- PRUint32 stackSize)
-{
- PR_NOT_REACHED("_MD_CREATE_THREAD should not be called for SunOS 4.1.3.");
- return PR_FAILURE;
-}
-
-void _MD_SET_PRIORITY(_MDThread *md_thread, PRUintn newPri)
-{
- PR_NOT_REACHED("_MD_SET_PRIORITY should not be called for user-level threads.");
-}
-
-PRStatus
-_MD_WAIT(PRThread *thread, PRIntervalTime ticks)
-{
- PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE));
- _PR_MD_SWITCH_CONTEXT(thread);
- return PR_SUCCESS;
-}
-
-PRStatus
-_MD_WAKEUP_WAITER(PRThread *thread)
-{
- if (thread) {
- PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE));
- }
- return PR_SUCCESS;
-}
-
-PRStatus _MD_InitializeThread(PRThread *thread)
-{
- return PR_SUCCESS;
-}
-
-void
-_MD_YIELD(void)
-{
- PR_NOT_REACHED("_MD_YIELD should not be called for SunOS 4.1.3.");
-}
-
-PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np)
-{
- if (isCurrent) {
- (void) setjmp(CONTEXT(t));
- }
- *np = sizeof(CONTEXT(t)) / sizeof(PRWord);
- return (PRWord *) CONTEXT(t);
-}
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 04:42:04 2001//TNSPR_4_8_RTM
-/Makefile.in/1.22/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ntdllmn.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ntgc.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ntinrval.c/3.15/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ntio.c/3.49/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ntmisc.c/3.31/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ntsec.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ntsem.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/objs.mk/1.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/w32ipcsem.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/w32poll.c/3.14/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/w32rng.c/1.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/w32shm.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/w95cv.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/w95dllmain.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/w95io.c/3.43/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/w95sock.c/3.19/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/win32_errors.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ntthread.c/3.21/Tue Jul 24 08:48:28 2012//TNSPR_4_9_2_RTM
-/w95thred.c/3.22/Tue Jul 24 08:48:28 2012//TNSPR_4_9_2_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/src/md/windows
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 04:47:04 2001//TNSPR_4_8_RTM
-/Makefile.in/1.17/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prseg.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prshm.c/3.5/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prshma.c/3.5/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/src/memory
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 04:52:36 2001//TNSPR_4_8_RTM
-/praton.c/1.1/Sat Dec 19 09:06:07 2009//TNSPR_4_8_4_RTM
-/Makefile.in/1.25/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/compile-et.pl/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/dtoa.c/1.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/pralarm.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/pratom.c/3.20/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prcountr.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prdtoa.c/4.17/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prenv.c/3.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prerr.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prerr.et/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prerr.properties/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prerror.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prerrortable.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prinit.c/3.59/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prinrval.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/pripc.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/pripcsem.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prlog2.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prlong.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prnetdb.c/3.67/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prolock.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prrng.c/1.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prsystem.c/3.38/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prthinfo.c/3.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prtime.c/3.46/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prtpool.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prtrace.c/3.14/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/src/misc
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 04:53:48 2001//TNSPR_4_8_RTM
-/Makefile.in/1.15/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ptio.c/3.118/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ptmisc.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ptsynch.c/3.37/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ptthread.c/3.96/Tue Jul 24 08:48:28 2012//TNSPR_4_9_2_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/src/pthreads
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-D/combined////
-/.cvsignore/1.2/Sat May 12 04:55:26 2001//TNSPR_4_8_RTM
-/Makefile.in/1.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prcmon.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prdump.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prmon.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prrwlock.c/1.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prsem.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prtpd.c/3.16/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prcthr.c/3.22/Tue Jul 24 08:48:28 2012//TNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/pr/src/threads
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 04:56:56 2001//TNSPR_4_8_RTM
-/README/3.1/Sat Mar 28 03:37:59 1998//TNSPR_4_8_RTM
-/Makefile.in/1.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prucpu.c/3.17/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prucv.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prulock.c/3.15/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prustack.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/pruthr.c/3.45/Tue Jul 24 08:48:28 2012//TNSPR_4_9_2_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/src/threads/combined
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-D/dll////
-D/w16gui////
-D/macbuild////
-/.cvsignore/1.2/Sat May 12 05:06:18 2001//TNSPR_4_8_RTM
-/README.TXT/3.3/Mon Oct 27 12:13:26 2008//TNSPR_4_8_RTM
-/Makefile.in/1.69/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/accept.c/3.16/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/acceptread.c/1.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/acceptreademu.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/addrstr.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/affinity.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/alarm.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/anonfm.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/append.c/1.5/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/atomic.c/3.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/attach.c/3.16/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/bigfile.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/bigfile2.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/bigfile3.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/bug1test.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/cleanup.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/cltsrv.c/3.19/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/concur.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/cvar.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/cvar2.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/dbmalloc.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/dbmalloc1.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/dceemu.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/depend.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/dlltest.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/dtoa.c/1.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/env.c/1.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/errcodes.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/errset.c/1.5/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/exit.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/fdcach.c/1.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/fileio.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/foreign.c/3.18/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/forktest.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/formattm.c/1.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/freeif.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/fsync.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/getai.c/1.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/gethost.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/getproto.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/i2l.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/initclk.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/inrval.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/instrumt.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/intrio.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/intrupt.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/io_timeout.c/3.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/io_timeoutk.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/io_timeoutu.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ioconthr.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ipv6.c/3.15/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/join.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/joinkk.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/joinku.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/joinuk.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/joinuu.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/layer.c/3.14/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/lazyinit.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/libfilename.c/1.5/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/lltest.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/lock.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/lockfile.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/logfile.c/1.3/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/logger.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/makedir.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/many_cv.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/mbcs.c/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/multiacc.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/multiwait.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/nameshm1.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/nbconn.c/3.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/nblayer.c/1.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/nonblock.c/3.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ntioto.c/1.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ntoh.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/obsints.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/op_2long.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/op_excl.c/1.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/op_filnf.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/op_filok.c/3.18/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/op_noacc.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/op_nofil.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/openfile.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/parent.c/3.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/parsetm.c/1.3/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/peek.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/perf.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/pipeping.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/pipeping2.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/pipepong.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/pipepong2.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/pipeself.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/poll_er.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/poll_nm.c/3.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/poll_to.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/pollable.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prftest.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prftest1.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prftest2.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/primblok.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/priotest.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/provider.c/3.20/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prpoll.c/3.16/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prpollml.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prselect.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/prttools.h/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/randseed.c/1.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ranfile.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/reinit.c/1.2/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/rmdir.c/1.5/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/runtests.pl/1.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/runtests.sh/1.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/runy2ktests.ksh/3.7/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/rwlocktest.c/1.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/sel_spd.c/3.19/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/selct_er.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/selct_nm.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/selct_to.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/select2.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/selintr.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/sem.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/sema.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/semaerr.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/semaerr1.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/semaping.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/semapong.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/sendzlf.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/server_test.c/3.14/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/servr_kk.c/3.16/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/servr_ku.c/3.15/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/servr_uk.c/3.15/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/servr_uu.c/3.15/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/short_thread.c/1.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/sigpipe.c/3.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/sleep.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/socket.c/3.24/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/sockopt.c/3.17/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/sockping.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/sockpong.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/sprintf.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/sproc_ch.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/sproc_p.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/stack.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/stat.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/stdio.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/str2addr.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/strod.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/suspend.c/3.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/switch.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/system.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/testbit.c/1.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/testfile.c/3.22/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/threads.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/thrpool_client.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/thrpool_server.c/3.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/thruput.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/time.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/timemac.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/timetest.c/3.13/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/tmoacc.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/tmocon.c/3.17/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/tpd.c/3.12/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/udpsrv.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/ut_ttools.h/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/version.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/writev.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/xnotify.c/3.8/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/y2k.c/3.11/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/y2ktmo.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/yield.c/3.10/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/zerolen.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/vercheck.c/1.40/Tue Jul 24 08:48:28 2012//TNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/pr/tests
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 05:07:36 2001//TNSPR_4_8_RTM
-/Makefile.in/1.19/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/my.def/1.4/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/mygetval.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/mysetval.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/pr/tests/dll
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/pr/tests/macbuild
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-mozilla/nsprpub/pr/tests/w16gui
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-TNSPR_4_9_2_RTM
+++ /dev/null
-/.cvsignore/1.2/Sat May 12 05:12:57 2001//TNSPR_4_8_RTM
-/Makefile.in/1.17/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/httpget.c/3.9/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-/tail.c/3.6/Fri Jun 1 14:48:45 2012//TNSPR_4_9_1_RTM
-D
+++ /dev/null
-mozilla/nsprpub/tools
+++ /dev/null
-:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
+++ /dev/null
-NNSPR_4_9_2_RTM
--- /dev/null
+repo: a4b34919bf34db2ee22acbbc305693c8980b6dc6
+node: a79384724f5c56f0ed99ab18fe705c757aee2c8f
+branch: default
+latesttag: NSPR_4_10_RTM
+latesttagdistance: 1
--- /dev/null
+syntax: glob
+*~
+*OPT.OBJ/*
+*DBG.OBJ/*
+*DBG.OBJD/*
# Temporary workaround to disable the generation of
# library build time because now.c uses the 'long long'
# data type that's not available on some platforms.
-ifeq (,$(filter-out NEC NEXTSTEP QNX SCOOS UNIXWARE,$(OS_ARCH)))
+ifeq (,$(filter-out QNX SCOOS UNIXWARE,$(OS_ARCH)))
DEFINES += -DOMIT_LIB_BUILD_TIME
endif
* Does getcwd() take NULL as the first argument and malloc
* the result buffer?
*/
-#if !defined(DARWIN) && !defined(NEXTSTEP)
+#if !defined(DARWIN)
#define GETCWD_CAN_MALLOC
#endif
-#ifdef NEXTSTEP
-#include <bsd/libc.h>
-
-/*
-** balazs.pataki@sztaki.hu: The getcwd is broken in NEXTSTEP (returns 0),
-** when called on a mounted fs. Did anyone notice this? Here's an ugly
-** workaround ...
-*/
-#define getcwd(b,s) my_getcwd(b,s)
-
-static char *
-my_getcwd (char *buf, size_t size)
-{
- FILE *pwd = popen("pwd", "r");
- char *result = fgets(buf, size, pwd);
-
- if (result) {
- buf[strlen(buf)-1] = '\0';
- }
- pclose (pwd);
- return buf;
-}
-#endif /* NEXTSTEP */
-
#if defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)
#include <getopt.h>
#endif
-#if defined(SCO) || defined(UNIXWARE) || defined(SNI) || defined(NCR) || defined(NEC) || defined(NEXTSTEP)
+#if defined(SCO) || defined(UNIXWARE)
#if !defined(S_ISLNK) && defined(S_IFLNK)
#define S_ISLNK(a) (((a) & S_IFMT) == S_IFLNK)
#endif
#endif
-#if defined(SNI)
-extern int fchmod(int fildes, mode_t mode);
-#endif
-
#ifdef QNX
#define d_ino d_stat.st_ino
#endif
#include <limits.h>
#include <sys/types.h>
-#if SUNOS4
-#include "../pr/include/md/sunos4.h"
-#endif
-
#ifndef PATH_MAX
#define PATH_MAX 1024
#endif
*/
#error "Do not include this header file."
+
location of the Android toolchain"
ac_help="$ac_help
--with-android-version=VER
- Android platform version, default 5"
+ Android platform version, default 5 for arm, 9 for x86/mips"
ac_help="$ac_help
--with-android-platform=DIR
location of platform dir"
MOD_MAJOR_VERSION=4
-MOD_MINOR_VERSION=9
-MOD_PATCH_VERSION=2
+MOD_MINOR_VERSION=10
+MOD_PATCH_VERSION=0
NSPR_MODNAME=nspr20
_HAVE_PTHREADS=
USE_PTHREADS=
fi
+case "$target_cpu" in
+arm)
+ android_version=5
+ ;;
+i?86|mipsel)
+ android_version=9
+ ;;
+esac
+
# Check whether --with-android-version or --without-android-version was given.
if test "${with_android_version+set}" = set; then
withval="$with_android_version"
android_version=$withval
-else
- android_version=5
fi
android_tool_prefix="arm-linux-androideabi"
;;
i?86-*android*)
- android_tool_prefix="i686-android-linux"
+ android_tool_prefix="i686-linux-android"
;;
mipsel-*android*)
android_tool_prefix="mipsel-linux-android"
if test -z "$android_toolchain" ; then
echo $ac_n "checking for android toolchain directory""... $ac_c" 1>&6
-echo "configure:928: checking for android toolchain directory" >&5
+echo "configure:935: checking for android toolchain directory" >&5
kernel_name=`uname -s | tr "[:upper:]" "[:lower:]"`
if test -z "$android_platform" ; then
echo $ac_n "checking for android platform directory""... $ac_c" 1>&6
-echo "configure:954: checking for android platform directory" >&5
+echo "configure:961: checking for android platform directory" >&5
case "$target_cpu" in
arm)
fi
fi
+ case "$target_cpu" in
+ i?86)
+ if ! test -e "$android_toolchain"/bin/"$android_tool_prefix"-gcc; then
+ android_tool_prefix="i686-android-linux"
+ fi
+ ;;
+ esac
+
AS="$android_toolchain"/bin/"$android_tool_prefix"-as
CC="$android_toolchain"/bin/"$android_tool_prefix"-gcc
CXX="$android_toolchain"/bin/"$android_tool_prefix"-g++
#define ANDROID 1
EOF
- cat >> confdefs.h <<EOF
-#define ANDROID_VERSION $android_version
-EOF
-
;;
esac
fi
# Extract the first word of "$WHOAMI whoami", so it can be a program name with args.
set dummy $WHOAMI whoami; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1308: checking for $ac_word" >&5
+echo "configure:1323: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_WHOAMI'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
_SAVE_LDFLAGS="$LDFLAGS"
echo $ac_n "checking for $host compiler""... $ac_c" 1>&6
-echo "configure:1380: checking for $host compiler" >&5
+echo "configure:1395: checking for $host compiler" >&5
for ac_prog in $HOST_CC gcc cc /usr/ucb/cc
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1386: checking for $ac_word" >&5
+echo "configure:1401: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_HOST_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
LDFLAGS="$HOST_LDFLAGS"
echo $ac_n "checking whether the $host compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1432: checking whether the $host compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works" >&5
+echo "configure:1447: checking whether the $host compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works" >&5
cat > conftest.$ac_ext <<EOF
-#line 1434 "configure"
+#line 1449 "configure"
#include "confdefs.h"
int main() {
-return(0);
+return 0;
; return 0; }
EOF
-if { (eval echo configure:1441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1456: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
- ac_cv_prog_host_cc_works=1 echo "$ac_t""yes" 1>&6
+ echo "$ac_t""yes" 1>&6
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1476: checking for $ac_word" >&5
+echo "configure:1491: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1510: checking for $ac_word" >&5
+echo "configure:1525: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1540: checking for $ac_word" >&5
+echo "configure:1555: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1591: checking for $ac_word" >&5
+echo "configure:1606: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1623: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1638: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
cat > conftest.$ac_ext << EOF
-#line 1634 "configure"
+#line 1649 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1665: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1680: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1670: checking whether we are using GNU C" >&5
+echo "configure:1685: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1679: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1694: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1698: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1713: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1735: checking for $ac_word" >&5
+echo "configure:1750: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1771: checking for $ac_word" >&5
+echo "configure:1786: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1803: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+echo "configure:1818: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
ac_ext=C
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
cat > conftest.$ac_ext << EOF
-#line 1814 "configure"
+#line 1829 "configure"
#include "confdefs.h"
int main(){return(0);}
EOF
-if { (eval echo configure:1819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cxx_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
{ echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1845: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1860: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
cross_compiling=$ac_cv_prog_cxx_cross
echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:1850: checking whether we are using GNU C++" >&5
+echo "configure:1865: checking whether we are using GNU C++" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
yes;
#endif
EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1859: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1874: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gxx=yes
else
ac_cv_prog_gxx=no
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1878: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:1893: checking whether ${CXX-g++} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1923: checking for $ac_word" >&5
+echo "configure:1938: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1958: checking for $ac_word" >&5
+echo "configure:1973: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1993: checking for $ac_word" >&5
+echo "configure:2008: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2028: checking for $ac_word" >&5
+echo "configure:2043: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2063: checking for $ac_word" >&5
+echo "configure:2078: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2098: checking for $ac_word" >&5
+echo "configure:2113: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2133: checking for $ac_word" >&5
+echo "configure:2148: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2163: checking for $ac_word" >&5
+echo "configure:2178: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2214: checking for $ac_word" >&5
+echo "configure:2229: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:2246: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:2261: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
cat > conftest.$ac_ext << EOF
-#line 2257 "configure"
+#line 2272 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:2262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:2288: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2303: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:2293: checking whether we are using GNU C" >&5
+echo "configure:2308: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2302: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2317: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:2321: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:2336: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2361: checking for $ac_word" >&5
+echo "configure:2376: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:2393: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+echo "configure:2408: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
ac_ext=C
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
cat > conftest.$ac_ext << EOF
-#line 2404 "configure"
+#line 2419 "configure"
#include "confdefs.h"
int main(){return(0);}
EOF
-if { (eval echo configure:2409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cxx_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
{ echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:2435: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2450: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
cross_compiling=$ac_cv_prog_cxx_cross
echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:2440: checking whether we are using GNU C++" >&5
+echo "configure:2455: checking whether we are using GNU C++" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
yes;
#endif
EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:2449: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:2464: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gxx=yes
else
ac_cv_prog_gxx=no
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:2468: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:2483: checking whether ${CXX-g++} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2502: checking how to run the C preprocessor" >&5
+echo "configure:2517: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 2517 "configure"
+#line 2532 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2538: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 2534 "configure"
+#line 2549 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2540: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2555: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 2551 "configure"
+#line 2566 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2557: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2572: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2584: checking for $ac_word" >&5
+echo "configure:2599: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2616: checking for $ac_word" >&5
+echo "configure:2631: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_AS'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2657: checking for $ac_word" >&5
+echo "configure:2672: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2698: checking for $ac_word" >&5
+echo "configure:2713: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2739: checking for $ac_word" >&5
+echo "configure:2754: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_STRIP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2780: checking for $ac_word" >&5
+echo "configure:2795: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_WINDRES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
echo $ac_n "checking for gcc -pipe support""... $ac_c" 1>&6
-echo "configure:2848: checking for gcc -pipe support" >&5
+echo "configure:2863: checking for gcc -pipe support" >&5
if test -n "$GNU_CC" && test -n "$GNU_CXX" && test -n "$GNU_AS"; then
echo '#include <stdio.h>' > dummy-hello.c
echo 'int main() { printf("Hello World\n"); return 0; }' >> dummy-hello.c
_SAVE_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -pipe"
cat > conftest.$ac_ext <<EOF
-#line 2863 "configure"
+#line 2878 "configure"
#include "confdefs.h"
#include <stdio.h>
int main() {
printf("Hello World\n");
; return 0; }
EOF
-if { (eval echo configure:2870: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2885: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
_res_gcc_pipe="yes"
else
CFLAGS="$CFLAGS -fprofile-generate -fprofile-correction"
echo $ac_n "checking whether C compiler supports -fprofile-generate""... $ac_c" 1>&6
-echo "configure:2900: checking whether C compiler supports -fprofile-generate" >&5
+echo "configure:2915: checking whether C compiler supports -fprofile-generate" >&5
cat > conftest.$ac_ext <<EOF
-#line 2902 "configure"
+#line 2917 "configure"
#include "confdefs.h"
int main() {
return 0;
; return 0; }
EOF
-if { (eval echo configure:2909: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2924: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
PROFILE_GEN_CFLAGS="-fprofile-generate"
result="yes"
if test "$GNU_CC"; then
echo $ac_n "checking for visibility(hidden) attribute""... $ac_c" 1>&6
-echo "configure:2932: checking for visibility(hidden) attribute" >&5
+echo "configure:2947: checking for visibility(hidden) attribute" >&5
if eval "test \"`echo '$''{'ac_cv_visibility_hidden'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
EOF
echo $ac_n "checking for visibility pragma support""... $ac_c" 1>&6
-echo "configure:2956: checking for visibility pragma support" >&5
+echo "configure:2971: checking for visibility pragma support" >&5
if eval "test \"`echo '$''{'ac_cv_visibility_pragma'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3009: checking for $ac_word" >&5
+echo "configure:3024: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
_SAVE_CFLAGS="$CFLAGS"
CFLAGS="$arch_flag"
cat > conftest.$ac_ext <<EOF
-#line 3331 "configure"
+#line 3346 "configure"
#include "confdefs.h"
int main() {
return sizeof(__thumb2__);
; return 0; }
EOF
-if { (eval echo configure:3338: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
MOZ_THUMB2=1
else
_SAVE_CFLAGS="$CFLAGS"
CFLAGS="$all_flags"
echo $ac_n "checking whether the chosen combination of compiler flags ($all_flags) works""... $ac_c" 1>&6
-echo "configure:3400: checking whether the chosen combination of compiler flags ($all_flags) works" >&5
+echo "configure:3415: checking whether the chosen combination of compiler flags ($all_flags) works" >&5
cat > conftest.$ac_ext <<EOF
-#line 3402 "configure"
+#line 3417 "configure"
#include "confdefs.h"
int main() {
return 0;
; return 0; }
EOF
-if { (eval echo configure:3409: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3424: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
else
DSO_LDOPTS='-brtl -bnortllib -bM:SRE -bnoentry -bexpall -blibpath:/usr/lib:/lib'
ac_safe=`echo "sys/atomic_op.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for sys/atomic_op.h""... $ac_c" 1>&6
-echo "configure:3466: checking for sys/atomic_op.h" >&5
+echo "configure:3481: checking for sys/atomic_op.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3471 "configure"
+#line 3486 "configure"
#include "confdefs.h"
#include <sys/atomic_op.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3476: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3491: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
_DEBUG_FLAGS='-gdwarf-2 -O0'
MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@'
echo $ac_n "checking for gethostbyaddr in -lbind""... $ac_c" 1>&6
-echo "configure:3633: checking for gethostbyaddr in -lbind" >&5
+echo "configure:3648: checking for gethostbyaddr in -lbind" >&5
ac_lib_var=`echo bind'_'gethostbyaddr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lbind $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3641 "configure"
+#line 3656 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
gethostbyaddr()
; return 0; }
EOF
-if { (eval echo configure:3652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
fi
ac_safe=`echo "crt_externs.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for crt_externs.h""... $ac_c" 1>&6
-echo "configure:3861: checking for crt_externs.h" >&5
+echo "configure:3876: checking for crt_externs.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3866 "configure"
+#line 3881 "configure"
#include "confdefs.h"
#include <crt_externs.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3871: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3886: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
_OPTIMIZE_FLAGS=-O2
;;
-*-ncr-sysv*)
- cat >> confdefs.h <<\EOF
-#define XP_UNIX 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define SVR4 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define SYSV 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define NCR 1
-EOF
-
- USE_NSPR_THREADS=1
- if test "$OS_RELEASE" = "2.03"; then
- cat >> confdefs.h <<\EOF
-#define _PR_STAT_HAS_ST_ATIM 1
-EOF
-
- else
- cat >> confdefs.h <<\EOF
-#define _PR_STAT_HAS_ST_ATIM_UNION 1
-EOF
-
- fi
-
- if test -z "$GNU_CC"; then
- CFLAGS="$CFLAGS -Hnocopyr"
- CXXFLAGS="$CXXFLAGS -Hnocopyr"
- else
- CFLAGS="$CFLAGS -fPIC -Wall"
- CXXFLAGS="$CXXFLAGS -fPIC -Wall"
- DSO_LDOPTS=-G
- fi
- MDCPUCFG_H=_ncr.cfg
- PR_MD_CSRCS=ncr.c
- ;;
-
-mips-nec-sysv*)
- cat >> confdefs.h <<\EOF
-#define XP_UNIX 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define SVR4 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define __SVR4 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define NEC 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define nec_ews 1
-EOF
-
- USE_NSPR_THREADS=1
- if test -z "$GNU_CC"; then
- CC='$(NSDEPTH)/build/hcc cc -Xa -KGnum=0 -KOlimit=4000'
- CXX=g++
- fi
- OS_LIBS="$OS_LIBS -lsocket -lnsl -ldl"
- DSO_LDOPTS=-G
- MDCPUCFG_H=_nec.cfg
- PR_MD_CSRCS=nec.c
- ;;
-
*-netbsd*)
cat >> confdefs.h <<\EOF
#define XP_UNIX 1
fi
;;
-mips-sony-newsos*)
- cat >> confdefs.h <<\EOF
-#define XP_UNIX 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define SONY 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define SYSV 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define SVR4 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define __svr4 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define __svr4__ 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_SVID_GETTOD 1
-EOF
-
- USE_NSPR_THREADS=1
- CFLAGS="$CFLAGS -Xa -fullwarn"
- CXXFLAGS="$CXXFLAGS -Xa -fullwarn"
- DSO_LDOPTS=-G
- MDCPUCFG_H=_sony.cfg
- PR_MD_CSRCS=sony.c
- ;;
-
-*-nextstep*|*-openstep*)
- cat >> confdefs.h <<\EOF
-#define XP_UNIX 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define NEXTSTEP 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_BSD_FLOCK 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define _POSIX_SOURCE 1
-EOF
-
- CFLAGS="$CFLAGS -Wall -fno-common -traditional-cpp -posix"
- CXXFLAGS="$CXXFLAGS -Wall -fno-common -traditional-cpp -posix"
- USE_NSPR_THREADS=1
- DLL_SUFFIX=dylib
- MDCPUCFG_H=_nextstep.cfg
- PR_MD_CSRCS=nextstep.c
- ;;
-
-
*-nto*)
cat >> confdefs.h <<\EOF
#define XP_UNIX 1
_OPTIMIZE_FLAGS="$_OPTIMIZE_FLAGS -Olimit 4000"
ac_safe=`echo "machine/builtins.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for machine/builtins.h""... $ac_c" 1>&6
-echo "configure:5052: checking for machine/builtins.h" >&5
+echo "configure:4930: checking for machine/builtins.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5057 "configure"
+#line 4935 "configure"
#include "confdefs.h"
#include <machine/builtins.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5062: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4940: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
PR_MD_SRCS=scoos.c
;;
-*-sinix*)
- cat >> confdefs.h <<\EOF
-#define XP_UNIX 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define SVR4 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define SNI 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define RELIANTUNIX 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define sinix 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_SVID_GETTOD 1
-EOF
-
- if echo "$OS_TEST" | grep -c 86 2>/dev/null; then
- cat >> confdefs.h <<\EOF
-#define i386 1
-EOF
-
- CPU_ARCH=x86
- else
- CPU_ARCH=mips
- fi
-
- if test "$GNU_CC"; then
- AS='$(CC) -x assembler-with-cpp'
- if test "$CPU_ARCH" = "mips"; then
- LD=gld
- fi
- CFLAGS="$CFLAGS -Wall -Wno-format"
- else
- AS='/usr/bin/cc'
- _OPTIMIZE_FLAGS='-O -F Olimit,4000'
- fi
-
- DSO_LDOPTS='-G -z defs -h $(@:$(OBJDIR)/%.so=%.so)'
-
- if test "$OS_RELEASE" = "5.43"; then
- cat >> confdefs.h <<\EOF
-#define IP_MULTICAST 1
-EOF
-
- fi
-
- OS_LIBS="$OS_LIBS -lsocket -lnsl -lresolv -ldl -lc"
- USE_NSPR_THREADS=1
- MDCPUCFG_H=_reliantunix.cfg
- PR_MD_CSRCS=reliantunix.c
- if test "${OS_ARCH}" = "mips"; then
- PR_MD_ASFILES=os_ReliantUNIX.s
- fi
- ;;
-
-*-sunos*)
- cat >> confdefs.h <<\EOF
-#define XP_UNIX 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define SUNOS4 1
-EOF
-
- CFLAGS="$CFLAGS -Wall -Wno-format"
- if test "$USE_MDUPDATE"; then
- CFLAGS="$CFLAGS -MDupdate \$(DEPENDENCIES)"
- fi
- CPU_ARCH=sparc
- DLL_SUFFIX=so.1.0
- DSO_LDOPTS=
- DSO_CFLAGS=-fPIC
- USE_NSPR_THREADS=1
- if test "$OS_RELEASE" = "4.1.3_U1"; then
- _OPTIMIZE_FLAGS=
- OS_LIBS="$OS_LIBS -lm"
- fi
- MDCPUCFG_H=_sunos4.cfg
- PR_MD_CSRCS=sunos4.c
- ;;
-
*-solaris*)
if test -z "$USE_NSPR_THREADS"; then
USE_PTHREADS=1
;;
*)
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:5711: checking for dlopen in -ldl" >&5
+echo "configure:5499: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5719 "configure"
+#line 5507 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
dlopen()
; return 0; }
EOF
-if { (eval echo configure:5730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "$ac_t""yes" 1>&6
ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
-echo "configure:5747: checking for dlfcn.h" >&5
+echo "configure:5535: checking for dlfcn.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5752 "configure"
+#line 5540 "configure"
#include "confdefs.h"
#include <dlfcn.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5757: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5545: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test $ac_cv_prog_gcc = yes; then
echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:5790: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:5578: checking whether ${CC-cc} needs -traditional" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_pattern="Autoconf.*'x'"
cat > conftest.$ac_ext <<EOF
-#line 5796 "configure"
+#line 5584 "configure"
#include "confdefs.h"
#include <sgtty.h>
Autoconf TIOCGETP
if test $ac_cv_prog_gcc_traditional = no; then
cat > conftest.$ac_ext <<EOF
-#line 5814 "configure"
+#line 5602 "configure"
#include "confdefs.h"
#include <termio.h>
Autoconf TCGETA
_SAVE_LIBS="$LIBS"
LIBS="$LIBS $OS_LIBS"
-for ac_func in lchown strerror dladdr
+for ac_func in dladdr gettid lchown setpriority strerror syscall
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5840: checking for $ac_func" >&5
+echo "configure:5628: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5845 "configure"
+#line 5633 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:5868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:5920: checking for $ac_word" >&5
+echo "configure:5708: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_CCACHE'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -z "$GNU_CC"; then
echo $ac_n "checking for +Olit support""... $ac_c" 1>&6
-echo "configure:5979: checking for +Olit support" >&5
+echo "configure:5767: checking for +Olit support" >&5
if eval "test \"`echo '$''{'ac_cv_hpux_usable_olit_option'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
*)
echo $ac_n "checking for pthread_create in -lpthreads""... $ac_c" 1>&6
-echo "configure:6021: checking for pthread_create in -lpthreads" >&5
+echo "configure:5809: checking for pthread_create in -lpthreads" >&5
echo "
#include <pthread.h>
void *foo(void *v) { return v; }
echo "$ac_t""no" 1>&6
echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
-echo "configure:6043: checking for pthread_create in -lpthread" >&5
+echo "configure:5831: checking for pthread_create in -lpthread" >&5
echo "
#include <pthread.h>
void *foo(void *v) { return v; }
echo "$ac_t""no" 1>&6
echo $ac_n "checking for pthread_create in -lc_r""... $ac_c" 1>&6
-echo "configure:6065: checking for pthread_create in -lc_r" >&5
+echo "configure:5853: checking for pthread_create in -lc_r" >&5
echo "
#include <pthread.h>
void *foo(void *v) { return v; }
echo "$ac_t""no" 1>&6
echo $ac_n "checking for pthread_create in -lc""... $ac_c" 1>&6
-echo "configure:6087: checking for pthread_create in -lc" >&5
+echo "configure:5875: checking for pthread_create in -lc" >&5
echo "
#include <pthread.h>
void *foo(void *v) { return v; }
rm -f conftest*
ac_cv_have_dash_pthread=no
echo $ac_n "checking whether ${CC-cc} accepts -pthread""... $ac_c" 1>&6
-echo "configure:6205: checking whether ${CC-cc} accepts -pthread" >&5
+echo "configure:5993: checking whether ${CC-cc} accepts -pthread" >&5
echo 'int main() { return 0; }' | cat > conftest.c
${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
if test $? -eq 0; then
ac_cv_have_dash_pthreads=no
if test "$ac_cv_have_dash_pthread" = "no"; then
echo $ac_n "checking whether ${CC-cc} accepts -pthreads""... $ac_c" 1>&6
-echo "configure:6228: checking whether ${CC-cc} accepts -pthreads" >&5
+echo "configure:6016: checking whether ${CC-cc} accepts -pthreads" >&5
echo 'int main() { return 0; }' | cat > conftest.c
${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
if test $? -eq 0; then
s%\]%\\&%g
s%\$%$$%g
EOF
-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' ' | tr '\015' ' '` # Manually modified for MKS support.
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
rm -f conftest.defs
dnl = Defaults
dnl ========================================================
MOD_MAJOR_VERSION=4
-MOD_MINOR_VERSION=9
-MOD_PATCH_VERSION=2
+MOD_MINOR_VERSION=10
+MOD_PATCH_VERSION=0
NSPR_MODNAME=nspr20
_HAVE_PTHREADS=
USE_PTHREADS=
location of the Android toolchain],
android_toolchain=$withval)
+dnl The default android_version is different for each target cpu.
+case "$target_cpu" in
+arm)
+ android_version=5
+ ;;
+i?86|mipsel)
+ android_version=9
+ ;;
+esac
+
AC_ARG_WITH(android-version,
[ --with-android-version=VER
- Android platform version, default 5],
- android_version=$withval,
- android_version=5)
+ Android platform version, default 5 for arm, 9 for x86/mips],
+ android_version=$withval)
AC_ARG_WITH(android-platform,
[ --with-android-platform=DIR
android_tool_prefix="arm-linux-androideabi"
;;
i?86-*android*)
- android_tool_prefix="i686-android-linux"
+ android_tool_prefix="i686-linux-android"
;;
mipsel-*android*)
android_tool_prefix="mipsel-linux-android"
fi
fi
+ dnl Old NDK support. If minimum requirement is changed to NDK r8b,
+ dnl please remove this.
+ case "$target_cpu" in
+ i?86)
+ if ! test -e "$android_toolchain"/bin/"$android_tool_prefix"-gcc; then
+ dnl Old NDK toolchain name
+ android_tool_prefix="i686-android-linux"
+ fi
+ ;;
+ esac
+
dnl set up compilers
AS="$android_toolchain"/bin/"$android_tool_prefix"-as
CC="$android_toolchain"/bin/"$android_tool_prefix"-gcc
fi
AC_DEFINE(ANDROID)
- AC_DEFINE_UNQUOTED(ANDROID_VERSION, $android_version)
;;
esac
fi
LDFLAGS="$HOST_LDFLAGS"
AC_MSG_CHECKING([whether the $host compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works])
- AC_TRY_COMPILE([], [return(0);],
- [ac_cv_prog_host_cc_works=1 AC_MSG_RESULT([yes])],
- AC_MSG_ERROR([installation or configuration problem: $host compiler $HOST_CC cannot create executables.]) )
+ AC_TRY_COMPILE([], [return 0;],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_ERROR([installation or configuration problem: $host compiler $HOST_CC cannot create executables.])] )
CC=$_SAVE_CC
CFLAGS=$_SAVE_CFLAGS
_OPTIMIZE_FLAGS=-O2
;;
-*-ncr-sysv*)
- AC_DEFINE(XP_UNIX)
- AC_DEFINE(SVR4)
- AC_DEFINE(SYSV)
- AC_DEFINE(NCR)
- USE_NSPR_THREADS=1
- if test "$OS_RELEASE" = "2.03"; then
- AC_DEFINE(_PR_STAT_HAS_ST_ATIM)
- else
- AC_DEFINE(_PR_STAT_HAS_ST_ATIM_UNION)
- fi
-
- if test -z "$GNU_CC"; then
- CFLAGS="$CFLAGS -Hnocopyr"
- CXXFLAGS="$CXXFLAGS -Hnocopyr"
- else
- CFLAGS="$CFLAGS -fPIC -Wall"
- CXXFLAGS="$CXXFLAGS -fPIC -Wall"
- DSO_LDOPTS=-G
- fi
- MDCPUCFG_H=_ncr.cfg
- PR_MD_CSRCS=ncr.c
- ;;
-
-mips-nec-sysv*)
- AC_DEFINE(XP_UNIX)
- AC_DEFINE(SVR4)
- AC_DEFINE(__SVR4)
- AC_DEFINE(NEC)
- AC_DEFINE(nec_ews)
- USE_NSPR_THREADS=1
- if test -z "$GNU_CC"; then
- CC='$(NSDEPTH)/build/hcc cc -Xa -KGnum=0 -KOlimit=4000'
- CXX=g++
- fi
- OS_LIBS="$OS_LIBS -lsocket -lnsl -ldl"
- DSO_LDOPTS=-G
- MDCPUCFG_H=_nec.cfg
- PR_MD_CSRCS=nec.c
- ;;
-
*-netbsd*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(NETBSD)
fi
;;
-mips-sony-newsos*)
- AC_DEFINE(XP_UNIX)
- AC_DEFINE(SONY)
- AC_DEFINE(SYSV)
- AC_DEFINE(SVR4)
- AC_DEFINE(__svr4)
- AC_DEFINE(__svr4__)
- AC_DEFINE(HAVE_SVID_GETTOD)
- USE_NSPR_THREADS=1
- CFLAGS="$CFLAGS -Xa -fullwarn"
- CXXFLAGS="$CXXFLAGS -Xa -fullwarn"
- DSO_LDOPTS=-G
- MDCPUCFG_H=_sony.cfg
- PR_MD_CSRCS=sony.c
- ;;
-
-*-nextstep*|*-openstep*)
- AC_DEFINE(XP_UNIX)
- AC_DEFINE(NEXTSTEP)
- AC_DEFINE(HAVE_BSD_FLOCK)
- AC_DEFINE(_POSIX_SOURCE)
- CFLAGS="$CFLAGS -Wall -fno-common -traditional-cpp -posix"
- CXXFLAGS="$CXXFLAGS -Wall -fno-common -traditional-cpp -posix"
- USE_NSPR_THREADS=1
- DLL_SUFFIX=dylib
- MDCPUCFG_H=_nextstep.cfg
- PR_MD_CSRCS=nextstep.c
- ;;
-
-
*-nto*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(NTO)
PR_MD_SRCS=scoos.c
;;
-*-sinix*)
- AC_DEFINE(XP_UNIX)
- AC_DEFINE(SVR4)
- AC_DEFINE(SNI)
- AC_DEFINE(RELIANTUNIX)
- AC_DEFINE(sinix)
- AC_DEFINE(HAVE_SVID_GETTOD)
- if echo "$OS_TEST" | grep -c 86 2>/dev/null; then
- AC_DEFINE(i386)
- CPU_ARCH=x86
- else
- CPU_ARCH=mips
- fi
-
- if test "$GNU_CC"; then
- AS='$(CC) -x assembler-with-cpp'
- if test "$CPU_ARCH" = "mips"; then
- LD=gld
- fi
- CFLAGS="$CFLAGS -Wall -Wno-format"
- else
- AS='/usr/bin/cc'
- _OPTIMIZE_FLAGS='-O -F Olimit,4000'
- fi
-
- DSO_LDOPTS='-G -z defs -h $(@:$(OBJDIR)/%.so=%.so)'
-
- if test "$OS_RELEASE" = "5.43"; then
- AC_DEFINE(IP_MULTICAST)
- fi
-
- OS_LIBS="$OS_LIBS -lsocket -lnsl -lresolv -ldl -lc"
- USE_NSPR_THREADS=1
- MDCPUCFG_H=_reliantunix.cfg
- PR_MD_CSRCS=reliantunix.c
- if test "${OS_ARCH}" = "mips"; then
- PR_MD_ASFILES=os_ReliantUNIX.s
- fi
- ;;
-
-*-sunos*)
- AC_DEFINE(XP_UNIX)
- AC_DEFINE(SUNOS4)
- CFLAGS="$CFLAGS -Wall -Wno-format"
- if test "$USE_MDUPDATE"; then
- CFLAGS="$CFLAGS -MDupdate \$(DEPENDENCIES)"
- fi
- CPU_ARCH=sparc
- DLL_SUFFIX=so.1.0
- DSO_LDOPTS=
- DSO_CFLAGS=-fPIC
- USE_NSPR_THREADS=1
- if test "$OS_RELEASE" = "4.1.3_U1"; then
- _OPTIMIZE_FLAGS=
- OS_LIBS="$OS_LIBS -lm"
- fi
- MDCPUCFG_H=_sunos4.cfg
- PR_MD_CSRCS=sunos4.c
- ;;
-
*-solaris*)
if test -z "$USE_NSPR_THREADS"; then
USE_PTHREADS=1
;;
*)
AC_CHECK_LIB(dl, dlopen,
- AC_CHECK_HEADER(dlfcn.h,
- OS_LIBS="-ldl $OS_LIBS"))
+ [AC_CHECK_HEADER(dlfcn.h,
+ OS_LIBS="-ldl $OS_LIBS")])
;;
esac
AC_PROG_GCC_TRADITIONAL
_SAVE_LIBS="$LIBS"
LIBS="$LIBS $OS_LIBS"
-AC_CHECK_FUNCS(lchown strerror dladdr)
+AC_CHECK_FUNCS(dladdr gettid lchown setpriority strerror syscall)
LIBS="$_SAVE_LIBS"
dnl AC_FUNC_MEMCMP
EXTRA_LIBS = $(LIBNSPR)
-# On NCR and SCOOS, we can't link with extra libraries when
+# On SCOOS, we can't link with extra libraries when
# we build a shared library. If we do so, the linker doesn't
# complain, but we would run into weird problems at run-time.
# Therefore on these platforms, we link just the .o files.
-ifeq ($(OS_ARCH),NCR)
-EXTRA_LIBS =
-endif
ifeq ($(OS_ARCH),SCOOS)
EXTRA_LIBS =
endif
if ( NULL != a ) {
a->limit = (PRUword)a + sz;
a->base = a->avail = (PRUword)PL_ARENA_ALIGN(pool, a + 1);
+ PL_MAKE_MEM_NOACCESS((void*)a->avail, a->limit - a->avail);
rp = (char *)a->avail;
a->avail += nb;
/* the newly allocated arena is linked after pool->current
for (; a; a = a->next) {
PR_ASSERT(a->base <= a->avail && a->avail <= a->limit);
a->avail = a->base;
- PL_CLEAR_UNUSED_PATTERN(a, pattern);
+ PL_CLEAR_UNUSED_PATTERN(a, pattern);
+ PL_MAKE_MEM_NOACCESS((void*)a->avail, a->limit - a->avail);
}
}
} else {
/* Insert the whole arena chain at the front of the freelist. */
do {
+ PL_MAKE_MEM_NOACCESS((void*)(*ap)->base,
+ (*ap)->limit - (*ap)->base);
ap = &(*ap)->next;
} while (*ap);
LockArena();
once = pristineCallOnce;
}
+PR_IMPLEMENT(size_t) PL_SizeOfArenaPoolExcludingPool(
+ const PLArenaPool *pool, PLMallocSizeFn mallocSizeOf)
+{
+ /*
+ * The first PLArena is within |pool|, so don't measure it. Subsequent
+ * PLArenas are separate and must be measured.
+ */
+ size_t size = 0;
+ const PLArena *arena = pool->first.next;
+ while (arena) {
+ size += mallocSizeOf(arena);
+ arena = arena->next;
+ }
+ return size;
+}
+
#ifdef PL_ARENAMETER
PR_IMPLEMENT(void) PL_ArenaCountAllocation(PLArenaPool *pool, PRUint32 nb)
{
};
/*
+ * WARNING: The PL_MAKE_MEM_ macros are for internal use by NSPR. Do NOT use
+ * them in your code.
+ *
+ * NOTE: Valgrind support to be added.
+ *
+ * The PL_MAKE_MEM_ macros are modeled after the MOZ_MAKE_MEM_ macros in
+ * Mozilla's mfbt/MemoryChecking.h. Only AddressSanitizer is supported now.
+ *
+ * Provides a common interface to the ASan (AddressSanitizer) and Valgrind
+ * functions used to mark memory in certain ways. In detail, the following
+ * three macros are provided:
+ *
+ * PL_MAKE_MEM_NOACCESS - Mark memory as unsafe to access (e.g. freed)
+ * PL_MAKE_MEM_UNDEFINED - Mark memory as accessible, with content undefined
+ * PL_MAKE_MEM_DEFINED - Mark memory as accessible, with content defined
+ *
+ * With Valgrind in use, these directly map to the three respective Valgrind
+ * macros. With ASan in use, the NOACCESS macro maps to poisoning the memory,
+ * while the UNDEFINED/DEFINED macros unpoison memory.
+ *
+ * With no memory checker available, all macros expand to the empty statement.
+ */
+
+/* WARNING: PL_SANITIZE_ADDRESS is for internal use by this header. Do NOT
+ * define or test this macro in your code.
+ */
+#if defined(__has_feature)
+#if __has_feature(address_sanitizer)
+#define PL_SANITIZE_ADDRESS 1
+#endif
+#elif defined(__SANITIZE_ADDRESS__)
+#define PL_SANITIZE_ADDRESS 1
+#endif
+
+#if defined(PL_SANITIZE_ADDRESS)
+
+/* These definitions are usually provided through the
+ * sanitizer/asan_interface.h header installed by ASan.
+ * See https://code.google.com/p/address-sanitizer/wiki/ManualPoisoning
+ */
+
+void __asan_poison_memory_region(void const volatile *addr, size_t size);
+void __asan_unpoison_memory_region(void const volatile *addr, size_t size);
+
+#define PL_MAKE_MEM_NOACCESS(addr, size) \
+ __asan_poison_memory_region((addr), (size))
+
+#define PL_MAKE_MEM_UNDEFINED(addr, size) \
+ __asan_unpoison_memory_region((addr), (size))
+
+#define PL_MAKE_MEM_DEFINED(addr, size) \
+ __asan_unpoison_memory_region((addr), (size))
+
+#else
+
+#define PL_MAKE_MEM_NOACCESS(addr, size)
+#define PL_MAKE_MEM_UNDEFINED(addr, size)
+#define PL_MAKE_MEM_DEFINED(addr, size)
+
+#endif
+
+/*
* If the including .c file uses only one power-of-2 alignment, it may define
* PL_ARENA_CONST_ALIGN_MASK to the alignment mask and save a few instructions
* per ALLOCATE and GROW.
PRUint32 _nb = PL_ARENA_ALIGN(pool, nb); \
PRUword _p = _a->avail; \
PRUword _q = _p + _nb; \
- if (_q > _a->limit) \
+ if (_q > _a->limit) { \
_p = (PRUword)PL_ArenaAllocate(pool, _nb); \
- else \
+ } else { \
_a->avail = _q; \
+ } \
p = (void *)_p; \
+ PL_MAKE_MEM_UNDEFINED(p, nb); \
PL_ArenaCountAllocation(pool, nb); \
PR_END_MACRO
PRUword _q = _p + _incr; \
if (_p == (PRUword)(p) + PL_ARENA_ALIGN(pool, size) && \
_q <= _a->limit) { \
+ PL_MAKE_MEM_UNDEFINED((unsigned char *)(p) + size, incr); \
_a->avail = _q; \
PL_ArenaCountInplaceGrowth(pool, size, incr); \
} else { \
#define PR_UPTRDIFF(p,q) ((PRUword)(p) - (PRUword)(q))
#define PL_CLEAR_UNUSED_PATTERN(a, pattern) \
- (PR_ASSERT((a)->avail <= (a)->limit), \
- memset((void*)(a)->avail, (pattern), (a)->limit - (a)->avail))
+ PR_BEGIN_MACRO \
+ PR_ASSERT((a)->avail <= (a)->limit); \
+ PL_MAKE_MEM_UNDEFINED((void*)(a)->avail, (a)->limit - (a)->avail); \
+ memset((void*)(a)->avail, (pattern), (a)->limit - (a)->avail); \
+ PR_END_MACRO
#ifdef DEBUG
#define PL_FREE_PATTERN 0xDA
#define PL_CLEAR_UNUSED(a) PL_CLEAR_UNUSED_PATTERN((a), PL_FREE_PATTERN)
-#define PL_CLEAR_ARENA(a) memset((void*)(a), PL_FREE_PATTERN, \
- (a)->limit - (PRUword)(a))
+#define PL_CLEAR_ARENA(a) \
+ PR_BEGIN_MACRO \
+ PL_MAKE_MEM_UNDEFINED((void*)(a), (a)->limit - (PRUword)(a)); \
+ memset((void*)(a), PL_FREE_PATTERN, (a)->limit - (PRUword)(a)); \
+ PR_END_MACRO
#else
#define PL_CLEAR_UNUSED(a)
#define PL_CLEAR_ARENA(a)
if (PR_UPTRDIFF(_m, _a->base) <= PR_UPTRDIFF(_a->avail, _a->base)) { \
_a->avail = (PRUword)PL_ARENA_ALIGN(pool, _m); \
PL_CLEAR_UNUSED(_a); \
+ PL_MAKE_MEM_NOACCESS((void*)_a->avail, _a->limit - _a->avail); \
PL_ArenaCountRetract(pool, _m); \
} else { \
PL_ArenaRelease(pool, _m); \
/*
** Friend functions used by the PL_ARENA_*() macros.
+**
+** WARNING: do not call these functions directly. Always use the
+** PL_ARENA_*() macros.
**/
PR_EXTERN(void *) PL_ArenaAllocate(PLArenaPool *pool, PRUint32 nb);
*/
PR_EXTERN(void) PL_ClearArenaPool(PLArenaPool *pool, PRInt32 pattern);
+/*
+** A function like malloc_size() or malloc_usable_size() that measures the
+** size of a heap block.
+*/
+typedef size_t (*PLMallocSizeFn)(const void *ptr);
+
+/*
+** Measure all memory used by a PLArenaPool, excluding the PLArenaPool
+** structure.
+*/
+PR_EXTERN(size_t) PL_SizeOfArenaPoolExcludingPool(
+ const PLArenaPool *pool, PLMallocSizeFn mallocSizeOf);
+
PR_END_EXTERN_C
#endif /* PLARENAS_H */
;+ global:
PL_ClearArenaPool;
;+} NSPR_4.1;
+;+NSPR_4.9.6 {
+;+ global:
+PL_SizeOfArenaPoolExcludingPool;
+;+} NSPR_4.8.5;
EXTRA_LIBS = $(LIBNSPR)
-# On NCR and SCOOS, we can't link with extra libraries when
+# On SCOOS, we can't link with extra libraries when
# we build a shared library. If we do so, the linker doesn't
# complain, but we would run into weird problems at run-time.
# Therefore on these platforms, we link just the .o files.
-ifeq ($(OS_ARCH),NCR)
-EXTRA_LIBS =
-endif
ifeq ($(OS_ARCH),SCOOS)
EXTRA_LIBS =
endif
EXTRA_LIBS = $(LIBNSPR)
-# On NCR and SCOOS, we can't link with extra libraries when
+# On SCOOS, we can't link with extra libraries when
# we build a shared library. If we do so, the linker doesn't
# complain, but we would run into weird problems at run-time.
# Therefore on these platforms, we link just the object files.
-ifeq ($(OS_ARCH),NCR)
- EXTRA_LIBS =
-endif
ifeq ($(OS_ARCH),SCOOS)
EXTRA_LIBS =
endif
# Solaris
ifeq ($(OS_ARCH), SunOS)
-ifneq ($(OS_RELEASE), 4.1.3_U1)
ifdef NS_USE_GCC
LDOPTS += -Xlinker -R -Xlinker $(PWD)/$(dist_libdir)
else
EXTRA_LIBS = -lpthread
endif # USE_PTHREADS
endif # NS_USE_GCC
-endif # 4.1.3_U1
endif # SunOS
-ifeq ($(OS_ARCH), NCR)
-# XXX: We see some strange problems when we link with libnspr.so.
-# So for now we use static libraries on NCR. The shared library
-# stuff below is commented out.
-LIBPR = $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).a
-LIBPRSTRMS = $(dist_libdir)/libprstrms$(MOD_MAJOR_VERSION).a
-EXTRA_LIBS = -lsocket -lnsl -ldl
-
-# NCR needs to link against -lsocket -lnsl (and -lc, which is linked
-# implicitly by $(CC)) again even though we already linked with these
-# system libraries when we built libnspr.so.
-#EXTRA_LIBS = -lsocket -lnsl
-# This hardcodes in the executable programs the directory to find
-# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
-# option for ld on other platforms.
-#export LD_RUN_PATH = $(PWD)/$(dist_libdir)
-endif
-
ifeq ($(OS_ARCH), SCOOS)
# SCO Unix needs to link against -lsocket again even though we
# already linked with these system libraries when we built libnspr.so.
# Solaris
ifeq ($(OS_ARCH), SunOS)
-ifneq ($(OS_RELEASE), 4.1.3_U1)
ifdef NS_USE_GCC
LDOPTS += -Xlinker -R -Xlinker $(PWD)/$(dist_libdir)
else
LDOPTS += -R $(PWD)/$(dist_libdir)
endif
-endif
# SunOS 5.5 needs to link with -lpthread, even though we already
# linked with this system library when we built libnspr.so.
endif
endif # SunOS
-ifeq ($(OS_ARCH), NCR)
-# NCR needs to link against -lsocket -lnsl (and -lc, which is linked
-# implicitly by $(CC)) again even though we already linked with these
-# system libraries when we built libnspr.so.
-EXTRA_LIBS = -lsocket -lnsl
-# This hardcodes in the executable programs the directory to find
-# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
-# option for ld on other platforms.
-export LD_RUN_PATH = $(PWD)/$(dist_libdir)
-endif
-
#####################################################
#
# The rules
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: Makefile.in,v 1.12 2012/03/06 13:13:40 gerv%gerv.net Exp $"
+#ident "$Id$"
#
MOD_DEPTH = ../..
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: Makefile-devl.com,v 1.4 2012/03/06 13:13:40 gerv%gerv.net Exp $"
+#ident "$Id$"
#
MACH = $(shell mach)
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: Makefile-devl.targ,v 1.4 2012/03/06 13:13:40 gerv%gerv.net Exp $"
+#ident "$Id$"
#
include $(srcdir)/../proto64.mk
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: Makefile.com,v 1.9 2012/03/06 13:13:40 gerv%gerv.net Exp $"
+#ident "$Id$"
#
MACH = $(shell mach)
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: Makefile.in,v 1.4 2012/03/06 13:13:40 gerv%gerv.net Exp $"
+#ident "$Id$"
#
MOD_DEPTH = ../..
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: Makefile.targ,v 1.7 2012/03/06 13:13:40 gerv%gerv.net Exp $"
+#ident "$Id$"
#
include $(srcdir)/../proto64.mk
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: Makefile.in,v 1.3 2012/03/06 13:13:41 gerv%gerv.net Exp $"
+#ident "$Id$"
#
MOD_DEPTH = ../../..
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# $Id: depend,v 1.4 2012/03/06 13:13:41 gerv%gerv.net Exp $
+# $Id$
#
# This package information file defines software dependencies associated
# with the pkg. You can define three types of pkg dependencies with this file:
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: pkginfo.tmpl,v 1.4 2012/03/06 13:13:41 gerv%gerv.net Exp $"
+#ident "$Id$"
#
#
# This required package information file describes characteristics of the
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: prototype_com,v 1.5 2012/03/06 13:13:41 gerv%gerv.net Exp $"
+#ident "$Id$"
#
# This required package information file contains a list of package contents.
# The 'pkgmk' command uses this file to identify the contents of a package
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: prototype_i386,v 1.5 2012/03/06 13:13:41 gerv%gerv.net Exp $"
+#ident "$Id$"
#
# This required package information file contains a list of package contents.
# The 'pkgmk' command uses this file to identify the contents of a package
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: prototype_sparc,v 1.5 2012/03/06 13:13:41 gerv%gerv.net Exp $"
+#ident "$Id$"
#
# This required package information file contains a list of package contents.
# The 'pkgmk' command uses this file to identify the contents of a package
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: Makefile.in,v 1.4 2012/03/06 13:13:41 gerv%gerv.net Exp $"
+#ident "$Id$"
#
MOD_DEPTH = ../../..
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# $Id: depend,v 1.4 2012/03/06 13:13:41 gerv%gerv.net Exp $
+# $Id$
#
# This package information file defines software dependencies associated
# with the pkg. You can define three types of pkg dependencies with this file:
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: pkginfo.tmpl,v 1.4 2012/03/06 13:13:41 gerv%gerv.net Exp $"
+#ident "$Id$"
#
#
# This required package information file describes characteristics of the
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: prototype,v 1.7 2012/03/06 13:13:41 gerv%gerv.net Exp $"
+#ident "$Id$"
#
# This required package information file contains a list of package contents.
# The 'pkgmk' command uses this file to identify the contents of a package
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: bld_awk_pkginfo.ksh,v 1.4 2012/03/06 13:13:40 gerv%gerv.net Exp $"
+#ident "$Id$"
#
# Simple script which builds the awk_pkginfo awk script. This awk script
# is used to convert the pkginfo.tmpl files into pkginfo files
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-#ident "$Id: proto64.mk,v 1.4 2012/03/06 13:13:40 gerv%gerv.net Exp $"
+#ident "$Id$"
#
ifeq ($(USE_64), 1)
#endif
#if defined(__sun)
-#if defined(__svr4) || defined(__svr4__) || defined(__SVR4)
#ifndef SOLARIS
error - SOLARIS is not defined
#endif
-#else
-#ifndef SUNOS4
- error - SUNOS4 is not defined
-#endif
-#endif
#endif
#if defined(__hpux)
#endif
#endif
-#if defined(__NeXT__)
-#ifndef NEXTSTEP
- error - NEXTSTEP is not defined
-#endif
-#endif
-
/************************************************************************/
/* Generate cpucfg.h */
#define INT64 long
#endif
#else
-#if defined(HPUX) || defined(NECSVR4) || defined(SCO) || defined(UNIXWARE) || defined (NCR)
+#if defined(HPUX) || defined(SCO) || defined(UNIXWARE)
#define INT64 long
#else
#define INT64 long long
/* Timer operations */
#if defined(AIX_TIMERS)
+#define _MD_INTERVAL_INIT()
+
extern PRIntervalTime _MD_AixGetInterval(void);
#define _MD_GET_INTERVAL _MD_AixGetInterval
#define _MD_INTERVAL_PER_SEC _MD_AixIntervalPerSec
#else /* defined(AIX_TIMERS) */
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_USE_GTOD
#endif /* defined(AIX_TIMERS) */
#ifdef AIX_HAVE_ATOMIC_OP_H
#include <sys/syscall.h>
#define _MD_SELECT(nfds,r,w,e,tv) syscall(SYS_select,nfds,r,w,e,tv)
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_USE_GTOD
#endif /* nspr_bsdi_defs_h___ */
#define _MD_EARLY_INIT _MD_EarlyInit
#define _MD_FINAL_INIT _PR_UnixInit
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_INIT _PR_Mach_IntervalInit
+#define _MD_GET_INTERVAL _PR_Mach_GetInterval
+#define _MD_INTERVAL_PER_SEC _PR_Mach_TicksPerSecond
extern void _MD_EarlyInit(void);
-extern PRIntervalTime _PR_UNIX_GetInterval(void);
-extern PRIntervalTime _PR_UNIX_TicksPerSecond(void);
+extern void _PR_Mach_IntervalInit(void);
+extern PRIntervalTime _PR_Mach_GetInterval(void);
+extern PRIntervalTime _PR_Mach_TicksPerSecond(void);
/*
* We wrapped the select() call. _MD_SELECT refers to the built-in,
* some of them should probably be moved into _unixos.h. But
* _irix.h seems to be quite different in regard to these macros.
*/
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_USE_GTOD
#define _MD_EARLY_INIT _MD_EarlyInit
#define _MD_FINAL_INIT _PR_UnixInit
#endif /* ! _PR_PTHREADS */
extern void _MD_EarlyInit(void);
-extern PRIntervalTime _PR_UNIX_GetInterval(void);
-extern PRIntervalTime _PR_UNIX_TicksPerSecond(void);
#define _MD_EARLY_INIT _MD_EarlyInit
#define _MD_FINAL_INIT _PR_UnixInit
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_USE_GTOD
/*
* We wrapped the select() call. _MD_SELECT refers to the built-in,
#define _MD_GET_INTERVAL _PR_HPUX_LW_GetInterval
#define _MD_INTERVAL_PER_SEC() 1000
#else
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_USE_GTOD
#endif
/*
#elif defined(__x86_64__)
+#ifdef __ILP32__
+
+#define IS_LITTLE_ENDIAN 1
+#undef IS_BIG_ENDIAN
+
+#define PR_BYTES_PER_BYTE 1
+#define PR_BYTES_PER_SHORT 2
+#define PR_BYTES_PER_INT 4
+#define PR_BYTES_PER_INT64 8
+#define PR_BYTES_PER_LONG 4
+#define PR_BYTES_PER_FLOAT 4
+#define PR_BYTES_PER_DOUBLE 8
+#define PR_BYTES_PER_WORD 4
+#define PR_BYTES_PER_DWORD 8
+
+#define PR_BITS_PER_BYTE 8
+#define PR_BITS_PER_SHORT 16
+#define PR_BITS_PER_INT 32
+#define PR_BITS_PER_INT64 64
+#define PR_BITS_PER_LONG 32
+#define PR_BITS_PER_FLOAT 32
+#define PR_BITS_PER_DOUBLE 64
+#define PR_BITS_PER_WORD 32
+
+#define PR_BITS_PER_BYTE_LOG2 3
+#define PR_BITS_PER_SHORT_LOG2 4
+#define PR_BITS_PER_INT_LOG2 5
+#define PR_BITS_PER_INT64_LOG2 6
+#define PR_BITS_PER_LONG_LOG2 5
+#define PR_BITS_PER_FLOAT_LOG2 5
+#define PR_BITS_PER_DOUBLE_LOG2 6
+#define PR_BITS_PER_WORD_LOG2 5
+
+#define PR_ALIGN_OF_SHORT 2
+#define PR_ALIGN_OF_INT 4
+#define PR_ALIGN_OF_LONG 4
+#define PR_ALIGN_OF_INT64 4
+#define PR_ALIGN_OF_FLOAT 4
+#define PR_ALIGN_OF_DOUBLE 4
+#define PR_ALIGN_OF_POINTER 4
+#define PR_ALIGN_OF_WORD 4
+
+#define PR_BYTES_PER_WORD_LOG2 2
+#define PR_BYTES_PER_DWORD_LOG2 3
+
+#else
+
#define IS_LITTLE_ENDIAN 1
#undef IS_BIG_ENDIAN
#define IS_64
#define PR_BYTES_PER_WORD_LOG2 3
#define PR_BYTES_PER_DWORD_LOG2 3
+#endif
+
#elif defined(__mc68000__)
#undef IS_LITTLE_ENDIAN
#define PR_BYTES_PER_WORD_LOG2 2
#define PR_BYTES_PER_DWORD_LOG2 3
+#elif defined(__aarch64__)
+
+#ifdef __AARCH64EB__
+#undef IS_LITTLE_ENDIAN
+#define IS_BIG_ENDIAN 1
+#elif defined(__AARCH64EL__)
+#define IS_LITTLE_ENDIAN 1
+#undef IS_BIG_ENDIAN
+#else
+#error "Unknown Aarch64 endianness."
+#endif
+#define IS_64
+
+#define PR_BYTES_PER_BYTE 1
+#define PR_BYTES_PER_SHORT 2
+#define PR_BYTES_PER_INT 4
+#define PR_BYTES_PER_INT64 8
+#define PR_BYTES_PER_LONG 8
+#define PR_BYTES_PER_FLOAT 4
+#define PR_BYTES_PER_DOUBLE 8
+#define PR_BYTES_PER_WORD 8
+#define PR_BYTES_PER_DWORD 8
+
+#define PR_BITS_PER_BYTE 8
+#define PR_BITS_PER_SHORT 16
+#define PR_BITS_PER_INT 32
+#define PR_BITS_PER_INT64 64
+#define PR_BITS_PER_LONG 64
+#define PR_BITS_PER_FLOAT 32
+#define PR_BITS_PER_DOUBLE 64
+#define PR_BITS_PER_WORD 64
+
+#define PR_BITS_PER_BYTE_LOG2 3
+#define PR_BITS_PER_SHORT_LOG2 4
+#define PR_BITS_PER_INT_LOG2 5
+#define PR_BITS_PER_INT64_LOG2 6
+#define PR_BITS_PER_LONG_LOG2 6
+#define PR_BITS_PER_FLOAT_LOG2 5
+#define PR_BITS_PER_DOUBLE_LOG2 6
+#define PR_BITS_PER_WORD_LOG2 6
+
+#define PR_ALIGN_OF_SHORT 2
+#define PR_ALIGN_OF_INT 4
+#define PR_ALIGN_OF_LONG 8
+#define PR_ALIGN_OF_INT64 8
+#define PR_ALIGN_OF_FLOAT 4
+#define PR_ALIGN_OF_DOUBLE 8
+#define PR_ALIGN_OF_POINTER 8
+#define PR_ALIGN_OF_WORD 8
+
+#define PR_BYTES_PER_WORD_LOG2 3
+#define PR_BYTES_PER_DWORD_LOG2 3
+
#elif defined(__hppa__)
#undef IS_LITTLE_ENDIAN
#define _PR_SI_ARCHITECTURE "mips"
#elif defined(__arm__)
#define _PR_SI_ARCHITECTURE "arm"
+#elif defined(__aarch64__)
+#define _PR_SI_ARCHITECTURE "aarch64"
#elif defined(__hppa__)
#define _PR_SI_ARCHITECTURE "hppa"
#elif defined(__s390x__)
#define _MD_DEFAULT_STACK_SIZE 65536L
#define _MD_MMAP_FLAGS MAP_PRIVATE
+#if defined(__aarch64__)
+#define _MD_MINIMUM_STACK_SIZE 0x20000
+#endif
+
#undef HAVE_STACK_GROWING_UP
/*
})
#endif
-#if defined(__arm__)
+#if defined(__arm__) || defined(__aarch64__)
#if defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)
/* Use GCC built-in functions */
#define _PR_HAVE_ATOMIC_OPS
#endif /* ! _PR_PTHREADS */
extern void _MD_EarlyInit(void);
-extern PRIntervalTime _PR_UNIX_GetInterval(void);
-extern PRIntervalTime _PR_UNIX_TicksPerSecond(void);
#define _MD_EARLY_INIT _MD_EarlyInit
#define _MD_FINAL_INIT _PR_UnixInit
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define HAVE_CLOCK_MONOTONIC
/*
* We wrapped the select() call. _MD_SELECT refers to the built-in,
#endif /* ! _PR_PTHREADS */
extern void _MD_EarlyInit(void);
-extern PRIntervalTime _PR_UNIX_GetInterval(void);
-extern PRIntervalTime _PR_UNIX_TicksPerSecond(void);
#define _MD_EARLY_INIT _MD_EarlyInit
#define _MD_FINAL_INIT _PR_UnixInit
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_USE_GTOD
/*
* We wrapped the select() call. _MD_SELECT refers to the built-in,
#define _MD_IOQ_LOCK()
#define _MD_IOQ_UNLOCK()
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_USE_GTOD
#define _MD_EARLY_INIT _MD_EarlyInit
#define _MD_FINAL_INIT _PR_UnixInit
#define _MD_INIT_RUNNING_CPU(cpu) _MD_unix_init_running_cpu(cpu)
#define _MD_EARLY_INIT _MD_EarlyInit
#define _MD_FINAL_INIT _PR_UnixInit
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_USE_GTOD
/*
* We wrapped the select() call. _MD_SELECT refers to the built-in,
* some of them should probably be moved into _unixos.h. But
* _irix.h seems to be quite different in regard to these macros.
*/
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_USE_GTOD
#define _MD_EARLY_INIT _MD_EarlyInit
#define _MD_FINAL_INIT _PR_UnixInit
#define _MD_IOQ_LOCK()
#define _MD_IOQ_UNLOCK()
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_USE_GTOD
#define _MD_EARLY_INIT _MD_EarlyInit
#define _MD_FINAL_INIT _PR_UnixInit
#define _MD_INIT_RUNNING_CPU(cpu) _MD_unix_init_running_cpu(cpu)
#define _MD_IOQ_LOCK()
#define _MD_IOQ_UNLOCK()
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_USE_GTOD
#define _MD_EARLY_INIT _MD_EarlyInit
#define _MD_FINAL_INIT _PR_UnixInit
#define _MD_INIT_RUNNING_CPU(cpu) _MD_unix_init_running_cpu(cpu)
#define _MD_RESUME_THREAD(thread)
#define _MD_CLEAN_THREAD(_thread)
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_USE_GTOD
#define _MD_SELECT _select
#define _MD_POLL _poll
#endif
#include "prinrval.h"
+#define _MD_INTERVAL_INIT()
NSPR_API(PRIntervalTime) _MD_Solaris_GetInterval(void);
#define _MD_GET_INTERVAL _MD_Solaris_GetInterval
NSPR_API(PRIntervalTime) _MD_Solaris_TicksPerSecond(void);
struct _MDCPU_Unix md_unix;
};
-#ifndef _PR_PTHREADS
#define _MD_INIT_LOCKS()
-#endif
#define _MD_NEW_LOCK(lock) PR_SUCCESS
#define _MD_FREE_LOCK(lock)
#define _MD_LOCK(lock)
PRThreadPriority priority, PRThreadScope scope, PRThreadState state,
PRUint32 stackSize);
-NSPR_API(PRIntervalTime) _MD_Solaris_GetInterval(void);
-#define _MD_GET_INTERVAL _MD_Solaris_GetInterval
-NSPR_API(PRIntervalTime) _MD_Solaris_TicksPerSecond(void);
-#define _MD_INTERVAL_PER_SEC _MD_Solaris_TicksPerSecond
-
/* The following defines the unwrapped versions of select() and poll(). */
extern int _select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval *timeout);
#endif
extern void _MD_EarlyInit(void);
-extern PRIntervalTime _PR_UNIX_GetInterval(void);
-extern PRIntervalTime _PR_UNIX_TicksPerSecond(void);
#define _MD_EARLY_INIT _MD_EarlyInit
#define _MD_FINAL_INIT _PR_UnixInit
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_USE_GTOD
/* For writev() */
#include <sys/uio.h>
* not be redefined.
*/
#if !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__) \
- && !defined(DARWIN) && !defined(NEXTSTEP)
+ && !defined(DARWIN)
#ifndef FD_SETSIZE
#define FD_SETSIZE 4096
#endif
#define PROT_NONE 0x0
#endif
-#if defined(DEBUG) && !defined(DARWIN) && !defined(NEXTSTEP)
+#if defined(DEBUG) && !defined(DARWIN)
#if !defined(SOLARIS)
#include <string.h> /* for memset() */
#define _MD_INIT_STACK(ts,REDZONE) \
/************************************************************************/
-#if !defined(HPUX_LW_TIMER)
+#ifdef _MD_INTERVAL_USE_GTOD
+extern PRIntervalTime _PR_UNIX_GetInterval(void);
+extern PRIntervalTime _PR_UNIX_TicksPerSecond(void);
#define _MD_INTERVAL_INIT()
+#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
+#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
#endif
+
+#ifdef HAVE_CLOCK_MONOTONIC
+extern PRIntervalTime _PR_UNIX_GetInterval2(void);
+extern PRIntervalTime _PR_UNIX_TicksPerSecond2(void);
+#define _MD_INTERVAL_INIT()
+#define _MD_GET_INTERVAL _PR_UNIX_GetInterval2
+#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond2
+#endif
+
#define _MD_INTERVAL_PER_MILLISEC() (_PR_MD_INTERVAL_PER_SEC() / 1000)
#define _MD_INTERVAL_PER_MICROSEC() (_PR_MD_INTERVAL_PER_SEC() / 1000000)
* some of them should probably be moved into _unixos.h. But
* _irix.h seems to be quite different in regard to these macros.
*/
-#define _MD_GET_INTERVAL _PR_UNIX_GetInterval
-#define _MD_INTERVAL_PER_SEC _PR_UNIX_TicksPerSecond
+#define _MD_INTERVAL_USE_GTOD
#define _MD_EARLY_INIT _MD_EarlyInit
#define _MD_FINAL_INIT _PR_UnixInit
#define WIN32
#endif
-#ifdef _WIN32_WCE
-#ifndef WINCE
-#define WINCE
-#endif
-#else
#ifndef WIN95
#define WIN95
#endif
-#endif
#define PR_AF_INET6 23 /* same as AF_INET6 */
#define PR_ALIGN_OF_FLOAT 4
#define PR_ALIGN_OF_WORD 4
#define PR_ALIGN_OF_DWORD 8
-#define PR_ALIGN_OF_DOUBLE 4
+#define PR_ALIGN_OF_DOUBLE 8
#define PR_ALIGN_OF_POINTER 4
#define PR_BYTES_PER_WORD_LOG2 2
#define _MD_UNLOCKFILE _PR_MD_UNLOCKFILE
/* --- UTF16 IO stuff --- */
-extern PRBool _pr_useUnicode;
#ifdef MOZ_UNICODE
#define _MD_OPEN_FILE_UTF16 _PR_MD_OPEN_FILE_UTF16
#define _MD_OPEN_DIR_UTF16 _PR_MD_OPEN_DIR_UTF16
/* --- Lock stuff --- */
#define _PR_LOCK _MD_LOCK
-#define _PR_UNLOCK _MD_UNLOCK
+#define _PR_UNLOCK _MD_UNLOCK
-#define _MD_NEW_LOCK(lock) (InitializeCriticalSection(&((lock)->mutex)),(lock)->notified.length=0,(lock)->notified.link=NULL,PR_SUCCESS)
+#define _MD_NEW_LOCK _PR_MD_NEW_LOCK
#define _MD_FREE_LOCK(lock) DeleteCriticalSection(&((lock)->mutex))
#define _MD_LOCK(lock) EnterCriticalSection(&((lock)->mutex))
#define _MD_TEST_AND_LOCK(lock) (EnterCriticalSection(&((lock)->mutex)),0)
#define _PR_UnlockSched() 0
/* --- Initialization stuff --- */
-#define _MD_INIT_LOCKS()
+#define _MD_INIT_LOCKS _PR_MD_INIT_LOCKS
/* --- Stack stuff --- */
#define _MD_INIT_STACK(stack, redzone)
#elif defined(DARWIN)
#include "md/_darwin.h"
-#elif defined(NEXTSTEP)
-#include "md/_nextstep.h"
-
#elif defined(SOLARIS)
#include "md/_solaris.h"
-#elif defined(SUNOS4)
-#include "md/_sunos4.h"
-
-#elif defined(SNI)
-#include "md/_reliantunix.h"
-
-#elif defined(SONY)
-#include "md/_sony.h"
-
-#elif defined(NEC)
-#include "md/_nec.h"
-
#elif defined(SCO)
#include "md/_scoos.h"
#elif defined(UNIXWARE)
#include "md/_unixware.h"
-#elif defined(NCR)
-#include "md/_ncr.h"
-
#elif defined(DGUX)
#include "md/_dgux.h"
#include "prtypes.h"
PR_BEGIN_EXTERN_C
-/* replace compare/jump/add/shift sequence with x86 BSF/BSR instruction */
-#if defined(_WIN32) && (_MSC_VER >= 1300) && (defined(_M_IX86) || defined(_M_AMD64))
+/*
+** Replace compare/jump/add/shift sequence with compiler built-in/intrinsic
+** functions.
+*/
+#if defined(_WIN32) && (_MSC_VER >= 1300) && \
+ (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_ARM))
unsigned char _BitScanForward(unsigned long * Index, unsigned long Mask);
unsigned char _BitScanReverse(unsigned long * Index, unsigned long Mask);
# pragma intrinsic(_BitScanForward,_BitScanReverse)
*/
#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || \
- defined(_M_X64))
+ defined(_M_X64) || defined(_M_ARM))
#include <stdlib.h>
#pragma intrinsic(_rotl, _rotr)
#define PR_ROTATE_LEFT32(a, bits) _rotl(a, bits)
** The format of the version string is
** "<major version>.<minor version>[.<patch level>] [<Beta>]"
*/
-#define PR_VERSION "4.9.2"
+#define PR_VERSION "4.10"
#define PR_VMAJOR 4
-#define PR_VMINOR 9
-#define PR_VPATCH 2
+#define PR_VMINOR 10
+#define PR_VPATCH 0
#define PR_BETA PR_FALSE
/*
#include <sys/sem.h>
#endif
+#ifdef HAVE_SYSCALL
+#include <sys/syscall.h>
+#endif
+
/*************************************************************************
***** A Word about Model Dependent Function Naming Convention ***********
*************************************************************************/
NSPR_API(void) PT_FPrintStats(PRFileDesc *fd, const char *msg);
+/*
+ * On Linux and its derivatives POSIX priority scheduling works only for
+ * real-time threads. On those platforms we set thread's nice values
+ * instead which requires us to track kernel thread IDs for each POSIX
+ * thread we create.
+ */
+#if defined(LINUX) && defined(HAVE_SETPRIORITY) && \
+ ((defined(HAVE_SYSCALL) && defined(SYS_gettid)) || defined(HAVE_GETTID))
+#define _PR_NICE_PRIORITY_SCHEDULING
+#endif
+
#else /* defined(_PR_PTHREADS) */
NSPR_API(void) PT_FPrintStats(PRFileDesc *fd, const char *msg);
#if defined(_PR_PTHREADS)
pthread_t id; /* pthread identifier for the thread */
+#ifdef _PR_NICE_PRIORITY_SCHEDULING
+ pid_t tid; /* Linux-specific kernel thread ID */
+#endif
PRBool okToDelete; /* ok to delete the PRThread struct? */
PRCondVar *waiting; /* where the thread is waiting | NULL */
void *sp; /* recorded sp for garbage collection */
&& !defined(_PR_PTHREADS) && !defined(_PR_GLOBAL_THREADS_ONLY) \
&& !defined(PURIFY) \
&& !defined(DARWIN) \
- && !defined(NEXTSTEP) \
&& !defined(QNX) \
&& !(defined (UNIXWARE) && defined (USE_SVR4_THREADS))
#define _PR_OVERRIDE_MALLOC
#if defined(HAVE_LONG_LONG)
/* Keep this in sync with prtypes.h. */
-#if PR_BYTES_PER_LONG == 8 && !defined(__APPLE__)
+#if PR_BYTES_PER_LONG == 8 && !defined(PR_ALTERNATE_INT64_TYPEDEF)
#define LL_MAXINT 9223372036854775807L
#define LL_MININT (-LL_MAXINT - 1L)
#define LL_ZERO 0L
/*
** Change the priority of the "thread" to "priority".
+**
+** PR_SetThreadPriority works in a best-effort manner. On some platforms a
+** special privilege, such as root access, is required to change thread
+** priorities, especially to raise thread priorities. If the caller doesn't
+** have enough privileges to change thread priorites, the function has no
+** effect except causing a future PR_GetThreadPriority call to return
+** |priority|.
*/
NSPR_API(void) PR_SetThreadPriority(PRThread *thread, PRThreadPriority priority);
PRBool default_to_gmt,
PRTime *result);
-/*
- * FIXME: should we also have a formatting function, such as asctime, ctime,
- * and strftime in standard C library? But this would involve
- * internationalization issues. Might want to provide a US English version.
- */
-
-/**********************************************************************/
-/*********************** OLD COMPATIBILITYFUNCTIONS *******************/
-/**********************************************************************/
-#ifndef NO_NSPR_10_SUPPORT
-
/* Format a time value into a buffer. Same semantics as strftime() */
NSPR_API(PRUint32) PR_FormatTime(char *buf, int buflen, const char *fmt,
const PRExplodedTime *tm);
PR_FormatTimeUSEnglish( char* buf, PRUint32 bufSize,
const char* format, const PRExplodedTime* tm );
-#endif /* NO_NSPR_10_SUPPORT */
-
PR_END_EXTERN_C
#endif /* prtime_h___ */
PR_BEGIN_EXTERN_C
+/*
+** Starting in NSPR 4.9.5, NSPR's exact-width integer types should match
+** the exact-width integer types defined in <stdint.h>. This allows sloppy
+** code to use PRInt{N} and int{N}_t interchangeably.
+**
+** The 8-bit and 16-bit integer types can only be defined using char and
+** short. All platforms define the 32-bit integer types using int. So only
+** the 64-bit integer types could be defined differently.
+**
+** NSPR's original strategy was to use the "shortest" 64-bit integer type:
+** if long is 64-bit, then prefer it over long long. This strategy is also
+** used by Linux/glibc, FreeBSD, and NetBSD.
+**
+** Other platforms use a different strategy: simply define the 64-bit
+** integer types using long long. We define the PR_ALTERNATE_INT64_TYPEDEF
+** macro on these platforms. Note that PR_ALTERNATE_INT64_TYPEDEF is for
+** internal use by NSPR headers only. Do not define or test this macro in
+** your code.
+**
+** NOTE: NSPR can't use <stdint.h> because C99 requires C++ code to define
+** __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS to make all the macros
+** defined in <stdint.h> available. This strange requirement is gone in
+** C11. When most platforms ignore this C99 requirement, NSPR will be able
+** to use <stdint.h>. A patch to do that is in NSPR bug 634793.
+*/
+
+#if defined(__APPLE__) || defined(__ANDROID__) || defined(__OpenBSD__)
+#define PR_ALTERNATE_INT64_TYPEDEF
+#endif
+
/************************************************************************
** TYPES: PRUint8
** PRInt8
************************************************************************/
#ifdef HAVE_LONG_LONG
/* Keep this in sync with prlong.h. */
-/*
- * On 64-bit Mac OS X, uint64 needs to be defined as unsigned long long to
- * match uint64_t, otherwise our uint64 typedef conflicts with the uint64
- * typedef in cssmconfig.h, which CoreServices.h includes indirectly.
- */
-#if PR_BYTES_PER_LONG == 8 && !defined(__APPLE__)
+#if PR_BYTES_PER_LONG == 8 && !defined(PR_ALTERNATE_INT64_TYPEDEF)
typedef long PRInt64;
typedef unsigned long PRUint64;
#define PR_INT64(x) x ## L
#
ifeq ($(OS_ARCH),SunOS)
-ifeq ($(OS_RELEASE),4.1.3_U1)
-OS_LIBS = -lm
-else # 4.1.3_U1
MAPFILE = $(OBJDIR)/nsprmap.sun
GARBAGE += $(MAPFILE)
ifdef NS_USE_GCC
DSO_LDOPTS += -Wl,-f,\$$ORIGIN/cpu/\$$ISALIST/lib$(ULTRASPARC_LIBRARY)$(LIBRARY_VERSION).so
endif
endif # sparc
-endif # 4.1.3_U1
endif # SunOS
ifeq ($(OS_ARCH), IRIX)
endif
endif
-ifeq ($(OS_ARCH),Linux)
+# Linux, GNU/Hurd, and GNU/kFreeBSD systems
+ifneq (,$(filter Linux GNU%,$(OS_ARCH)))
ifeq ($(USE_PTHREADS), 1)
ifeq ($(OS_TARGET),Android)
# Android has no libpthread.so in NDK
else
OS_LIBS = -ldl
endif
+ifneq ($(OS_TARGET),Android)
+# Android has no librt - realtime functions are in libc
+OS_LIBS += -lrt
+endif
endif
ifeq ($(OS_ARCH),HP-UX)
OS_LIBS = -lsocket -lc
endif
-ifeq ($(OS_ARCH),NEWS-OS)
-OS_LIBS = -lsocket -lnsl -lgen -lresolv
-endif
-
ifeq ($(OS_ARCH),WINNT)
ifdef NS_USE_GCC
OS_LIBS = -ladvapi32 -lwsock32 -lwinmm
# Solaris
ifeq ($(OS_ARCH), SunOS)
- ifneq ($(OS_RELEASE), 4.1.3_U1)
- ifdef NS_USE_GCC
- LDOPTS += -Xlinker -R -Xlinker $(PWD)/$(dist_libdir)
- else
- LDOPTS += -R $(PWD)/$(dist_libdir)
- endif
+ ifdef NS_USE_GCC
+ LDOPTS += -Xlinker -R -Xlinker $(PWD)/$(dist_libdir)
+ else
+ LDOPTS += -R $(PWD)/$(dist_libdir)
endif
# SunOS 5.5 needs to link with -lpthread, even though we already
endif
endif
-ifeq ($(OS_ARCH), NCR)
-# XXX: We see some strange problems when we link with libnspr.so.
-# So for now we use static libraries on NCR. The shared library
-# stuff below is commented out.
-LIBPR = $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).a
-LIBPL = $(dist_libdir)/libplc$(MOD_MAJOR_VERSION).a
-EXTRA_LIBS = -lsocket -lnsl -ldl
-
-# NCR needs to link against -lsocket -lnsl (and -lc, which is linked
-# implicitly by $(CC)) again even though we already linked with these
-# system libraries when we built libnspr.so.
-#EXTRA_LIBS = -lsocket -lnsl
-# This hardcodes in the executable programs the directory to find
-# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
-# option for ld on other platforms.
-#export LD_RUN_PATH = $(PWD)/$(dist_libdir)
-endif
-
ifeq ($(OS_ARCH), SCO_SV)
# SCO Unix needs to link against -lsocket again even though we
# already linked with these system libraries when we built libnspr.so.
include $(topsrcdir)/config/config.mk
-# Disable optimization of the nspr on SunOS4.1.3
-ifeq ($(OS_ARCH),SunOS)
-ifeq ($(OS_RELEASE),4.1.3_U1)
-OPTIMIZER =
-endif
-endif
-
CSRCS = \
prfdcach.c \
prmwait.c \
PR_IMPLEMENT(PRInt32) PR_GetSysfdTableMax(void)
{
-#if defined(XP_UNIX) && !defined(AIX) && !defined(NEXTSTEP) && !defined(QNX)
+#if defined(XP_UNIX) && !defined(AIX) && !defined(QNX)
struct rlimit rlim;
if ( getrlimit(RLIMIT_NOFILE, &rlim) < 0) {
}
return rlim.rlim_max;
-#elif defined(AIX) || defined(NEXTSTEP) || defined(QNX)
+#elif defined(AIX) || defined(QNX)
return sysconf(_SC_OPEN_MAX);
#elif defined(WIN32)
/*
PR_IMPLEMENT(PRInt32) PR_SetSysfdTableSize(int table_size)
{
-#if defined(XP_UNIX) && !defined(AIX) && !defined(NEXTSTEP) && !defined(QNX)
+#if defined(XP_UNIX) && !defined(AIX) && !defined(QNX)
struct rlimit rlim;
PRInt32 tableMax = PR_GetSysfdTableMax();
return -1;
}
return tableMax;
-#elif defined(AIX) || defined(NEXTSTEP) || defined(QNX) \
+#elif defined(AIX) || defined(QNX) \
|| defined(WIN32) || defined(WIN16) || defined(XP_BEOS)
PR_SetError(PR_NOT_IMPLEMENTED_ERROR, 0);
return -1;
*stack = *fd;
*fd = copy;
fd->higher = stack;
+ if (fd->lower)
+ {
+ PR_ASSERT(fd->lower->higher == stack);
+ fd->lower->higher = fd;
+ }
stack->lower = fd;
stack->higher = NULL;
} else {
*stack = *extract;
*extract = copy;
stack->higher = NULL;
+ if (stack->lower) {
+ PR_ASSERT(stack->lower->higher == extract);
+ stack->lower->higher = stack;
+ }
} else if ((PR_IO_LAYER_HEAD == stack->identity) &&
(extract == stack->lower) && (extract->lower == NULL)) {
/*
#include "primpl.h"
-#if defined(NEXTSTEP)
-/* NEXTSTEP is special: this must come before netinet/tcp.h. */
-#include <netinet/in_systm.h> /* n_short, n_long, n_time */
-#endif
-
#ifdef HAVE_NETINET_TCP_H
#include <netinet/tcp.h> /* TCP_NODELAY, TCP_MAXSEG */
#endif
#error "SO_LINGER is not defined"
#endif
-/*
- * Some platforms, such as NCR 2.03, don't have TCP_NODELAY defined
- * in <netinet/tcp.h>
- */
-#if !defined(NCR)
#if !defined(TCP_NODELAY)
#error "TCP_NODELAY is not defined"
#endif
-#endif
/*
* Make sure the value of _PR_NO_SUCH_SOCKOPT is not
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
-#ifdef SUNOS4
-#include "md/sunos4.h" /* for strtoul */
-#endif
#include "prprf.h"
#include "prdtoa.h"
#include "prlog.h"
#elif defined(WIN32) || defined(WIN16)
-#if defined(WIN32)
- /*
- * The sleep circumvents a bug in Win32 WinSock.
- * See Microsoft Knowledge Base article ID: Q165989.
- */
- Sleep(0);
-#endif /* WIN32 */
-
if (out_flags & PR_POLL_EXCEPT) {
int len = sizeof(err);
if (getsockopt(osfd, (int)SOL_SOCKET, SO_ERROR, (char *) &err, &len)
include $(topsrcdir)/config/config.mk
-# Disable optimization of the nspr on SunOS4.1.3
-ifeq ($(OS_ARCH),SunOS)
-ifeq ($(OS_RELEASE),4.1.3_U1)
-OPTIMIZER =
-endif
-endif
-
CSRCS = \
prlink.c \
$(NULL)
/*
* On these platforms, symbols have a leading '_'.
*/
-#if defined(SUNOS4) || (defined(DARWIN) && defined(USE_MACH_DYLD)) \
- || defined(NEXTSTEP) || defined(XP_OS2) \
+#if (defined(DARWIN) && defined(USE_MACH_DYLD)) \
+ || defined(XP_OS2) \
|| ((defined(OPENBSD) || defined(NETBSD)) && !defined(__ELF__))
#define NEED_LEADING_UNDERSCORE
#endif
int result = 0;
PRStatus status = PR_SUCCESS;
- if ((lib == 0) || (lib->refCount <= 0)) {
+ if (lib == 0) {
PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0);
return PR_FAILURE;
}
PR_EnterMonitor(pr_linker_lock);
+
+ if (lib->refCount <= 0) {
+ PR_ExitMonitor(pr_linker_lock);
+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0);
+ return PR_FAILURE;
+ }
+
if (--lib->refCount > 0) {
PR_LOG(_pr_linker_lm, PR_LOG_MIN,
("%s decr => %d",
include $(topsrcdir)/config/config.mk
-# Disable optimization of the nspr on SunOS4.1.3
-ifeq ($(OS_ARCH),SunOS)
-ifeq ($(OS_RELEASE),4.1.3_U1)
-OPTIMIZER =
-endif
-endif
-
TARGETS = $(OBJS)
INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
PR_SetError(PR_INVALID_ARGUMENT_ERROR, err);
break;
case EIO:
-#if defined(UNIXWARE) || defined(SNI) || defined(NEC)
+#if defined(UNIXWARE)
/*
* On some platforms, if we connect to a port on
* the local host (the loopback address) that no
#ifdef XP_UNIX
#include <unistd.h>
#endif
-#ifdef SUNOS4
-#include "md/sunos4.h"
-#endif
#ifdef _WIN32
#include <windows.h>
#endif
/* Get page size */
#ifdef XP_UNIX
-#if defined SUNOS4 || defined BSDI || defined AIX \
+#if defined BSDI || defined AIX \
|| defined LINUX || defined __GNU__ || defined __GLIBC__ \
|| defined FREEBSD || defined NETBSD || defined OPENBSD \
- || defined DARWIN || defined NEXTSTEP || defined SYMBIAN
+ || defined DARWIN || defined SYMBIAN
_pr_pageSize = getpagesize();
#elif defined(HPUX)
/* I have no idea. Don't get me started. --Rob */
TARGETS = $(OBJS)
ifeq ($(OS_ARCH),SunOS)
- ifneq ($(OS_RELEASE),4.1.3_U1)
- ifeq ($(CPU_ARCH),sparc)
+ ifeq ($(CPU_ARCH),sparc)
ifdef USE_64
ULTRASPARC_ASFILES = os_SunOS_sparcv9.s
ULTRASPARC_ASOBJS = $(addprefix $(OBJDIR)/,$(ULTRASPARC_ASFILES:.s=.$(OBJ_SUFFIX)))
RELEASE_LIBS_DEST = $(RELEASE_LIB_DIR)/cpu/sparcv8plus
lib_subdir = cpu/sparcv8plus
endif
- endif
endif
endif
export:: $(TARGETS)
ifeq ($(OS_ARCH),SunOS)
-ifneq ($(OS_RELEASE),4.1.3_U1)
ifeq ($(CPU_ARCH),sparc)
ifdef USE_64
endif
endif
-endif
#include "primpl.h"
+#include <mach/mach_time.h>
+
void _MD_EarlyInit(void)
{
}
+/*
+ * The multiplier (as a fraction) for converting the Mach absolute time
+ * unit to nanoseconds.
+ */
+static mach_timebase_info_data_t machTimebaseInfo;
+
+void _PR_Mach_IntervalInit(void)
+{
+ kern_return_t rv;
+
+ rv = mach_timebase_info(&machTimebaseInfo);
+ PR_ASSERT(rv == KERN_SUCCESS);
+}
+
+PRIntervalTime _PR_Mach_GetInterval(void)
+{
+ uint64_t time;
+
+ /*
+ * mach_absolute_time returns the time in the Mach absolute time unit.
+ * Convert it to milliseconds. See Mac Technical Q&A QA1398.
+ */
+ time = mach_absolute_time();
+ time = time * machTimebaseInfo.numer / machTimebaseInfo.denom /
+ PR_NSEC_PER_MSEC;
+ return (PRIntervalTime)time;
+} /* _PR_Mach_GetInterval */
+
+PRIntervalTime _PR_Mach_TicksPerSecond(void)
+{
+ return 1000;
+}
+
PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np)
{
#if !defined(_PR_PTHREADS)
#endif
/* To get FIONREAD */
-#if defined(NCR) || defined(UNIXWARE) || defined(NEC) || defined(SNI) \
- || defined(SONY)
+#if defined(UNIXWARE)
#include <sys/filio.h>
#endif
|| (defined(__GLIBC__) && __GLIBC__ >= 2)
#define _PRSockLen_t socklen_t
#elif defined(IRIX) || defined(HPUX) || defined(OSF1) || defined(SOLARIS) \
- || defined(AIX4_1) || defined(LINUX) || defined(SONY) \
- || defined(BSDI) || defined(SCO) || defined(NEC) || defined(SNI) \
- || defined(SUNOS4) || defined(NCR) || defined(DARWIN) \
- || defined(NEXTSTEP) || defined(QNX)
+ || defined(AIX4_1) || defined(LINUX) \
+ || defined(BSDI) || defined(SCO) \
+ || defined(DARWIN) \
+ || defined(QNX)
#define _PRSockLen_t int
#elif (defined(AIX) && !defined(AIX4_1)) || defined(FREEBSD) \
|| defined(NETBSD) || defined(OPENBSD) || defined(UNIXWARE) \
* from socketpairs. As long as we don't use flags on socketpairs, this
* is a decent fix. - mikep
*/
-#if defined(UNIXWARE) || defined(SOLARIS) || defined(NCR)
+#if defined(UNIXWARE) || defined(SOLARIS)
while ((rv = read(osfd,buf,amount)) == -1) {
#else
while ((rv = recv(osfd,buf,amount,flags)) == -1) {
* otherwise connect() still blocks and can be interrupted by SIGALRM.
*/
-#ifdef SUNOS4
- fcntl(osfd, F_SETFL, flags | FNDELAY);
-#else
fcntl(osfd, F_SETFL, flags | O_NONBLOCK);
-#endif
}
PRInt32 _MD_open(const char *name, PRIntn flags, PRIntn mode)
return s;
}
+#if defined(_MD_INTERVAL_USE_GTOD)
+/*
+ * This version of interval times is based on the time of day
+ * capability offered by the system. This isn't valid for two reasons:
+ * 1) The time of day is neither linear nor montonically increasing
+ * 2) The units here are milliseconds. That's not appropriate for our use.
+ */
PRIntervalTime _PR_UNIX_GetInterval()
{
struct timeval time;
ticks = (PRUint32)time.tv_sec * PR_MSEC_PER_SEC; /* that's in milliseconds */
ticks += (PRUint32)time.tv_usec / PR_USEC_PER_MSEC; /* so's that */
return ticks;
-} /* _PR_SUNOS_GetInterval */
+} /* _PR_UNIX_GetInterval */
PRIntervalTime _PR_UNIX_TicksPerSecond()
{
return 1000; /* this needs some work :) */
}
+#endif
+
+#if defined(HAVE_CLOCK_MONOTONIC)
+PRIntervalTime _PR_UNIX_GetInterval2()
+{
+ struct timespec time;
+ PRIntervalTime ticks;
+
+ if (clock_gettime(CLOCK_MONOTONIC, &time) != 0) {
+ fprintf(stderr, "clock_gettime failed: %d\n", errno);
+ abort();
+ }
+
+ ticks = (PRUint32)time.tv_sec * PR_MSEC_PER_SEC;
+ ticks += (PRUint32)time.tv_nsec / PR_NSEC_PER_MSEC;
+ return ticks;
+}
+
+PRIntervalTime _PR_UNIX_TicksPerSecond2()
+{
+ return 1000;
+}
+#endif
#if !defined(_PR_PTHREADS)
/*
} else {
return ECONNREFUSED;
}
-#elif defined(NCR) || defined(UNIXWARE) || defined(SNI) || defined(NEC)
+#elif defined(UNIXWARE)
/*
* getsockopt() fails with EPIPE, so use getmsg() instead.
*/
case EACCES:
prError = PR_ADDRESS_NOT_SUPPORTED_ERROR;
break;
-#if defined(UNIXWARE) || defined(SNI) || defined(NEC)
+#if defined(UNIXWARE)
/*
* On some platforms, if we connect to a port on the local host
* (the loopback address) that no process is listening on, we get
int rv;
int flags;
#endif
-#ifdef SUNOS4
-#define _PR_NBIO_FLAG FNDELAY
-#else
-#define _PR_NBIO_FLAG O_NONBLOCK
-#endif
#ifdef AIX
{
rv = pipe(pr_wp.pipefd);
PR_ASSERT(0 == rv);
flags = fcntl(pr_wp.pipefd[0], F_GETFL, 0);
- fcntl(pr_wp.pipefd[0], F_SETFL, flags | _PR_NBIO_FLAG);
+ fcntl(pr_wp.pipefd[0], F_SETFL, flags | O_NONBLOCK);
flags = fcntl(pr_wp.pipefd[1], F_GETFL, 0);
- fcntl(pr_wp.pipefd[1], F_SETFL, flags | _PR_NBIO_FLAG);
+ fcntl(pr_wp.pipefd[1], F_SETFL, flags | O_NONBLOCK);
#ifndef _PR_SHARE_CLONES
pr_InstallSigchldHandler();
return 0;
}
\f
-#elif defined(SUNOS4)
-
-static size_t
-GetHighResClock(void *buf, size_t maxbytes)
-{
- return 0;
-}
-\f
#elif defined(HPUX)
#ifdef __ia64
return(GetDevURandom( buf, maxbytes ));
}
\f
-#elif defined(NCR)
-
-static size_t
-GetHighResClock(void *buf, size_t maxbytes)
-{
- return 0;
-}
-\f
#elif defined(IRIX)
#include <fcntl.h>
#undef PRIVATE
return _pr_CopyLowBits(buf, maxbuf, &s0, cntr_size);
}
\f
-#elif defined(SONY)
-
-static size_t
-GetHighResClock(void *buf, size_t maxbytes)
-{
- return 0;
-}
-\f
-#elif defined(SNI)
-#include <sys/times.h>
-
-static size_t
-GetHighResClock(void *buf, size_t maxbytes)
-{
- int ticks;
- struct tms buffer;
-
- ticks=times(&buffer);
- return _pr_CopyLowBits(buf, maxbytes, &ticks, sizeof(ticks));
-}
-\f
-#elif defined(NEC)
-
-static size_t
-GetHighResClock(void *buf, size_t maxbytes)
-{
- return 0;
-}
#elif defined(SCO) || defined(UNIXWARE) || defined(BSDI) || defined(NTO) \
|| defined(QNX) || defined(DARWIN) || defined(RISCOS)
#include <sys/times.h>
#if defined(HPUX9)
int select(size_t width, int *rl, int *wl, int *el, const struct timeval *tv)
-#elif defined(NEXTSTEP)
-int wrap_select(int width, fd_set *rd, fd_set *wr, fd_set *ex,
- const struct timeval *tv)
#elif defined(AIX_RENAME_SELECT)
int wrap_select(unsigned long width, void *rl, void *wl, void *el,
struct timeval *tv)
nbits++;
}
PR_ASSERT(nbits > 0);
-#if defined(HPUX) || defined(SOLARIS) || defined(SUNOS4) || defined(OSF1) || defined(AIX)
+#if defined(HPUX) || defined(SOLARIS) || defined(OSF1) || defined(AIX)
retVal += nbits;
#else /* IRIX */
retVal += 1;
void
_PR_MD_POST_SEM(_MDSemaphore *md)
{
- int old_count;
-
- ReleaseSemaphore(md->sem, 1, &old_count);
+ ReleaseSemaphore(md->sem, 1, NULL);
}
return;
}
+typedef BOOL (WINAPI *INITIALIZECRITICALSECTIONEX)(
+ CRITICAL_SECTION *lpCriticalSection,
+ DWORD dwSpinCount,
+ DWORD Flags);
+
+static INITIALIZECRITICALSECTIONEX sInitializeCriticalSectionEx;
+
+void _PR_MD_INIT_LOCKS(void)
+{
+ /*
+ * Starting with Windows Vista, every CRITICAL_SECTION allocates an extra
+ * RTL_CRITICAL_SECTION_DEBUG object. Unfortunately, this debug object is
+ * not reclaimed by DeleteCriticalSection(), causing an apparent memory
+ * leak. This is a debugging "feature", not a bug. If we are running on
+ * Vista or later, use InitializeCriticalSectionEx() to allocate
+ * CRITICAL_SECTIONs without debug objects.
+ */
+ HMODULE hKernel32 = GetModuleHandle("kernel32.dll");
+ PR_ASSERT(hKernel32);
+ PR_ASSERT(!sInitializeCriticalSectionEx);
+ sInitializeCriticalSectionEx = (INITIALIZECRITICALSECTIONEX)
+ GetProcAddress(hKernel32, "InitializeCriticalSectionEx");
+}
+
+/*
+ * By default, CRITICAL_SECTIONs are initialized with a spin count of 0.
+ * Joe Duffy's "Concurrent Programming on Windows" book suggests 1500 is
+ * a "reasonable starting point". On single-processor systems, the spin
+ * count is ignored and the critical section spin count is set to 0.
+ */
+#define LOCK_SPIN_COUNT 1500
+
+PRStatus _PR_MD_NEW_LOCK(_MDLock *lock)
+{
+ CRITICAL_SECTION *cs = &lock->mutex;
+ BOOL ok;
+
+ if (sInitializeCriticalSectionEx) {
+ ok = sInitializeCriticalSectionEx(cs, LOCK_SPIN_COUNT,
+ CRITICAL_SECTION_NO_DEBUG_INFO);
+ } else {
+ ok = InitializeCriticalSectionAndSpinCount(cs, LOCK_SPIN_COUNT);
+ }
+ if (!ok) {
+ _PR_MD_MAP_DEFAULT_ERROR(GetLastError());
+ return PR_FAILURE;
+ }
+
+ lock->notified.length = 0;
+ lock->notified.link = NULL;
+ return PR_SUCCESS;
+}
+
void _PR_MD_UNLOCK(_MDLock *lock)
{
if (0 != lock->notified.length) {
} else {
LeaveCriticalSection(&lock->mutex);
}
- return;
}
#include <wchar.h>
#endif /* MOZ_UNICODE */
-#ifdef WINCE
-
-static HANDLE CreateFileA(LPCSTR lpFileName,
- DWORD dwDesiredAccess,
- DWORD dwShareMode,
- LPSECURITY_ATTRIBUTES lpSecurityAttributes,
- DWORD dwCreationDisposition,
- DWORD dwFlagsAndAttributes,
- HANDLE hTemplateFile)
-{
- PRUnichar wFileName[MAX_PATH];
- MultiByteToWideChar(CP_ACP, 0, lpFileName, -1, wFileName, MAX_PATH);
- return CreateFileW(wFileName, dwDesiredAccess, dwShareMode,
- lpSecurityAttributes, dwCreationDisposition,
- dwFlagsAndAttributes, hTemplateFile);
-}
-
-/*
- * We seem to call FindFirstFileA and FindNextFileA just to get
- * the file names in a directory listing. If so, we could define
- * a custom WIN32_FIND_DATAA structure with just the cFileName
- * member, and the CopyFindFileDataW2A function could just
- * copy/convert the cFileName member.
- */
-static void CopyFindFileDataW2A(LPWIN32_FIND_DATAW from,
- LPWIN32_FIND_DATAA to)
-{
- /*
- * WIN32_FIND_DATAA and WIN32_FIND_DATAW are slightly different.
- * The dwReserved0, dwReserved1, and cAlternateFileName members
- * exist only in WIN32_FIND_DATAA. The dwOID member exists only
- * in WIN32_FIND_DATAW.
- */
- to->dwFileAttributes = from->dwFileAttributes;
- to->ftCreationTime = from->ftCreationTime;
- to->ftLastAccessTime = from->ftLastAccessTime;
- to->ftLastWriteTime = from->ftLastWriteTime;
- to->nFileSizeHigh = from->nFileSizeHigh;
- to->nFileSizeLow = from->nFileSizeLow;
- to->dwReserved0 = 0;
- to->dwReserved1 = 0;
- WideCharToMultiByte(CP_ACP, 0, from->cFileName, -1,
- to->cFileName, MAX_PATH, NULL, NULL);
- to->cAlternateFileName[0] = '\0';
-}
-
-static HANDLE FindFirstFileA(LPCSTR lpFileName,
- LPWIN32_FIND_DATAA lpFindFileData)
-{
- PRUnichar wFileName[MAX_PATH];
- HANDLE hFindFile;
- WIN32_FIND_DATAW wFindFileData;
-
- MultiByteToWideChar(CP_ACP, 0, lpFileName, -1, wFileName, MAX_PATH);
- hFindFile = FindFirstFileW(wFileName, &wFindFileData);
- if (hFindFile != INVALID_HANDLE_VALUE) {
- CopyFindFileDataW2A(&wFindFileData, lpFindFileData);
- }
- return hFindFile;
-}
-
-static BOOL FindNextFileA(HANDLE hFindFile,
- LPWIN32_FIND_DATAA lpFindFileData)
-{
- WIN32_FIND_DATAW wFindFileData;
- BOOL rv;
-
- rv = FindNextFileW(hFindFile, &wFindFileData);
- if (rv) {
- CopyFindFileDataW2A(&wFindFileData, lpFindFileData);
- }
- return rv;
-}
-
-static BOOL GetFileAttributesExA(LPCSTR lpFileName,
- GET_FILEEX_INFO_LEVELS fInfoLevelId,
- LPVOID lpFileInformation)
-{
- PRUnichar wFileName[MAX_PATH];
- MultiByteToWideChar(CP_ACP, 0, lpFileName, -1, wFileName, MAX_PATH);
- return GetFileAttributesExW(wFileName, fInfoLevelId, lpFileInformation);
-}
-
-static BOOL DeleteFileA(LPCSTR lpFileName)
-{
- PRUnichar wFileName[MAX_PATH];
- MultiByteToWideChar(CP_ACP, 0, lpFileName, -1, wFileName, MAX_PATH);
- return DeleteFileW(wFileName);
-}
-
-static BOOL MoveFileA(LPCSTR from, LPCSTR to)
-{
- PRUnichar wFrom[MAX_PATH];
- PRUnichar wTo[MAX_PATH];
- MultiByteToWideChar(CP_ACP, 0, from, -1, wFrom, MAX_PATH);
- MultiByteToWideChar(CP_ACP, 0, to, -1, wTo, MAX_PATH);
- return MoveFileW(wFrom, wTo);
-}
-
-static BOOL CreateDirectoryA(LPCSTR lpPathName,
- LPSECURITY_ATTRIBUTES lpSecurityAttributes)
-{
- PRUnichar wPathName[MAX_PATH];
- MultiByteToWideChar(CP_ACP, 0, lpPathName, -1, wPathName, MAX_PATH);
- return CreateDirectoryW(wPathName, lpSecurityAttributes);
-}
-
-static BOOL RemoveDirectoryA(LPCSTR lpPathName)
-{
- PRUnichar wPathName[MAX_PATH];
- MultiByteToWideChar(CP_ACP, 0, lpPathName, -1, wPathName, MAX_PATH);
- return RemoveDirectoryW(wPathName);
-}
-
-static long GetDriveType(const char *lpRootPathName)
-{
- PR_SetError(PR_NOT_IMPLEMENTED_ERROR, 0);
- return 0; // The drive type cannot be determined.
-}
-
-static DWORD GetFullPathName(const char *lpFileName,
- DWORD nBufferLength,
- const char *lpBuffer,
- const char **lpFilePart)
-{
- // needs work dft
- DWORD len = strlen(lpFileName);
- if (len > nBufferLength)
- return len;
-
- strncpy((char *)lpBuffer, lpFileName, len);
- ((char *)lpBuffer)[len] = '\0';
-
- if (lpFilePart) {
- char *sep = strrchr(lpBuffer, '\\');
- if (sep) {
- sep++; // pass the seperator
- *lpFilePart = sep;
- } else {
- *lpFilePart = lpBuffer;
- }
- }
- return len;
-}
-
-static BOOL LockFile(HANDLE hFile,
- DWORD dwFileOffsetLow,
- DWORD dwFileOffsetHigh,
- DWORD nNumberOfBytesToLockLow,
- DWORD nNumberOfBytesToLockHigh)
-{
- OVERLAPPED overlapped = {0};
- overlapped.Offset = dwFileOffsetLow;
- overlapped.OffsetHigh = dwFileOffsetHigh;
- return LockFileEx(hFile,
- LOCKFILE_EXCLUSIVE_LOCK | LOCKFILE_FAIL_IMMEDIATELY,
- 0, // reserved
- nNumberOfBytesToLockLow,
- nNumberOfBytesToLockHigh, &overlapped);
-}
-
-static BOOL UnlockFile(HANDLE hFile,
- DWORD dwFileOffsetLow,
- DWORD dwFileOffsetHigh,
- DWORD nNumberOfBytesToUnlockLow,
- DWORD nNumberOfBytesToUnlockHigh)
-{
- OVERLAPPED overlapped = {0};
- overlapped.Offset = dwFileOffsetLow;
- overlapped.OffsetHigh = dwFileOffsetHigh;
- return UnlockFileEx(hFile,
- 0, // reserved
- nNumberOfBytesToUnlockLow,
- nNumberOfBytesToUnlockHigh, &overlapped);
-}
-
-static unsigned char *_mbsdec(const unsigned char *string1,
- const unsigned char *string2)
-{
- // needs work dft
- return NULL;
-}
-
-static unsigned char *_mbsinc(const unsigned char *inCurrent)
-{
- // needs work dft
- return (unsigned char *)(inCurrent + 1);
-}
-
-#endif
-
struct _MDLock _pr_ioq_lock;
/*
FILE_GENERIC_EXECUTE
};
-/* Windows CE has GetFileAttributesEx. */
-#ifndef WINCE
-typedef BOOL (WINAPI *GetFileAttributesExFn)(LPCTSTR,
- GET_FILEEX_INFO_LEVELS,
- LPVOID);
-static GetFileAttributesExFn getFileAttributesEx;
-static void InitGetFileInfo(void);
-#endif
-
-static void InitUnicodeSupport(void);
-
static PRBool IsPrevCharSlash(const char *str, const char *current);
void
_PR_NT_InitSids();
-#ifndef WINCE
- InitGetFileInfo();
-#endif
-
- InitUnicodeSupport();
-
_PR_MD_InitSockets();
}
PRInt32
_PR_MD_STAT(const char *fn, struct stat *info)
{
-#ifdef WINCE
- // needs work. dft
- PR_SetError(PR_NOT_IMPLEMENTED_ERROR, 0);
- return -1;
-#else
PRInt32 rv;
rv = _stat(fn, (struct _stat *)info);
_PR_MD_MAP_STAT_ERROR(errno);
}
return rv;
-#endif
}
#define _PR_IS_SLASH(ch) ((ch) == '/' || (ch) == '\\')
return rv;
}
-#ifndef WINCE
-/*
- * InitGetFileInfo --
- *
- * Called during IO init. Checks for the existence of the system function
- * GetFileAttributeEx, which when available is used in GETFILEINFO calls.
- * If the routine exists, then the address of the routine is stored in the
- * variable getFileAttributesEx, which will be used to call the routine.
- */
-static void InitGetFileInfo(void)
-{
- HMODULE module;
- module = GetModuleHandle("Kernel32.dll");
- if (!module) {
- PR_LOG(_pr_io_lm, PR_LOG_DEBUG,
- ("InitGetFileInfo: GetModuleHandle() failed: %d",
- GetLastError()));
- return;
- }
-
- getFileAttributesEx = (GetFileAttributesExFn)
- GetProcAddress(module, "GetFileAttributesExA");
-}
-
-/*
- * If GetFileAttributeEx doesn't exist, we call FindFirstFile as a
- * fallback.
- */
-static BOOL
-GetFileAttributesExFB(const char *fn, WIN32_FIND_DATA *findFileData)
-{
- HANDLE hFindFile;
-
- /*
- * FindFirstFile() expands wildcard characters. So
- * we make sure the pathname contains no wildcard.
- */
- if (NULL != _mbspbrk(fn, "?*")) {
- SetLastError(ERROR_INVALID_NAME);
- return FALSE;
- }
-
- hFindFile = FindFirstFile(fn, findFileData);
- if (INVALID_HANDLE_VALUE == hFindFile) {
- DWORD len;
- char *filePart;
- char pathbuf[MAX_PATH + 1];
-
- /*
- * FindFirstFile() does not work correctly on root directories.
- * It also doesn't work correctly on a pathname that ends in a
- * slash. So we first check to see if the pathname specifies a
- * root directory. If not, and if the pathname ends in a slash,
- * we remove the final slash and try again.
- */
-
- /*
- * If the pathname does not contain ., \, and /, it cannot be
- * a root directory or a pathname that ends in a slash.
- */
- if (NULL == _mbspbrk(fn, ".\\/")) {
- return FALSE;
- }
- len = GetFullPathName(fn, sizeof(pathbuf), pathbuf,
- &filePart);
- if (0 == len) {
- return FALSE;
- }
- if (len > sizeof(pathbuf)) {
- SetLastError(ERROR_FILENAME_EXCED_RANGE);
- return FALSE;
- }
- if (IsRootDirectory(pathbuf, sizeof(pathbuf))) {
- findFileData->dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY;
- /* The file size doesn't have a meaning for directories. */
- findFileData->nFileSizeHigh = 0;
- findFileData->nFileSizeLow = 0;
- /*
- * For a directory, these timestamps all specify when the
- * directory is created. The creation time doesn't make
- * sense for root directories, so we set it to (NSPR) time 0.
- */
- memcpy(&findFileData->ftCreationTime, &_pr_filetime_offset, 8);
- findFileData->ftLastAccessTime = findFileData->ftCreationTime;
- findFileData->ftLastWriteTime = findFileData->ftCreationTime;
- return TRUE;
- }
- if (!IsPrevCharSlash(pathbuf, pathbuf + len)) {
- return FALSE;
- } else {
- pathbuf[len - 1] = '\0';
- hFindFile = FindFirstFile(pathbuf, findFileData);
- if (INVALID_HANDLE_VALUE == hFindFile) {
- return FALSE;
- }
- }
- }
-
- FindClose(hFindFile);
- return TRUE;
-}
-#endif
-
PRInt32
_PR_MD_GETFILEINFO64(const char *fn, PRFileInfo64 *info)
{
-#ifdef WINCE
WIN32_FILE_ATTRIBUTE_DATA findFileData;
-#else
- WIN32_FIND_DATA findFileData;
-#endif
BOOL rv;
if (NULL == fn || '\0' == *fn) {
return -1;
}
-#ifdef WINCE
- rv = GetFileAttributesExA(fn, GetFileExInfoStandard, &findFileData);
-#else
- /* GetFileAttributesEx is supported on Win 2K and up. */
- if (getFileAttributesEx) {
- rv = getFileAttributesEx(fn, GetFileExInfoStandard, &findFileData);
- } else {
- rv = GetFileAttributesExFB(fn, &findFileData);
- }
-#endif
+ rv = GetFileAttributesEx(fn, GetFileExInfoStandard, &findFileData);
if (!rv) {
_PR_MD_MAP_OPENDIR_ERROR(GetLastError());
return -1;
PRStatus
_PR_MD_SET_FD_INHERITABLE(PRFileDesc *fd, PRBool inheritable)
{
-#ifdef WINCE
- PR_SetError(PR_NOT_IMPLEMENTED_ERROR, 0);
- return PR_FAILURE;
-#else
BOOL rv;
/*
return PR_FAILURE;
}
return PR_SUCCESS;
-#endif
}
void
void
_PR_MD_QUERY_FD_INHERITABLE(PRFileDesc *fd)
{
-#ifdef WINCE
- fd->secret->inheritable = _PR_TRI_FALSE;
-#else
DWORD flags;
PR_ASSERT(_PR_TRI_UNKNOWN == fd->secret->inheritable);
fd->secret->inheritable = _PR_TRI_FALSE;
}
}
-#endif
}
PRInt32
PRInt32
_PR_MD_ACCESS(const char *name, PRAccessHow how)
{
-#ifdef WINCE
- PR_SetError(PR_NOT_IMPLEMENTED_ERROR, 0);
- return -1;
-#else
PRInt32 rv;
switch (how) {
case PR_ACCESS_WRITE_OK:
if (rv < 0)
_PR_MD_MAP_ACCESS_ERROR(errno);
return rv;
-#endif
}
PRInt32
#endif /* MOZ_UNICODE */
-PRBool _pr_useUnicode = PR_FALSE;
-
-static void InitUnicodeSupport(void)
-{
-#ifdef WINCE
- /* The A functions don't even exist in Windows Mobile. */
- _pr_useUnicode = PR_TRUE;
-#else
- /*
- * The W functions exist on Win9x as stubs that fail with the
- * ERROR_CALL_NOT_IMPLEMENTED error. We plan to emulate the
- * MSLU W functions on Win9x in the future.
- */
-
- /* Find out if we are running on a Unicode enabled version of Windows */
- OSVERSIONINFOA osvi = {0};
-
- osvi.dwOSVersionInfoSize = sizeof(osvi);
- if (GetVersionExA(&osvi)) {
- _pr_useUnicode = (osvi.dwPlatformId >= VER_PLATFORM_WIN32_NT);
- } else {
- _pr_useUnicode = PR_FALSE;
- }
-#ifdef DEBUG
- /*
- * In debug builds, allow explicit use of ANSI methods to simulate
- * a Win9x environment for testing purposes.
- */
- if (getenv("WINAPI_USE_ANSI"))
- _pr_useUnicode = PR_FALSE;
-#endif
-#endif
-}
-
#ifdef MOZ_UNICODE
/* ================ UTF16 Interfaces ================================ */
*/
#include <string.h>
-#ifdef SUNOS4
-#include "md/sunos4.h" /* for strerror */
-#endif
#include <assert.h>
#include <errno.h>
#include "prmem.h"
#endif /* DEBUG */
}
-/*
- * This version of interval times is based on the time of day
- * capability offered by system. This isn't valid for two reasons:
- * 1) The time of day is neither linear nor montonically increasing
- * 2) The units here are milliseconds. That's not appropriate for our use.
- */
-
PR_IMPLEMENT(PRIntervalTime) PR_IntervalNow(void)
{
if (!_pr_initialized) _PR_ImplicitInitialization();
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-#include "primpl.h"
+#include "prlong.h"
static PRInt64 ll_zero = LL_INIT( 0x00000000,0x00000000 );
static PRInt64 ll_maxint = LL_INIT( 0x7fffffff, 0xffffffff );
#endif
{
PRADDRINFO *res, hints;
- PRStatus rv;
+ int rv;
/*
* we assume a RFC 2553 compliant getaddrinfo. this may at some
md_af = AF_INET6;
#ifndef _PR_HAVE_SOCKADDR_LEN
addrcopy = *addr;
- addrcopy.raw.family = AF_INET6;
+ addrcopy.raw.family = md_af;
addrp = &addrcopy;
#endif
}
#include <sys/cfgodm.h>
#endif
-#if defined(WIN32)
-/* This struct is not present in VC6 headers, so declare it here */
-typedef struct {
- DWORD dwLength;
- DWORD dwMemoryLoad;
- DWORDLONG ullTotalPhys;
- DWORDLONG ullAvailPhys;
- DWORDLONG ullToalPageFile;
- DWORDLONG ullAvailPageFile;
- DWORDLONG ullTotalVirtual;
- DWORDLONG ullAvailVirtual;
- DWORDLONG ullAvailExtendedVirtual;
-} PR_MEMORYSTATUSEX;
-
-/* Typedef for dynamic lookup of GlobalMemoryStatusEx(). */
-typedef BOOL (WINAPI *GlobalMemoryStatusExFn)(PR_MEMORYSTATUSEX *);
-#endif
-
PR_IMPLEMENT(char) PR_GetDirectorySeparator(void)
{
return PR_DIRECTORY_SEPARATOR;
#elif defined(WIN32)
- /* Try to use the newer GlobalMemoryStatusEx API for Windows 2000+. */
- GlobalMemoryStatusExFn globalMemory = (GlobalMemoryStatusExFn) NULL;
- HMODULE module = GetModuleHandleW(L"kernel32.dll");
-
- if (module) {
- globalMemory = (GlobalMemoryStatusExFn)GetProcAddress(module, "GlobalMemoryStatusEx");
-
- if (globalMemory) {
- PR_MEMORYSTATUSEX memStat;
- memStat.dwLength = sizeof(memStat);
-
- if (globalMemory(&memStat))
- bytes = memStat.ullTotalPhys;
- }
- }
-
- if (!bytes) {
- /* Fall back to the older API. */
- MEMORYSTATUS memStat;
- memset(&memStat, 0, sizeof(memStat));
- GlobalMemoryStatus(&memStat);
- bytes = memStat.dwTotalPhys;
- }
+ MEMORYSTATUSEX memStat;
+ memStat.dwLength = sizeof(memStat);
+ if (GlobalMemoryStatusEx(&memStat))
+ bytes = memStat.ullTotalPhys;
#elif defined(OS2)
* additional fields: tm_zone and tm_gmtoff.
*/
-#if defined(SUNOS4) || (__GLIBC__ >= 2) || defined(XP_BEOS) \
+#if (__GLIBC__ >= 2) || defined(XP_BEOS) \
|| defined(NETBSD) || defined(OPENBSD) || defined(FREEBSD) \
|| defined(DARWIN) || defined(SYMBIAN) || defined(ANDROID)
a.tm_zone = NULL;
include $(topsrcdir)/config/config.mk
-# Disable optimization of the nspr on SunOS4.1.3
-ifeq ($(OS_ARCH),SunOS)
-ifeq ($(OS_RELEASE),4.1.3_U1)
-OPTIMIZER =
-endif
-endif
-
CSRCS = \
ptio.c \
ptsynch.c \
osfd = socket(AF_INET6, SOCK_STREAM, 0);
if (osfd != -1) {
int on;
- int optlen = sizeof(on);
+ socklen_t optlen = sizeof(on);
if (getsockopt(osfd, IPPROTO_IPV6, IPV6_V6ONLY,
&on, &optlen) == 0) {
_pr_ipv6_v6only_on_by_default = on;
#include <sys/types.h>
#include <sys/time.h>
-#if !defined(SUNOS4) && !defined(HPUX) \
+#if !defined(HPUX) \
&& !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__)
#include <sys/select.h>
#endif
#undef _POSIX_THREAD_PRIORITY_SCHEDULING
#endif
+#ifdef _PR_NICE_PRIORITY_SCHEDULING
+#undef _POSIX_THREAD_PRIORITY_SCHEDULING
+#include <sys/resource.h>
+#ifndef HAVE_GETTID
+#define gettid() (syscall(SYS_gettid))
+#endif
+#endif
+
/*
* Record whether or not we have the privilege to set the scheduling
* policy and priority of threads. 0 means that privilege is available.
PRCondVar *cv; /* used to signal global things */
PRInt32 system, user; /* a count of the two different types */
PRUintn this_many; /* number of threads allowed for exit */
- pthread_key_t key; /* private private data key */
+ pthread_key_t key; /* thread private data key */
PRThread *first, *last; /* list of threads we know about */
#if defined(_PR_DCETHREADS) || defined(_POSIX_THREAD_PRIORITY_SCHEDULING)
PRInt32 minPrio, maxPrio; /* range of scheduling priorities */
pri * (pt_book.maxPrio - pt_book.minPrio) / PR_PRIORITY_LAST;
#endif
}
+#elif defined(_PR_NICE_PRIORITY_SCHEDULING)
+/*
+ * This functions maps higher priorities to lower nice values relative to the
+ * nice value specified in the |nice| parameter. The corresponding relative
+ * adjustments are:
+ *
+ * PR_PRIORITY_LOW +1
+ * PR_PRIORITY_NORMAL 0
+ * PR_PRIORITY_HIGH -1
+ * PR_PRIORITY_URGENT -2
+ */
+static int pt_RelativePriority(int nice, PRThreadPriority pri)
+{
+ return nice + (1 - pri);
+}
#endif
/*
PRIntn rv;
PRThread *thred = (PRThread*)arg;
PRBool detached = (thred->state & PT_THREAD_DETACHED) ? PR_TRUE : PR_FALSE;
+#ifdef _PR_NICE_PRIORITY_SCHEDULING
+ pid_t tid;
+#endif
/*
* Both the parent thread and this new thread set thred->id.
*/
thred->id = pthread_self();
+#ifdef _PR_NICE_PRIORITY_SCHEDULING
+ /*
+ * We need to know the kernel thread ID of each thread in order to
+ * set its nice value hence we do it here instead of at creation time.
+ */
+ tid = gettid();
+ errno = 0;
+ rv = getpriority(PRIO_PROCESS, 0);
+
+ /* If we cannot read the main thread's nice value don't try to change the
+ * new thread's nice value. */
+ if (errno == 0) {
+ setpriority(PRIO_PROCESS, tid,
+ pt_RelativePriority(rv, thred->priority));
+ }
+
+ PR_Lock(pt_book.ml);
+ thred->tid = tid;
+ PR_NotifyAllCondVar(pt_book.cv);
+ PR_Unlock(pt_book.ml);
+#endif
+
/*
** DCE Threads can't detach during creation, so do it late.
** I would like to do it only here, but that doesn't seem
thred->priority = PR_PRIORITY_NORMAL;
thred->id = pthread_self();
+#ifdef _PR_NICE_PRIORITY_SCHEDULING
+ thred->tid = gettid();
+#endif
rv = pthread_setspecific(pt_book.key, thred);
PR_ASSERT(0 == rv);
if (rv != 0)
rv = -1;
}
+#elif defined(_PR_NICE_PRIORITY_SCHEDULING)
+ PR_Lock(pt_book.ml);
+ while (thred->tid == 0)
+ PR_WaitCondVar(pt_book.cv, PR_INTERVAL_NO_TIMEOUT);
+ PR_Unlock(pt_book.ml);
+
+ errno = 0;
+ rv = getpriority(PRIO_PROCESS, 0);
+
+ /* Do not proceed unless we know the main thread's nice value. */
+ if (errno == 0) {
+ rv = setpriority(PRIO_PROCESS, thred->tid,
+ pt_RelativePriority(rv, newPri));
+
+ if (rv == -1)
+ {
+ /* We don't set pt_schedpriv to EPERM in case errno == EPERM
+ * because adjusting the nice value might be permitted for certain
+ * ranges but not for others. */
+ PR_LOG(_pr_thread_lm, PR_LOG_MIN,
+ ("PR_SetThreadPriority: setpriority failed with error %d",
+ errno));
+ }
+ }
#endif
thred->priority = newPri;
int rv;
PRThread *thred;
+ PR_ASSERT(priority == PR_PRIORITY_NORMAL);
+
#ifdef _PR_NEED_PTHREAD_INIT
/*
* On BSD/OS (3.1 and 4.0), the pthread subsystem is lazily
thred->startFunc = NULL;
thred->priority = priority;
thred->id = pthread_self();
+#ifdef _PR_NICE_PRIORITY_SCHEDULING
+ thred->tid = gettid();
+#endif
thred->state = (PT_THREAD_DETACHED | PT_THREAD_PRIMORD);
if (PR_SYSTEM_THREAD == type)
PR_ASSERT(0 == rv);
rv = pthread_setspecific(pt_book.key, thred);
PR_ASSERT(0 == rv);
- PR_SetThreadPriority(thred, priority);
} /* _PR_InitThreads */
#ifdef __GNUC__
rv = pthread_setspecific(pt_book.key, NULL);
PR_ASSERT(0 == rv);
}
+ rv = pthread_key_delete(pt_book.key);
+ PR_ASSERT(0 == rv);
/* TODO: free other resources used by NSPR */
/* _pr_initialized = PR_FALSE; */
} /* _PR_Fini */
include $(topsrcdir)/config/config.mk
-# Disable optimization of the nspr on SunOS4.1.3
-ifeq ($(OS_ARCH),SunOS)
-ifeq ($(OS_RELEASE),4.1.3_U1)
-OPTIMIZER =
-endif
-endif
-
ifdef USE_PTHREADS
CSRCS = \
$(NULL)
PRThread *thread;
PRThreadStack *stack;
+ PR_ASSERT(priority == PR_PRIORITY_NORMAL);
+
_pr_terminationCVLock = PR_NewLock();
_pr_activeLock = PR_NewLock();
provider.c \
prpoll.c \
prpollml.c \
+ pushtop.c \
ranfile.c \
randseed.c \
reinit.c \
# Solaris
ifeq ($(OS_ARCH), SunOS)
- ifneq ($(OS_RELEASE), 4.1.3_U1)
- ifdef NS_USE_GCC
- LDOPTS += -Xlinker -R -Xlinker $(ABSOLUTE_LIB_DIR)
- else
- ifeq ($(USE_CPLUS), 1)
- CC = CC
- endif
- LDOPTS += -R $(ABSOLUTE_LIB_DIR)
+ ifdef NS_USE_GCC
+ LDOPTS += -Xlinker -R -Xlinker $(ABSOLUTE_LIB_DIR)
+ else
+ ifeq ($(USE_CPLUS), 1)
+ CC = CC
endif
+ LDOPTS += -R $(ABSOLUTE_LIB_DIR)
endif
ifdef USE_PTHREADS
endif
endif # SunOS
-ifeq ($(OS_ARCH), NEC)
- EXTRA_LIBS = $(OS_LIBS)
-# This hardcodes in the executable programs the directory to find
-# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
-# option for ld on other platforms.
- export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
-endif
-
-ifeq ($(OS_ARCH), NCR)
-# NCR needs to link against -lsocket -lnsl -ldl (and -lc, which is
-# linked implicitly by $(CC)). Note that we did not link with these
-# system libraries when we built libnspr.so.
- EXTRA_LIBS = -lsocket -lnsl -ldl
-# This hardcodes in the executable programs the directory to find
-# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
-# option for ld on other platforms.
- export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
-endif
-
-ifeq ($(OS_ARCH), NEXTSTEP)
-# balazs.pataki@sztaki.hu: linkage is done in a different pass in the `tests'
-# modeul, so we have to pass the `-posix' flag by "hand" to `ld'
-LDOPTS += -posix
-endif
-
-ifeq ($(OS_ARCH), NEWS-OS)
-# This hardcodes in the executable programs the directory to find
-# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
-# option for ld on other platforms.
-#export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
- LIBNSPR = $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).a
- LIBPLC = $(dist_libdir)/libplc$(MOD_MAJOR_VERSION).a
- EXTRA_LIBS = -lsocket -lnsl -lgen -lresolv
-endif
-
ifeq (,$(filter-out Linux GNU GNU_%,$(OS_ARCH)))
LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR)
ifeq ($(USE_PTHREADS),1)
export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
endif
-ifeq ($(OS_ARCH),SINIX)
-EXTRA_LIBS = -lsocket -lnsl -lresolv -ldl
-# This hardcodes in the executable programs the directory to find
-# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
-# option for ld on other platforms.
-export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
-endif
-
ifeq ($(OS_ARCH),OpenUNIX)
export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
ifeq ($(USE_PTHREADS),1)
# The following tests call BSD socket functions, so they need to link
# with -lsocket on some platforms.
ifeq ($(OS_ARCH),SunOS)
-ifneq ($(OS_RELEASE),4.1.3_U1)
ifeq ($(USE_IPV6),1)
$(OBJDIR)/gethost: $(OBJDIR)/gethost.o
$(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lsocket $(EXTRA_LIBS) -o $@
$(OBJDIR)/prpoll: $(OBJDIR)/prpoll.o
$(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lsocket $(EXTRA_LIBS) -o $@
endif
-endif
ifeq ($(USE_PTHREADS), 1)
$(OBJDIR)/attach: $(OBJDIR)/attach.o
include $(topsrcdir)/config/config.mk
-# Disable optimization of the nspr on SunOS4.1.3
-ifeq ($(OS_ARCH),SunOS)
-ifeq ($(OS_RELEASE),4.1.3_U1)
-OPTIMIZER =
-endif
-endif
-
CSRCS = mygetval.c mysetval.c
INCLUDES = -I$(dist_includedir)
--- /dev/null
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/* A regression test for bug 794316 */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "prio.h"
+
+static PRIOMethods dummyMethods;
+
+int main()
+{
+ PRDescIdentity topId, middleId, bottomId;
+ PRFileDesc *top, *middle, *bottom;
+ PRFileDesc *fd;
+
+ topId = PR_GetUniqueIdentity("top");
+ middleId = PR_GetUniqueIdentity("middle");
+ bottomId = PR_GetUniqueIdentity("bottom");
+
+ top = PR_CreateIOLayerStub(topId, &dummyMethods);
+ middle = PR_CreateIOLayerStub(middleId, &dummyMethods);
+ bottom = PR_CreateIOLayerStub(bottomId, &dummyMethods);
+
+ fd = bottom;
+ PR_PushIOLayer(fd, PR_TOP_IO_LAYER, middle);
+ PR_PushIOLayer(fd, PR_TOP_IO_LAYER, top);
+
+ top = fd;
+ middle = top->lower;
+ bottom = middle->lower;
+
+ /* Verify that the higher pointers are correct. */
+ if (middle->higher != top) {
+ fprintf(stderr, "middle->higher is wrong\n");
+ fprintf(stderr, "FAILED\n");
+ exit(1);
+ }
+ if (bottom->higher != middle) {
+ fprintf(stderr, "bottom->higher is wrong\n");
+ fprintf(stderr, "FAILED\n");
+ exit(1);
+ }
+
+ top = PR_PopIOLayer(fd, topId);
+ top->dtor(top);
+
+ middle = fd;
+ bottom = middle->lower;
+
+ /* Verify that the higher pointer is correct. */
+ if (bottom->higher != middle) {
+ fprintf(stderr, "bottom->higher is wrong\n");
+ fprintf(stderr, "FAILED\n");
+ exit(1);
+ }
+
+ middle = PR_PopIOLayer(fd, middleId);
+ middle->dtor(middle);
+ if (fd->identity != bottomId) {
+ fprintf(stderr, "The bottom layer has the wrong identity\n");
+ fprintf(stderr, "FAILED\n");
+ exit(1);
+ }
+ fd->dtor(fd);
+
+ printf("PASS\n");
+ return 0;
+}
"primblok",
"provider",
"prpollml",
+"pushtop",
"ranfile",
"randseed",
"reinit",
primblok
provider
prpollml
+pushtop
ranfile
randseed
reinit
#include <stdlib.h>
/*
- * This release (4.9.2) is backward compatible with the
+ * This release (4.10) is backward compatible with the
* 4.0.x, 4.1.x, 4.2.x, 4.3.x, 4.4.x, 4.5.x, 4.6.x, 4.7.x,
- * 4.8.x, 4.9, and 4.9.1 releases. It, of course,
- * is compatible with itself.
+ * 4.8.x, and 4.9.x releases.
+ * It, of course, is compatible with itself.
*/
static char *compatible_version[] = {
"4.0", "4.0.1", "4.1", "4.1.1", "4.1.2", "4.1.3",
"4.7.6",
"4.8", "4.8.1", "4.8.2", "4.8.3", "4.8.4", "4.8.5",
"4.8.6", "4.8.7", "4.8.8", "4.8.9",
- "4.9", "4.9.1", PR_VERSION
+ "4.9", "4.9.1", "4.9.2", "4.9.3", "4.9.4", "4.9.5",
+ "4.9.6",
+ PR_VERSION
};
/*
"3.0", "3.0.1",
"3.1", "3.1.1", "3.1.2", "3.1.3",
"3.5", "3.5.1",
- "4.9.3",
- "4.10", "4.10.1",
+ "4.10.1",
+ "4.11", "4.11.1",
"10.0", "11.1", "12.14.20"
};
# Solaris
ifeq ($(OS_ARCH), SunOS)
-ifneq ($(OS_RELEASE), 4.1.3_U1)
ifdef NS_USE_GCC
LDOPTS += -Xlinker -R -Xlinker $(PWD)/$(dist_libdir)
else
LDOPTS += -R $(PWD)/$(dist_libdir)
endif
-endif
# SunOS 5.5 needs to link with -lpthread, even though we already
# linked with this system library when we built libnspr.so.
endif
endif # SunOS
-ifeq ($(OS_ARCH), NCR)
-# XXX: We see some strange problems when we link with libnspr.so.
-# So for now we use static libraries on NCR. The shared library
-# stuff below is commented out.
-LIBPR = $(dist_libdir)/libnspr$(NSPR_VERSION).a
-LIBPLC = $(dist_libdir)/libplc$(NSPR_VERSION).a
-EXTRA_LIBS = -lsocket -lnsl -ldl
-
-# NCR needs to link against -lsocket -lnsl (and -lc, which is linked
-# implicitly by $(CC)) again even though we already linked with these
-# system libraries when we built libnspr.so.
-#EXTRA_LIBS = -lsocket -lnsl
-# This hardcodes in the executable programs the directory to find
-# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
-# option for ld on other platforms.
-#export LD_RUN_PATH = $(PWD)/$(dist_libdir)
-endif
-
ifeq ($(OS_ARCH), SCOOS)
# SCO Unix needs to link against -lsocket again even though we
# already linked with these system libraries when we built libnspr.so.