Solaris long double fixes from Alan Burlison.
Jarkko Hietaniemi [Mon, 13 Mar 2000 00:41:51 +0000 (00:41 +0000)]
p4raw-id: //depot/cfgperl@5687

hints/solaris_2.sh
perl.h
pp.c

index 0965da5..d6556d2 100644 (file)
@@ -48,7 +48,7 @@ esac
 test -z "`${cc:-cc} -V 2>&1|grep -i workshop`" || ccisworkshop="$define"
 test -z "`${cc:-cc} -v 2>&1|grep -i gcc`"      || ccisgcc="$define"
 
-cat >UU/workshoplibpth.cbu<<EOCBU
+cat >UU/workshoplibpth.cbu<<'EOCBU'
 case "$workshoplibpth_done" in
 '')    case "$use64bitall" in
        "$define"|true|[yY]*)
diff --git a/perl.h b/perl.h
index d4d2292..2b4465c 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1145,8 +1145,15 @@ typedef NVTYPE NV;
 #   endif
 #   define NV_DIG LDBL_DIG
 #   ifdef HAS_SQRTL
-#       define Perl_modf modfl
-#       define Perl_frexp frexpl
+        /* libsunmath doesn't have modfl and frexpl as of mid-March 2000 */
+       /* XXX Configure probe for modfl and frexpl needed XXX */
+#       if defined(__sun) && defined(__svr4)
+#           define Perl_modf(x,y) ((long double)modf((double)(x),(double*)(y)))
+#           define Perl_frexp(x) ((long double)frexp((double)(x)))
+#       else
+#           define Perl_modf modfl
+#           define Perl_frexp frexpl
+#       endif
 #       define Perl_cos cosl
 #       define Perl_sin sinl
 #       define Perl_sqrt sqrtl
diff --git a/pp.c b/pp.c
index 01a90e2..30476bd 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -1199,7 +1199,7 @@ PP(pp_ncmp)
     {
       dPOPTOPnnrl;
       I32 value;
-#ifdef __osf__ /* XXX fix in 5.6.1 --jhi */
+#ifdef __osf__ /* XXX Configure probe for isnan and isnanl needed XXX */
 #if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
 #define Perl_isnan isnanl
 #else