Added preliminary autoconf support for solaris. Untested.
authorcls%seawood.org
Mon, 29 Nov 1999 04:46:11 +0000
changeset 971 29227fdc9a1516dc508a23a38520aba2ca1f5f26
parent 970 9a0d6aaeac13d5c639e462fabf96e8b21844421a
child 972 1d8ed35aaf0c5abae0fd64b116323105798d7d3f
push idunknown
push userunknown
push dateunknown
Added preliminary autoconf support for solaris. Untested.
config/autoconf.mk.in
configure
configure.in
--- a/config/autoconf.mk.in
+++ b/config/autoconf.mk.in
@@ -16,34 +16,34 @@ USE_N32		= @USE_N32@
 USE_64		= @USE_64@
 
 USE_PTHREADS	= @USE_PTHREADS@
 USE_BTHREADS	= @USE_BTHREADS@
 PTHREADS_USER	= @USE_USER_PTHREADS@
 CLASSIC_NSPR	= @USE_NSPR_THREADS@
 
 AS		= @AS@
+ASFLAGS		= @ASFLAGS@
 CC		= @CC@
 CCC		= @CXX@
 AR		= @AR@
 AR_FLAGS	= @AR_FLAGS@
 RANLIB		= @RANLIB@
 PERL		= @PERL@
 DLLTOOL		= @DLLTOOL@
 WINDRES		= @WINDRES@
 RC		= $(WINDRES)
 
-OS_CFLAGS	= @CFLAGS@
-OS_CXXFLAGS	= @CXXFLAGS@
+OS_CFLAGS	= @CFLAGS@ $(DSO_CFLAGS)
+OS_CXXFLAGS	= @CXXFLAGS@ $(DSO_CFLAGS)
 OS_LIBS         = @OS_LIBS@
 
 MKSHLIB		= @MKSHLIB@
 DSO_CFLAGS	= @DSO_CFLAGS@
 DSO_LDOPTS	= @DSO_LDOPTS@
-DSO_LDFLAGS	= @DSO_LDFLAGS@
 
 EXTRA_LIBS      = @EXTRA_LIBS@
 
 HOST_CC		= @HOST_CC@
 HOST_CFLAGS	= @HOST_CFLAGS@
 
 DEFINES		= @DEFINES@ @DEFS@
 
@@ -51,8 +51,10 @@ MDCPUCFG_H	= @MDCPUCFG_H@
 MOZ_TARGET	= @MOZ_TARGET@
 PR_MD_CSRCS	= @PR_MD_CSRCS@
 PR_MD_ASFILES	= @PR_MD_ASFILES@
 PR_MD_ARCH_DIR	= @PR_MD_ARCH_DIR@
 
 NOSUCHFILE	= @NOSUCHFILE@
 AIX_LINK_OPTS	= @AIX_LINK_OPTS@
 MOZ_OBJFORMAT	= @MOZ_OBJFORMAT@
+ULTRASPARC_LIBRARY = @ULTRASPARC_LIBRARY@
+ULTRASPARC_FILTER_LIBRARY = @ULTRASPARC_FILTER_LIBRARY@
--- a/configure
+++ b/configure
@@ -2260,17 +2260,17 @@ fi
 test -n "$PERL" && break
 done
 test -n "$PERL" || PERL=":"
 
 
 OBJ_SUFFIX=o
 LIB_SUFFIX=a
 DLL_SUFFIX=so
-MKSHLIB='$(CCC) -shared -o $@'
+MKSHLIB='$(LD) $(DSO_LDOPTS)'
 PR_MD_ASFILES=
 PR_MD_CSRCS=
 PR_MD_ARCH_DIR=unix
 AR_FLAGS='cr $@'
 
 case "$host" in
 *-mingw*)
     ;;
@@ -2307,16 +2307,17 @@ EOF
 #define AIX_RENAME_SELECT 1
 EOF
 
         cat >> confdefs.h <<\EOF
 #define _PR_NO_LARGE_FILES 1
 EOF
 
         AIX_LINK_OPTS='-bnso -berok'
+        PR_MD_ASFILES=os_AIX.s
         ;;
     aix4.1*)
         cat >> confdefs.h <<\EOF
 #define AIX_RENAME_SELECT 1
 EOF
 
         cat >> confdefs.h <<\EOF
 #define AIX_HAVE_ATOMIC_OP_H 1
@@ -2379,31 +2380,42 @@ EOF
         ;;
     esac
     CFLAGS="$CFLAGS -qro -qroconst"
     if test `grep -c xlC_r $CC`; then
         CFLAGS="$CFLAGS -qarch=com"
     fi
     AIX_WRAP='$(DIST)/lib/aixwrap.o'
     AIX_TMP='./_aix_tmp.o'
+    if test -n "$USE_64"; then
+        MDCPUCFG_H=_aix64.cfg
+    else
+        if test -n "$USE_IPV6"; then
+            MDCPUCFG_H=_aix32in6.cfg
+        else
+            MDCPUCFG_H=_aix32.cfg
+        fi
+    fi
+    PR_MD_CSRCS=aix.c
     ;;
         
 *-beos*)
     cat >> confdefs.h <<\EOF
 #define XP_BEOS 1
 EOF
 
     cat >> confdefs.h <<\EOF
 #define BeOS 1
 EOF
 
     cat >> confdefs.h <<\EOF
 #define BEOS 1
 EOF
 
+    MKSHLIB='$(CCC) -shared -o $@'
     ;;
 
 *-dgux*)
     cat >> confdefs.h <<\EOF
 #define XP_UNIX 1
 EOF
 
     cat >> confdefs.h <<\EOF
@@ -2430,16 +2442,18 @@ EOF
 #define _POSIX4A_DRAFT6_SOURCE 1
 EOF
 
     MKSHLIB='$(LD) $(DSO_LDOPTS)'
     DSO_LDOPTS=-G
     NOSUCHFILE=/no-such-file
     _OPTIMIZE_FLAGS=-O2
     _DEBUG_FLAGS=
+    MDCPUCFG_H=_dgux.cfg
+    PR_MD_CSRCS=dgux.c
     ;;
 
 *-freebsd*)
     if test "${target_cpu}" != "alpha"; then
         cat >> confdefs.h <<\EOF
 #define i386 1
 EOF
 
@@ -2456,34 +2470,40 @@ EOF
     MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
     if test "$MOZ_OBJFORMAT" = "elf"; then
         DLL_SUFFIX=so
     else
         DLL_SUFFIX=so.1.0
     fi
     DSO_CFLAGS=-fPIC
     DSO_LDOPTS=-Bshareable
-    DSO_LDFLAGS=
     MKSHLIB='$(LD) $(DSO_LDOPTS)'
+    MDCPUCFG_H=_freebsd.cfg
+    PR_MD_CSRCS=freebsd.c
     ;;
 
 *-hpux*)
     cat >> confdefs.h <<\EOF
 #define HPUX 1
 EOF
 
     cat >> confdefs.h <<\EOF
 #define _HPUX_SOURCE 1
 EOF
 
     DEFINES="$DEFINES -D${target_cpu}"
     DLL_SUFFIX=sl
     MKSHLIB='$(LD) $(DSO_LDOPTS)'
     DSO_LDOPTS='-b +h $(notdir $@)'
-    DSO_LDFLAGS=
+    PR_MD_CSRCS=hpux.c
+    if test -n "$USE_64"; then
+        MDCPUCFG_H=_hpux64.cfg
+    else
+        MDCPUCFG_H=_hpux32.cfg
+    fi
     if test -z "$GNU_CC"; then
         CC="$CC -Ae"
         CXX="$CXX -ext"
         CFLAGS="$CFLAGS +ESlit"
         CXXFLAGS="$CXXFLAGS +ESlit"
         DSO_CFLAGS=+Z
     else
         DSO_CFLAGS=-fPIC
@@ -2622,22 +2642,25 @@ EOF
     cat >> confdefs.h <<\EOF
 #define SVR4 1
 EOF
 
     cat >> confdefs.h <<\EOF
 #define _SGI_MP_SOURCE 1
 EOF
 
-    MDCPUCFG_H=_irix32.cfg
     PR_MD_CSRCS=irix.c
     PR_MD_ASFILES=os_Irix.s
-    PR_MD_ARCH_DIR=unix
     MKSHLIB='$(LD) $(SHLIB_LD_OPTS) -rdata_shared -shared -soname $(notdir $@)'
     DSO_LDOPTS='-elf -shared -all'
+    if test -n "$USE_64"; then
+        MDCPUCFG_H=_irix64.cfg
+    else
+        MDCPUCFG_H=_irix32.cfg
+    fi
     case "${target_os}" in
     irix5*)
 	   USE_NSPR_THREADS=1
 	   ;;
     *)
 	   USE_N32=1
 	   USE_PTHREADS=1
 	   ;;
@@ -2733,17 +2756,42 @@ EOF
     cat >> confdefs.h <<\EOF
 #define XP_UNIX 1
 EOF
 
     CFLAGS="$CFLAGS -pipe"
     CXXFLAGS="$CXXFLAGS -pipe"
     MDCPUCFG_H=_linux.cfg
     PR_MD_CSRCS=linux.c
-    PR_MD_ARCH_DIR=unix
+    MKSHLIB='$(LD) $(DSO_LDOPTS) -soname $(notdir $@)'
+    DSO_CFLAGS=-fPIC
+    DSO_LDOPTS=-shared
+    case "${target_cpu}" in
+    alpha)
+        cat >> confdefs.h <<\EOF
+#define _ALPHA_ 1
+EOF
+
+        cat >> confdefs.h <<\EOF
+#define __alpha 1
+EOF
+
+        CFLAGS="$CFLAGS -mieee"
+        CXXFLAGS="$CXXFLAGS -mieee"
+        _OPTIMIZE_FLAGS=-O2
+        ;;
+    m68k)
+        _OPTIMIZE_FLAGS=-O
+        CFLAGS="$CFLAGS -m68020-40"
+        CXXFLAGS="$CXXFLAGS -m68020-40"
+        ;;
+    *)
+        _OPTIMIZE_FLAGS=-O2
+        ;;
+    esac    
     ;;
 
 *-mingw*)
     cat >> confdefs.h <<\EOF
 #define XP_PC 1
 EOF
 
     PR_MD_ARCH_DIR=windows
@@ -2816,16 +2864,121 @@ EOF
     CC="qcc -Vgcc_ntox86 -w"
     CXX="QCC -Vgcc_ntox86 -w"
     CPP="qcc -Vgcc_ntox86 -w"
     LD="qcc -Vgcc_ntox86 -nostdlib"
     AR="qcc -Vgcc_ntox86 -M -a "
     AR_FLAGS="$@"
 	;;
 
+*-solaris*)
+    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 __svr4 1
+EOF
+
+    cat >> confdefs.h <<\EOF
+#define __svr4__ 1
+EOF
+
+    cat >> confdefs.h <<\EOF
+#define SOLARIS 1
+EOF
+
+    if test -n "$USE_64"; then
+        MDCPUCFG=_solaris64.cfg
+    else
+        MDCPUCFG=_solaris32.cfg
+    fi
+    PR_MD_CSRCS=solaris.c
+    MKSHLIB='$(LD) $(DSO_LDOPTS)'
+    DSO_LDOPTS='-G -h $(notdir $@)'
+    if test -n "$GNU_CC"; then
+        DSO_CFLAGS=-fPIC
+    else
+        DSO_CFLAGS=-KPIC
+    fi
+    ASFLAGS="$ASFLAGS -Wa,-P"
+    NOSUCHFILE=/no-such-file
+    if test -n "$GNU_CC"; then
+        if test -n "$USE_MDUPDATE"; then
+            CFLAGS="$CFLAGS -MDupdate"
+            CXXFLAGS="$CXXFLAGS -MDupdate"
+        fi
+    else
+        CC="$CC -xstrconst"
+        CXX="$CXX -Qoption cg -xstrconst"
+    fi
+    if test -n "$BUILD_NUMBER" && test -z "$MOZ_OPTIMIZE"; then
+        CFLAGS="$CFLAGS -xs"
+        CXXFLAGS="$CXXFLAGS -xs"
+    fi
+    if test -n "$USE_64" && test -z "$GNU_CC"; then
+        CC="$CC -xarch=v9"
+        CXX="$CXX -xarch=v9"
+    fi
+    if test "${target_cpu}" = "i386"; then
+        cat >> confdefs.h <<\EOF
+#define i386 1
+EOF
+
+        if test -n "$MOZ_DEBUG" && test -n "$GNU_CC"; then
+            _DEBUG_FLAGS="$_DEBUG_FLAGS -Wa,-s -gstabs"
+        fi
+    fi
+    case "${target_os}" in
+    solaris2.3*)
+        cat >> confdefs.h <<\EOF
+#define _PR_NO_LARGE_FILES 1
+EOF
+
+        ;;
+    solaris2.4*)
+        cat >> confdefs.h <<\EOF
+#define _PR_NO_LARGE_FILES 1
+EOF
+
+        ;;
+    solaris2.5*)
+        cat >> confdefs.h <<\EOF
+#define SOLARIS2_5 1
+EOF
+    
+        ;;
+    *)
+        cat >> confdefs.h <<\EOF
+#define _PR_HAVE_OFF64_T 1
+EOF
+
+        if test -n "$GNU_CC"; then
+            cat >> confdefs.h <<\EOF
+#define _LARGEFILE64_SOURCE 1
+EOF
+
+        fi
+        ;;
+    esac
+    if test "${target_cpu}" = "sun4u"; then
+        ULTRASPARC_LIBRARY=ultrasparc
+        ULTRASPARC_FILTER_LIBRARY=libatomic.so
+        DSO_LDOPTS="$DSO_LDOPTS -f "'$(ULTRASPARC_FILTER_LIBRARY)'
+    fi
+    ;;
+
 *)
     cat >> confdefs.h <<\EOF
 #define XP_UNIX 1
 EOF
 
     ;;
    
 esac
@@ -2833,72 +2986,72 @@ esac
 if test "$enable_shared" = no; then
     MKSHLIB=
 fi
 
 
 
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2842: checking how to run the C preprocessor" >&5
+echo "configure:2995: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
 if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     # This must be in double quotes, not single quotes, because CPP may get
   # substituted into the Makefile and "${CC-cc}" will confuse make.
   CPP="${CC-cc} -E"
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 2857 "configure"
+#line 3010 "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:2863: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3016: \"$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
   :
 else
   echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 2874 "configure"
+#line 3027 "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:2880: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3033: \"$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
   :
 else
   echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 2891 "configure"
+#line 3044 "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:2897: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3050: \"$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
   :
 else
   echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
@@ -2914,23 +3067,23 @@ fi
   CPP="$ac_cv_prog_CPP"
 else
   ac_cv_prog_CPP="$CPP"
 fi
 echo "$ac_t""$CPP" 1>&6
 
 if test $ac_cv_prog_gcc = yes; then
     echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:2923: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:3076: 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 2929 "configure"
+#line 3082 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "$ac_pattern" >/dev/null 2>&1; then
   rm -rf conftest*
   ac_cv_prog_gcc_traditional=yes
@@ -2938,17 +3091,17 @@ else
   rm -rf conftest*
   ac_cv_prog_gcc_traditional=no
 fi
 rm -f conftest*
 
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat > conftest.$ac_ext <<EOF
-#line 2947 "configure"
+#line 3100 "configure"
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "$ac_pattern" >/dev/null 2>&1; then
   rm -rf conftest*
   ac_cv_prog_gcc_traditional=yes
@@ -2962,22 +3115,22 @@ echo "$ac_t""$ac_cv_prog_gcc_traditional
   if test $ac_cv_prog_gcc_traditional = yes; then
     CC="$CC -traditional"
   fi
 fi
 
 for ac_func in lchown strerror
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2971: checking for $ac_func" >&5
+echo "configure:3124: 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 2976 "configure"
+#line 3129 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char $ac_func();
@@ -2990,17 +3143,17 @@ int main() {
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
 $ac_func();
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:2999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3152: \"$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
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=no"
 fi
@@ -3020,36 +3173,36 @@ fi
 done
 
 
 
 
 OS_LIBS=
 
 echo $ac_n "checking for pthread_attr_init in -lpthread""... $ac_c" 1>&6
-echo "configure:3029: checking for pthread_attr_init in -lpthread" >&5
+echo "configure:3182: checking for pthread_attr_init in -lpthread" >&5
 ac_lib_var=`echo pthread'_'pthread_attr_init | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
 LIBS="-lpthread  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3037 "configure"
+#line 3190 "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
     builtin and then its argument prototype would still apply.  */
 char pthread_attr_init();
 
 int main() {
 pthread_attr_init()
 ; return 0; }
 EOF
-if { (eval echo configure:3048: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3201: \"$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 "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
@@ -3058,36 +3211,36 @@ LIBS="$ac_save_LIBS"
 
 fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   _HAVE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread"
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for pthread_attr_init in -lc_r""... $ac_c" 1>&6
-echo "configure:3067: checking for pthread_attr_init in -lc_r" >&5
+echo "configure:3220: checking for pthread_attr_init in -lc_r" >&5
 ac_lib_var=`echo c_r'_'pthread_attr_init | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
 LIBS="-lc_r  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3075 "configure"
+#line 3228 "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
     builtin and then its argument prototype would still apply.  */
 char pthread_attr_init();
 
 int main() {
 pthread_attr_init()
 ; return 0; }
 EOF
-if { (eval echo configure:3086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3239: \"$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 "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
@@ -3096,36 +3249,36 @@ LIBS="$ac_save_LIBS"
 
 fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   _HAVE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r"
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for pthread_attr_init in -lc""... $ac_c" 1>&6
-echo "configure:3105: checking for pthread_attr_init in -lc" >&5
+echo "configure:3258: checking for pthread_attr_init in -lc" >&5
 ac_lib_var=`echo c'_'pthread_attr_init | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
 LIBS="-lc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3113 "configure"
+#line 3266 "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
     builtin and then its argument prototype would still apply.  */
 char pthread_attr_init();
 
 int main() {
 pthread_attr_init()
 ; return 0; }
 EOF
-if { (eval echo configure:3124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3277: \"$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 "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
@@ -3242,17 +3395,17 @@ if test "${enable_ipv6+set}" = set; then
       fi
 fi
 
 
 if test -n "$USE_PTHREADS"; then
       rm -f conftest*
    ac_cv_have_dash_pthread=no
    echo $ac_n "checking whether ${CC-cc} accepts -pthread""... $ac_c" 1>&6
-echo "configure:3251: checking whether ${CC-cc} accepts -pthread" >&5
+echo "configure:3404: 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
 	if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
 	    ac_cv_have_dash_pthread=yes
 	    CFLAGS="$CFLAGS -pthread"
 	    CXXFLAGS="$CXXFLAGS -pthread"
 	fi
@@ -3316,22 +3469,22 @@ EOF
 	    cat >> confdefs.h <<\EOF
 #define _REENTRANT 1
 EOF
 
 	    ;;
     esac
 
     echo $ac_n "checking for pthread_create""... $ac_c" 1>&6
-echo "configure:3325: checking for pthread_create" >&5
+echo "configure:3478: checking for pthread_create" >&5
 if eval "test \"`echo '$''{'ac_cv_func_pthread_create'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3330 "configure"
+#line 3483 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char pthread_create(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char pthread_create();
@@ -3344,17 +3497,17 @@ int main() {
 #if defined (__stub_pthread_create) || defined (__stub___pthread_create)
 choke me
 #else
 pthread_create();
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:3353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_pthread_create=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   eval "ac_cv_func_pthread_create=no"
 fi
@@ -3363,36 +3516,36 @@ fi
 
 if eval "test \"`echo '$ac_cv_func_'pthread_create`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   :
 else
   echo "$ac_t""no" 1>&6
 
        echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
-echo "configure:3372: checking for pthread_create in -lpthread" >&5
+echo "configure:3525: checking for pthread_create in -lpthread" >&5
 ac_lib_var=`echo pthread'_'pthread_create | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
 LIBS="-lpthread  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3380 "configure"
+#line 3533 "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
     builtin and then its argument prototype would still apply.  */
 char pthread_create();
 
 int main() {
 pthread_create()
 ; return 0; }
 EOF
-if { (eval echo configure:3391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3544: \"$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 "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
@@ -3410,24 +3563,16 @@ fi
     
 fi
 
 
 else 
     if test -n "$USE_USER_PTHREADS"; then
 	    USE_PTHREADS=
 	    USE_NSPR_THREADS=
-        case "${target}" in
-        *-hpux*)
-            cat >> confdefs.h <<\EOF
-#define _POSIX_C_SOURCE=199506L 1
-EOF
-
-            ;;
-        esac
     else
 	    USE_NSPR_THREADS=1
 	        fi
 fi
 
 case "$target" in
 *-aix4.1*)
     if test -z "$USE_PTHREADS"; then
@@ -3440,43 +3585,71 @@ EOF
 *-aix4.23*)
     if test -z "$USE_NSPR_THREADS"; then
         cat >> confdefs.h <<\EOF
 #define HAVE_POINTER_LOCALTIME_R 1
 EOF
 
     fi
     ;;
+*-hpux*)
+    if test -n "$USE_USER_PTHREADS"; then
+        cat >> confdefs.h <<\EOF
+#define _POSIX_C_SOURCE=199506L 1
+EOF
+
+    fi
+    ;;
 *-mingw*|*-cygwin*|*-uwin*)
         USE_PTHREADS=
     PTHREAD_LDFLAGS=
     USE_USER_PTHREADS=
     ;;
 *-solaris*)
     if test -n "$USE_NATIVE_THREADS"; then
         cat >> confdefs.h <<\EOF
 #define _PR_GLOBAL_THREADS_ONLY 1
 EOF
 
     else
-        cat >> confdefs.h <<\EOF
+        if test -n "$USE_USER_PTHREADS"; then
+            cat >> confdefs.h <<\EOF
 #define _PR_LOCAL_THREADS_ONLY 1
 EOF
 
+        fi
+    fi
+    if test -z "$USE_USER_PTHREADS"; then
+        cat >> confdefs.h <<\EOF
+#define _REENTRANT 1
+EOF
+
+        cat >> confdefs.h <<\EOF
+#define HAVE_POINTER_LOCALTIME_R 1
+EOF
+
+        if test "${target_cpu}" = "i386"; then
+            PR_MD_ASFILES=os_SunOS_x86.s
+        else
+            PR_MD_ASFILES=os_SunOS.s
+            if test -z "$USE_64"; then
+                PR_MD_ASFILES="$PR_MD_ASFILES os_SunOS_32.s"
+            fi
+        fi
     fi
     ;;
 esac
 
 echo $ac_n "checking for dlopen""... $ac_c" 1>&6
-echo "configure:3470: checking for dlopen" >&5
+echo "configure:3643: checking for dlopen" >&5
 if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3475 "configure"
+#line 3648 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dlopen(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char dlopen();
@@ -3489,17 +3662,17 @@ int main() {
 #if defined (__stub_dlopen) || defined (__stub___dlopen)
 choke me
 #else
 dlopen();
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:3498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_dlopen=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   eval "ac_cv_func_dlopen=no"
 fi
@@ -3508,36 +3681,36 @@ fi
 
 if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   :
 else
   echo "$ac_t""no" 1>&6
 
     echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:3517: checking for dlopen in -ldl" >&5
+echo "configure:3690: 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
 else
   ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3525 "configure"
+#line 3698 "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
     builtin and then its argument prototype would still apply.  */
 char dlopen();
 
 int main() {
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:3536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3709: \"$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 "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
@@ -3617,16 +3790,19 @@ fi
 
 
 
 
 
 
 
 
+
+
+
 trap '' 1 2 15
 cat > confcache <<\EOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
 # scripts and configure runs.  It is not useful on other systems.
 # If it contains results you don't want to keep, you may remove or edit it.
 #
 # By default, configure uses ./config.cache as the cache file,
@@ -3860,24 +4036,26 @@ s%@PR_MD_CSRCS@%$PR_MD_CSRCS%g
 s%@PR_MD_ASFILES@%$PR_MD_ASFILES%g
 s%@PR_MD_ARCH_DIR@%$PR_MD_ARCH_DIR%g
 s%@OBJ_SUFFIX@%$OBJ_SUFFIX%g
 s%@LIB_SUFFIX@%$LIB_SUFFIX%g
 s%@DLL_SUFFIX@%$DLL_SUFFIX%g
 s%@MKSHLIB@%$MKSHLIB%g
 s%@DSO_CFLAGS@%$DSO_CFLAGS%g
 s%@DSO_LDOPTS@%$DSO_LDOPTS%g
-s%@DSO_LDFLAGS@%$DSO_LDFLAGS%g
 s%@DEFINES@%$DEFINES%g
 s%@AR_FLAGS@%$AR_FLAGS%g
+s%@ASFLAGS@%$ASFLAGS%g
 s%@OS_LIBS@%$OS_LIBS%g
 s%@EXTRA_LIBS@%$EXTRA_LIBS%g
 s%@AIX_LINK_OPTS@%$AIX_LINK_OPTS%g
 s%@NOSUCHFILE@%$NOSUCHFILE%g
 s%@MOZ_OBJFORMAT@%$MOZ_OBJFORMAT%g
+s%@ULTRASPARC_LIBRARY@%$ULTRASPARC_LIBRARY%g
+s%@ULTRASPARC_FILTER_LIBRARY@%$ULTRASPARC_FILTER_LIBRARY%g
 
 CEOF
 EOF
 
 cat >> $CONFIG_STATUS <<\EOF
 
 # Split the substitutions into bite-sized pieces for seds with
 # small command number limits, like on Digital OSF/1 and HP-UX.
--- a/configure.in
+++ b/configure.in
@@ -227,17 +227,17 @@ AC_PROG_LN_S
 AC_PATH_PROGS(PERL, perl5 perl, :)
 
 dnl ========================================================
 dnl Default platform specific options
 dnl ========================================================
 OBJ_SUFFIX=o
 LIB_SUFFIX=a
 DLL_SUFFIX=so
-MKSHLIB='$(CCC) -shared -o $@'
+MKSHLIB='$(LD) $(DSO_LDOPTS)'
 PR_MD_ASFILES=
 PR_MD_CSRCS=
 PR_MD_ARCH_DIR=unix
 AR_FLAGS='cr $@'
 
 dnl ========================================================
 dnl Override of system specific host options
 dnl ========================================================
@@ -262,16 +262,17 @@ case "$target" in
     MKSHLIB='$(LD) $(DSO_LDOPTS)'
     case "${target_os}" in
     aix3.2*)
         USE_NSPR_THREADS=1
         AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
         AC_DEFINE(AIX_RENAME_SELECT)
         AC_DEFINE(_PR_NO_LARGE_FILES)
         AIX_LINK_OPTS='-bnso -berok'
+        PR_MD_ASFILES=os_AIX.s
         ;;
     aix4.1*)
         AC_DEFINE(AIX_RENAME_SELECT)
         AC_DEFINE(AIX_HAVE_ATOMIC_OP_H)
         AC_DEFINE(AIX_TIMERS)
         AC_DEFINE(_PR_NO_LARGE_FILES)
         AC_DEFINE(AIX4_1)
         MKSHLIB=
@@ -295,37 +296,50 @@ case "$target" in
         ;;
     esac
     CFLAGS="$CFLAGS -qro -qroconst"
     if test `grep -c xlC_r $CC`; then
         CFLAGS="$CFLAGS -qarch=com"
     fi
     AIX_WRAP='$(DIST)/lib/aixwrap.o'
     AIX_TMP='./_aix_tmp.o'
+    if test -n "$USE_64"; then
+        MDCPUCFG_H=_aix64.cfg
+    else
+        if test -n "$USE_IPV6"; then
+            MDCPUCFG_H=_aix32in6.cfg
+        else
+            MDCPUCFG_H=_aix32.cfg
+        fi
+    fi
+    PR_MD_CSRCS=aix.c
     ;;
         
 *-beos*)
     AC_DEFINE(XP_BEOS)
     AC_DEFINE(BeOS)
     AC_DEFINE(BEOS)
+    MKSHLIB='$(CCC) -shared -o $@'
     ;;
 
 *-dgux*)
     AC_DEFINE(XP_UNIX)
     AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
     AC_DEFINE(SVR4)
     AC_DEFINE(SYSV)
     AC_DEFINE(DGUX)
     AC_DEFINE(_DGUX_SOURCE)
     AC_DEFINE(_POSIX4A_DRAFT6_SOURCE)
     MKSHLIB='$(LD) $(DSO_LDOPTS)'
     DSO_LDOPTS=-G
     NOSUCHFILE=/no-such-file
     _OPTIMIZE_FLAGS=-O2
     _DEBUG_FLAGS=
+    MDCPUCFG_H=_dgux.cfg
+    PR_MD_CSRCS=dgux.c
     ;;
 
 *-freebsd*)
     if test "${target_cpu}" != "alpha"; then
         AC_DEFINE(i386)
     fi
     AC_DEFINE(FREEBSD)
     AC_DEFINE(HAVE_BSD_FLOCK)
@@ -333,28 +347,34 @@ case "$target" in
     MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
     if test "$MOZ_OBJFORMAT" = "elf"; then
         DLL_SUFFIX=so
     else
         DLL_SUFFIX=so.1.0
     fi
     DSO_CFLAGS=-fPIC
     DSO_LDOPTS=-Bshareable
-    DSO_LDFLAGS=
     MKSHLIB='$(LD) $(DSO_LDOPTS)'
+    MDCPUCFG_H=_freebsd.cfg
+    PR_MD_CSRCS=freebsd.c
     ;;
 
 *-hpux*)
     AC_DEFINE(HPUX)
     AC_DEFINE(_HPUX_SOURCE)
     DEFINES="$DEFINES -D${target_cpu}"
     DLL_SUFFIX=sl
     MKSHLIB='$(LD) $(DSO_LDOPTS)'
     DSO_LDOPTS='-b +h $(notdir $@)'
-    DSO_LDFLAGS=
+    PR_MD_CSRCS=hpux.c
+    if test -n "$USE_64"; then
+        MDCPUCFG_H=_hpux64.cfg
+    else
+        MDCPUCFG_H=_hpux32.cfg
+    fi
     if test -z "$GNU_CC"; then
         CC="$CC -Ae"
         CXX="$CXX -ext"
         CFLAGS="$CFLAGS +ESlit"
         CXXFLAGS="$CXXFLAGS +ESlit"
         DSO_CFLAGS=+Z
     else
         DSO_CFLAGS=-fPIC
@@ -427,22 +447,25 @@ case "$target" in
     fi
     ;;
 
 *-irix*)
     AC_DEFINE(XP_UNIX)
     AC_DEFINE(IRIX)
     AC_DEFINE(SVR4)
     AC_DEFINE(_SGI_MP_SOURCE)
-    MDCPUCFG_H=_irix32.cfg
     PR_MD_CSRCS=irix.c
     PR_MD_ASFILES=os_Irix.s
-    PR_MD_ARCH_DIR=unix
     MKSHLIB='$(LD) $(SHLIB_LD_OPTS) -rdata_shared -shared -soname $(notdir $@)'
     DSO_LDOPTS='-elf -shared -all'
+    if test -n "$USE_64"; then
+        MDCPUCFG_H=_irix64.cfg
+    else
+        MDCPUCFG_H=_irix32.cfg
+    fi
     case "${target_os}" in
     irix5*)
 	   USE_NSPR_THREADS=1
 	   ;;
     *)
 	   USE_N32=1
 	   USE_PTHREADS=1
 	   ;;
@@ -517,17 +540,36 @@ case "$target" in
     ;;
 
 *-linux*)
     AC_DEFINE(XP_UNIX)
     CFLAGS="$CFLAGS -pipe"
     CXXFLAGS="$CXXFLAGS -pipe"
     MDCPUCFG_H=_linux.cfg
     PR_MD_CSRCS=linux.c
-    PR_MD_ARCH_DIR=unix
+    MKSHLIB='$(LD) $(DSO_LDOPTS) -soname $(notdir $@)'
+    DSO_CFLAGS=-fPIC
+    DSO_LDOPTS=-shared
+    case "${target_cpu}" in
+    alpha)
+        AC_DEFINE(_ALPHA_)
+        AC_DEFINE(__alpha)
+        CFLAGS="$CFLAGS -mieee"
+        CXXFLAGS="$CXXFLAGS -mieee"
+        _OPTIMIZE_FLAGS=-O2
+        ;;
+    m68k)
+        _OPTIMIZE_FLAGS=-O
+        CFLAGS="$CFLAGS -m68020-40"
+        CXXFLAGS="$CXXFLAGS -m68020-40"
+        ;;
+    *)
+        _OPTIMIZE_FLAGS=-O2
+        ;;
+    esac    
     ;;
 
 *-mingw*)
     AC_DEFINE(XP_PC)
     PR_MD_ARCH_DIR=windows
     if test -z "$GNU_CC"; then
 	    OBJ_SUFFIX=obj
 	    LIB_SUFFIX=lib
@@ -582,16 +624,85 @@ case "$target" in
     CC="qcc -Vgcc_ntox86 -w"
     CXX="QCC -Vgcc_ntox86 -w"
     CPP="qcc -Vgcc_ntox86 -w"
     LD="qcc -Vgcc_ntox86 -nostdlib"
     AR="qcc -Vgcc_ntox86 -M -a "
     AR_FLAGS="$@"
 	;;
 
+*-solaris*)
+    AC_DEFINE(XP_UNIX)
+    AC_DEFINE(SVR4)
+    AC_DEFINE(SYSV)
+    AC_DEFINE(__svr4)
+    AC_DEFINE(__svr4__)
+    AC_DEFINE(SOLARIS)
+    if test -n "$USE_64"; then
+        MDCPUCFG=_solaris64.cfg
+    else
+        MDCPUCFG=_solaris32.cfg
+    fi
+    PR_MD_CSRCS=solaris.c
+    MKSHLIB='$(LD) $(DSO_LDOPTS)'
+    DSO_LDOPTS='-G -h $(notdir $@)'
+    if test -n "$GNU_CC"; then
+        DSO_CFLAGS=-fPIC
+    else
+        DSO_CFLAGS=-KPIC
+    fi
+    ASFLAGS="$ASFLAGS -Wa,-P"
+    NOSUCHFILE=/no-such-file
+    if test -n "$GNU_CC"; then
+        if test -n "$USE_MDUPDATE"; then
+            CFLAGS="$CFLAGS -MDupdate"
+            CXXFLAGS="$CXXFLAGS -MDupdate"
+        fi
+    else
+        CC="$CC -xstrconst"
+        CXX="$CXX -Qoption cg -xstrconst"
+    fi
+    if test -n "$BUILD_NUMBER" && test -z "$MOZ_OPTIMIZE"; then
+        CFLAGS="$CFLAGS -xs"
+        CXXFLAGS="$CXXFLAGS -xs"
+    fi
+    if test -n "$USE_64" && test -z "$GNU_CC"; then
+        CC="$CC -xarch=v9"
+        CXX="$CXX -xarch=v9"
+    fi
+    if test "${target_cpu}" = "i386"; then
+        AC_DEFINE(i386)
+        if test -n "$MOZ_DEBUG" && test -n "$GNU_CC"; then
+            _DEBUG_FLAGS="$_DEBUG_FLAGS -Wa,-s -gstabs"
+        fi
+    fi
+    case "${target_os}" in
+    solaris2.3*)
+        AC_DEFINE(_PR_NO_LARGE_FILES)
+        ;;
+    solaris2.4*)
+        AC_DEFINE(_PR_NO_LARGE_FILES)
+        ;;
+    solaris2.5*)
+        AC_DEFINE(SOLARIS2_5)    
+        ;;
+    *)
+        AC_DEFINE(_PR_HAVE_OFF64_T)
+        if test -n "$GNU_CC"; then
+            AC_DEFINE(_LARGEFILE64_SOURCE)
+        fi
+        ;;
+    esac
+    if test "${target_cpu}" = "sun4u"; then
+        ULTRASPARC_LIBRARY=ultrasparc
+        ULTRASPARC_FILTER_LIBRARY=libatomic.so
+        DSO_LDOPTS="$DSO_LDOPTS -f "'$(ULTRASPARC_FILTER_LIBRARY)'
+    fi
+    ;;
+
 *)
     AC_DEFINE(XP_UNIX)
     ;;
    
 esac
 
 dnl Turn off shared libraries if asked to do so.
 if test "$enable_shared" = no; then
@@ -806,21 +917,16 @@ if test -n "$USE_PTHREADS"; then
     AC_CHECK_FUNC(pthread_create,,[
        AC_CHECK_LIB(pthread, pthread_create, [OS_LIBS="-lpthread $OS_LIBS"])
     ])
 
 else 
     if test -n "$USE_USER_PTHREADS"; then
 	    USE_PTHREADS=
 	    USE_NSPR_THREADS=
-        case "${target}" in
-        *-hpux*)
-            AC_DEFINE(_POSIX_C_SOURCE=199506L)
-            ;;
-        esac
     else
 	    USE_NSPR_THREADS=1
 	    dnl AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
     fi
 fi
 dnl Special thread exceptions
 
 case "$target" in
@@ -829,27 +935,46 @@ case "$target" in
         AC_DEFINE(AIX_RENAME_SELECT)
     fi
     ;;
 *-aix4.[23]*)
     if test -z "$USE_NSPR_THREADS"; then
         AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
     fi
     ;;
+*-hpux*)
+    if test -n "$USE_USER_PTHREADS"; then
+        AC_DEFINE(_POSIX_C_SOURCE=199506L)
+    fi
+    ;;
 *-mingw*|*-cygwin*|*-uwin*)
     dnl win32 does not use pthreads
     USE_PTHREADS=
     PTHREAD_LDFLAGS=
     USE_USER_PTHREADS=
     ;;
 *-solaris*)
     if test -n "$USE_NATIVE_THREADS"; then
         AC_DEFINE(_PR_GLOBAL_THREADS_ONLY)
     else
-        AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
+        if test -n "$USE_USER_PTHREADS"; then
+            AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
+        fi
+    fi
+    if test -z "$USE_USER_PTHREADS"; then
+        AC_DEFINE(_REENTRANT)
+        AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
+        if test "${target_cpu}" = "i386"; then
+            PR_MD_ASFILES=os_SunOS_x86.s
+        else
+            PR_MD_ASFILES=os_SunOS.s
+            if test -z "$USE_64"; then
+                PR_MD_ASFILES="$PR_MD_ASFILES os_SunOS_32.s"
+            fi
+        fi
     fi
     ;;
 esac
 
 AC_CHECK_FUNC(dlopen,,[
     AC_CHECK_LIB(dl, dlopen, [OS_LIBS="-ldl $OS_LIBS"])
 ])
 
@@ -900,32 +1025,35 @@ AC_SUBST(PR_MD_ASFILES)
 AC_SUBST(PR_MD_ARCH_DIR)
 
 AC_SUBST(OBJ_SUFFIX)
 AC_SUBST(LIB_SUFFIX)
 AC_SUBST(DLL_SUFFIX)
 AC_SUBST(MKSHLIB)
 AC_SUBST(DSO_CFLAGS)
 AC_SUBST(DSO_LDOPTS)
-AC_SUBST(DSO_LDFLAGS)
 
 AC_SUBST(DEFINES)
 AC_SUBST(DEFS)
 AC_SUBST(AR)
 AC_SUBST(AR_FLAGS)
+AC_SUBST(AS)
+AC_SUBST(ASFLAGS)
 AC_SUBST(DLLTOOL)
 AC_SUBST(WINDRES)
 AC_SUBST(RANLIB)
 AC_SUBST(PERL)
 
 AC_SUBST(OS_LIBS)
 AC_SUBST(EXTRA_LIBS)
 AC_SUBST(AIX_LINK_OPTS)
 AC_SUBST(NOSUCHFILE)
 AC_SUBST(MOZ_OBJFORMAT)
+AC_SUBST(ULTRASPARC_LIBRARY)
+AC_SUBST(ULTRASPARC_FILTER_LIBRARY)
 
 dnl ========================================================
 dnl Generate output files.
 dnl ========================================================
 AC_OUTPUT([
 Makefile 
 config/Makefile
 config/autoconf.mk