Add libsunmath (long double math library for Solaris,
Jarkko Hietaniemi [Tue, 29 Feb 2000 23:01:35 +0000 (23:01 +0000)]
SUNWspro cc only) awareness; fix various Solaris nits.

p4raw-id: //depot/cfgperl@5374

Configure
config_h.SH
epoc/config.sh
hints/solaris_2.sh
perl.h
vms/subconfigure.com
vos/config.def
win32/config.bc
win32/config.gc
win32/config.vc

index f8bdce8..229c6e4 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Tue Feb 29 19:47:23 EET 2000 [metaconfig 3.0 PL70]
+# Generated on Wed Mar  1 00:58:04 EET 2000 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.com)
 
 cat >/tmp/c1$$ <<EOF
@@ -650,6 +650,7 @@ i_stddef=''
 i_stdlib=''
 i_string=''
 strings=''
+i_sunmath=''
 i_sysaccess=''
 i_sysdir=''
 i_sysfile=''
@@ -3704,9 +3705,7 @@ case "$libswanted" in
 '') libswanted='c_s';;
 esac
 case "$usesocks" in
-$define)
-       libswanted="$libswanted socks5 socks5_sh"
-       ;;
+"$define") libswanted="$libswanted socks5 socks5_sh" ;;
 esac
 libsfound=''
 libsfiles=''
@@ -14359,6 +14358,10 @@ $rm -f varargs*
 set stddef.h i_stddef
 eval $inhdr
 
+: see if this is a sunmath.h system
+set sunmath.h i_sunmath
+eval $inhdr
+
 : see if sys/access.h is available
 set sys/access.h i_sysaccess
 eval $inhdr
@@ -15234,6 +15237,7 @@ i_stdarg='$i_stdarg'
 i_stddef='$i_stddef'
 i_stdlib='$i_stdlib'
 i_string='$i_string'
+i_sunmath='$i_sunmath'
 i_sysaccess='$i_sysaccess'
 i_sysdir='$i_sysdir'
 i_sysfile='$i_sysfile'
index 07fbc03..9d3ec3d 100644 (file)
@@ -2370,6 +2370,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$i_socks      I_SOCKS         /**/
 
+/* I_SUNMATH:
+ *     This symbol, if defined, indicates that <sunmath.h> exists and
+ *     should be included.
+ */
+#$i_sunmath    I_SUNMATH               /**/
+
 /* I_SYSLOG:
  *     This symbol, if defined, indicates that <syslog.h> exists and
  *     should be included.
index e0d7166..7e913d6 100644 (file)
@@ -440,6 +440,7 @@ i_stdarg='define'
 i_stddef='define'
 i_stdlib='define'
 i_string='define'
+i_sunmath='undef'
 i_sysaccess='undef'
 i_sysdir='undef'
 i_sysfile='undef'
index c1f2074..a52c88f 100644 (file)
@@ -333,8 +333,8 @@ EOM
 esac
 EOCBU
 
-cat > UU/useuselargefiles.cbu <<'EOCBU'
-# This script UU/useuselargefiles.cbu will get 'called-back' by Configure 
+cat > UU/uselargefiles.cbu <<'EOCBU'
+# This script UU/uselargefiles.cbu will get 'called-back' by Configure 
 # after it has prompted the user for whether to use large files.
 case "$uselargefiles" in
 ''|$define|true|[yY]*)
@@ -373,12 +373,12 @@ case "$use64bitall" in
                # I don't know what are the flags to make gcc sparcv9-aware,
                # I'm just guessing. --jhi
                ccflags="$ccflags -mv9"
-               ldflags="$ccflags -mv9"
+               ldflags="$ldflags -mv9"
                lddlflags="$lddlflags -G -mv9"
                ;;
            *)
                ccflags="$ccflags `getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
-               ldflags="$ccflags `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
+               ldflags="$ldflags `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
                lddlflags="$lddlflags -G `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
                ;;
            esac        
@@ -392,7 +392,6 @@ Cannot continue, aborting.
 EOM
                exit 1
            fi 
-           loclibpth="$loclibpth /usr/lib/sparcv9"
            libscheck='case "`/usr/bin/file $xxx`" in
 *64-bit*|*SPARCV9*) ;;
 *) xxx=/no/64-bit$xxx ;;
@@ -402,13 +401,33 @@ esac
 EOCBU
  
 # Actually, we want to run this already now, if so requested,
-# because we need to fix up the library paths right now.
+# because we need to fix up the flags right now.
 case "$use64bitall" in
 "$define"|true|[yY]*)
        . ./UU/use64bitall.cbu
        ;;
 esac
 
+cat > UU/uselongdouble.cbu <<'EOCBU'
+# This script UU/uselongdouble.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use long doubles.
+case "$uselongdouble" in
+"$define"|true|[yY]*)
+       if test ! -f /opt/SUNWspro/lib/libsunmath.so; then
+               cat <<EOM
+
+I do not see the libsunmath.so in /opt/SUNWspro/lib;
+therefore I cannot do long doubles, sorry.
+
+EOM
+               exit 1
+       fi
+       libswanted="$libswanted sunmath"
+       loclibpth="$loclibpth /opt/SUNWspro/lib"
+       ;;
+esac
+EOCBU
+
 # This is just a trick to include some useful notes.
 cat > /dev/null <<'End_of_Solaris_Notes'
 
diff --git a/perl.h b/perl.h
index 6bf8809..fb48cdb 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1135,7 +1135,11 @@ typedef UVTYPE UV;
 
 typedef NVTYPE NV;
 
+
 #ifdef USE_LONG_DOUBLE
+#   ifdef I_SUNMATH
+#       include <sunmath.h>
+#   endif
 #   define NV_DIG LDBL_DIG
 #   ifdef HAS_SQRTL
 #       define Perl_modf modfl
index 6f7c4a0..585ab64 100644 (file)
@@ -72,6 +72,7 @@ $ perl_d_sqrtl = "define"
 $ perl_d_statfs_f_flags = "undef"
 $ perl_d_statfs_s = "undef"
 $ perl_d_ustat = "undef"
+$ perl_i_sunmath = "undef"
 $ perl_i_sysstatfs = "undef"
 $ perl_i_sysvfs = "undef"
 $ perl_i_ustat = "undef"
@@ -4008,6 +4009,7 @@ $ WC "d_gethname='" + perl_d_gethname + "'"
 $ WC "d_phostname='" + perl_d_phostname + "'"
 $ WC "d_accessx='" + perl_d_accessx + "'"
 $ WC "d_eaccess='" + perl_d_eaccess + "'"
+$ WC "i_sunmath='" + perl_i_sunmath + "'"
 $ WC "i_sysaccess='" + perl_i_sysaccess + "'"
 $ WC "i_syssecrt='" + perl_i_syssecrt + "'"
 $ WC "d_fd_set='" + perl_d_fd_set + "'"
index bc294dc..c943b73 100644 (file)
@@ -324,6 +324,7 @@ $i_stdarg='define'
 $i_stddef='define'
 $i_stdlib='define'
 $i_string='define'
+$i_sunmath='undef'
 $i_sysaccess='undef'
 $i_sysdir='undef'
 $i_sysfile='undef'
index 19ce10d..737e0e2 100644 (file)
@@ -452,6 +452,7 @@ i_stdarg='define'
 i_stddef='define'
 i_stdlib='define'
 i_string='define'
+i_sunmath='undef'
 i_sysaccess='undef'
 i_sysdir='undef'
 i_sysfile='undef'
index b6a4175..9aab8e0 100644 (file)
@@ -452,6 +452,7 @@ i_stdarg='define'
 i_stddef='define'
 i_stdlib='define'
 i_string='define'
+i_sunmath='undef'
 i_sysaccess='undef'
 i_sysdir='undef'
 i_sysfile='undef'
index 354f9be..5203ed3 100644 (file)
@@ -452,6 +452,7 @@ i_stdarg='define'
 i_stddef='define'
 i_stdlib='define'
 i_string='define'
+i_sunmath='undef'
 i_sysaccess='undef'
 i_sysdir='undef'
 i_sysfile='undef'