Rely on C89 <math.h>
authorAaron Crane <arc@cpan.org>
Sat, 14 Oct 2017 13:20:33 +0000 (15:20 +0200)
committerAaron Crane <arc@cpan.org>
Sat, 21 Oct 2017 15:53:15 +0000 (16:53 +0100)
This requires a corresponding change in the metaconfig units.

24 files changed:
Configure
Cross/config.sh-arm-linux
Cross/config.sh-arm-linux-n770
NetWare/config.wc
NetWare/config_H.wc
Porting/Glossary
Porting/config.sh
Porting/config_H
config_h.SH
configure.com
perl.h
plan9/config.plan9
plan9/config_h.sample
plan9/config_sh.sample
symbian/config.sh
uconfig.h
uconfig.sh
uconfig64.sh
win32/config.ce
win32/config.gc
win32/config.vc
win32/config_H.ce
win32/config_H.gc
win32/config_H.vc

index d0fd0cf..0507d57 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -992,7 +992,6 @@ i_locale=''
 i_machcthr=''
 i_malloc=''
 i_mallocmalloc=''
-i_math=''
 i_memory=''
 i_mntent=''
 d_gdbm_ndbm_h_uses_prototypes=''
@@ -13973,17 +13972,10 @@ eval $inlibc
 set fp_class d_fp_class
 eval $inlibc
 
-: see if this is a math.h system
-set math.h i_math
-eval $inhdr
-
 : check for fpclassify
 echo "Checking to see if you have fpclassify..." >&4
 $cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
 #include <math.h>
-#endif
 int main() { return fpclassify(1.0) == FP_NORMAL ? 0 : 1; }
 EOCP
 set try
@@ -15785,10 +15777,7 @@ $rm -f isblank*
 : check for isfinite
 echo "Checking to see if you have isfinite..." >&4
 $cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
 #include <math.h>
-#endif
 int main() { return isfinite(0.0); }
 EOCP
 set try
@@ -15810,10 +15799,7 @@ eval $inlibc
 : check for isinf
 echo "Checking to see if you have isinf..." >&4
 $cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
 #include <math.h>
-#endif
 int main() { return isinf(0.0); }
 EOCP
 set try
@@ -15835,10 +15821,7 @@ eval $inlibc
 : check for isless
 echo "Checking to see if you have isless..." >&4
 $cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
 #include <math.h>
-#endif
 int main() { return isless(0.0); }
 EOCP
 set try
@@ -15856,10 +15839,7 @@ eval $setvar
 : check for isnan
 echo "Checking to see if you have isnan..." >&4
 $cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
 #include <math.h>
-#endif
 int main() { return isnan(0.0); }
 EOCP
 set try
@@ -15881,10 +15861,7 @@ eval $inlibc
 : check for isnormal
 echo "Checking to see if you have isnormal..." >&4
 $cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
 #include <math.h>
-#endif
 int main() { return isnormal(0.0); }
 EOCP
 set try
@@ -15999,11 +15976,9 @@ eval $inlibc
 
 : check to see if math.h defines _LIB_VERSION
 d_libm_lib_version="$undef"
-case $i_math in
-    $define)
-       echo " "
-       echo "Checking to see if your libm supports _LIB_VERSION..." >&4
-       $cat >try.c <<EOCP
+echo " "
+echo "Checking to see if your libm supports _LIB_VERSION..." >&4
+$cat >try.c <<EOCP
 #include <unistd.h>
 #include <math.h>
 int main (int argc, char *argv[])
@@ -16012,18 +15987,15 @@ int main (int argc, char *argv[])
     return (0);
     } /* main */
 EOCP
-       set try
-       if eval $compile; then
-           foo=`$run ./try`
-           echo "Yes, it does ($foo)" >&4
-           d_libm_lib_version="$define"
-       else
-           echo "No, it does not (probably harmless)" >&4
-           fi
-       $rm_try
-       ;;
-
-    esac
+set try
+if eval $compile; then
+    foo=`$run ./try`
+    echo "Yes, it does ($foo)" >&4
+    d_libm_lib_version="$define"
+else
+    echo "No, it does not (probably harmless)" >&4
+    fi
+$rm_try
 
 : see if link exists
 set link d_link
@@ -16318,7 +16290,7 @@ eval $inlibc
 
 : see if prototype for modfl is available
 echo " "
-set d_modflproto modfl $i_math math.h
+set d_modflproto modfl define math.h
 eval $hasproto
 
 if $test "$uselongdouble" = "$define"; then
@@ -18334,11 +18306,8 @@ eval $inhdr
 : see if signbit exists
 $echo $n "Checking to see if you have signbit() available to work on $nvtype... $c" >&4
 $cat >try.c <<EOCP
-#$i_math I_MATH
 #$i_sunmath I_SUNMATH
-#ifdef I_MATH
-#  include <math.h>
-#endif
+#include <math.h>
 #ifdef I_SUNMATH  /* Solaris special math library */
 #  include <sunmath.h>
 #endif
@@ -20062,11 +20031,8 @@ $cat >try.c <<EOP
 #define LONG_DOUBLESIZE $longdblsize
 #define LONG_DOUBLEKIND $longdblkind
 #endif
-#$i_math I_MATH
 #$i_string I_STRING
-#ifdef I_MATH
 #include <math.h>
-#endif
 #ifdef I_STRING
 #  include <string.h>
 #endif
@@ -24468,7 +24434,6 @@ i_locale='$i_locale'
 i_machcthr='$i_machcthr'
 i_malloc='$i_malloc'
 i_mallocmalloc='$i_mallocmalloc'
-i_math='$i_math'
 i_memory='$i_memory'
 i_mntent='$i_mntent'
 i_ndbm='$i_ndbm'
index c172f93..0e4f128 100644 (file)
@@ -750,7 +750,6 @@ i_locale='define'
 i_machcthr='undef'
 i_malloc='define'
 i_mallocmalloc='undef'
-i_math='define'
 i_memory='undef'
 i_mntent='define'
 i_ndbm='undef'
index 27f2901..1b94e74 100644 (file)
@@ -611,7 +611,6 @@ i_locale='define'
 i_machcthr='undef'
 i_malloc='define'
 i_mallocmalloc='undef'
-i_math='define'
 i_memory='undef'
 i_mntent='define'
 i_ndbm='undef'
index 333bb88..5c36906 100644 (file)
@@ -732,7 +732,6 @@ i_locale='define'
 i_machcthr='undef'
 i_malloc='define'
 i_mallocmalloc='undef'
-i_math='define'
 i_memory='undef'
 i_mntent='undef'
 i_ndbm='undef'
index 2949061..9fa1f71 100644 (file)
  */
 #define        I_LOCALE                /**/
 
-/* I_MATH:
- *     This symbol, if defined, indicates to the C program that it should
- *     include <math.h>.
- */
-#define I_MATH         /**/
-
 /* I_MEMORY:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <memory.h>.
index 27078ed..ea8f5c8 100644 (file)
@@ -3494,10 +3494,6 @@ i_mallocmalloc (i_mallocmalloc.U):
        This variable conditionally defines the I_MALLOCMALLOC symbol,
        and indicates whether a C program should include <malloc/malloc.h>.
 
-i_math (i_math.U):
-       This variable conditionally defines the I_MATH symbol, and indicates
-       whether a C program may include <math.h>.
-
 i_memory (i_memory.U):
        This variable conditionally defines the I_MEMORY symbol, and indicates
        whether a C program should include <memory.h>.
index 1187213..29dff40 100644 (file)
@@ -768,7 +768,6 @@ i_locale='define'
 i_machcthr='undef'
 i_malloc='undef'
 i_mallocmalloc='define'
-i_math='define'
 i_memory='undef'
 i_mntent='undef'
 i_ndbm='define'
index ac4c541..9cec42d 100644 (file)
  */
 #define        I_LOCALE                /**/
 
-/* I_MATH:
- *     This symbol, if defined, indicates to the C program that it should
- *     include <math.h>.
- */
-#define I_MATH         /**/
-
 /* I_MEMORY:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <memory.h>.
index a774644..f221202 100755 (executable)
@@ -673,12 +673,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$i_locale     I_LOCALE                /**/
 
-/* I_MATH:
- *     This symbol, if defined, indicates to the C program that it should
- *     include <math.h>.
- */
-#$i_math I_MATH                /**/
-
 /* I_MEMORY:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <memory.h>.
index 137b06d..9d050b9 100644 (file)
@@ -6557,7 +6557,6 @@ $ WC "i_machcthr='undef'"
 $ WC "i_machcthreads='undef'"
 $ WC "i_malloc='undef'"
 $ WC "i_mallocmalloc='undef'"
-$ WC "i_math='define'"
 $ WC "i_memory='undef'"
 $ WC "i_mntent='undef'"
 $ WC "i_ndbm='undef'"
diff --git a/perl.h b/perl.h
index ce96d7b..caf74e2 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -4004,26 +4004,10 @@ static PERL_MG_UFUNC(foo_get, index, val)
 #define PERL_MG_UFUNC(name,ix,sv) I32 name(pTHX_ IV ix, SV *sv)
 #endif
 
-#ifdef I_MATH
-#    include <math.h>
-#    ifdef __VMS
+#include <math.h>
+#ifdef __VMS
      /* isfinite and others are here rather than in math.h as C99 stipulates */
-#        include <fp.h>
-#    endif
-#else
-START_EXTERN_C
-           double exp (double);
-           double log (double);
-           double log10 (double);
-           double sqrt (double);
-           double frexp (double,int*);
-           double ldexp (double,int);
-           double modf (double,double*);
-           double sin (double);
-           double cos (double);
-           double atan2 (double,double);
-           double pow (double,double);
-END_EXTERN_C
+#    include <fp.h>
 #endif
 
 #ifndef __cplusplus
index 704a96d..b75842f 100644 (file)
  */
 #define        I_LOCALE                /**/
 
-/* I_MATH:
- *     This symbol, if defined, indicates to the C program that it should
- *     include <math.h>.
- */
-#define I_MATH         /**/
-
 /* I_MEMORY:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <memory.h>.
index 2759f37..8dbae1a 100644 (file)
  */
 #define        I_LOCALE                /**/
 
-/* I_MATH:
- *     This symbol, if defined, indicates to the C program that it should
- *     include <math.h>.
- */
-#define I_MATH         /**/
-
 /* I_MEMORY:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <memory.h>.
index 2d30cf1..74c1680 100644 (file)
@@ -744,7 +744,6 @@ i_locale='define'
 i_machcthr='undef'
 i_malloc='undef'
 i_mallocmalloc='undef'
-i_math='define'
 i_memory='undef'
 i_mntent='undef'
 i_ndbm='undef'
index ce2c56e..f7c316f 100644 (file)
@@ -672,7 +672,6 @@ i_locale='define'
 i_machcthr='undef'
 i_malloc='undef'
 i_mallocmalloc='undef'
-i_math='define'
 i_memory='undef'
 i_mntent='undef'
 i_ndbm='undef'
index 09a7f10..6d76726 100644 (file)
--- a/uconfig.h
+++ b/uconfig.h
  */
 /*#define      I_LOCALE                / **/
 
-/* I_MATH:
- *     This symbol, if defined, indicates to the C program that it should
- *     include <math.h>.
- */
-#define I_MATH         /**/
-
 /* I_MEMORY:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <memory.h>.
 #endif
 
 /* Generated from:
- * fde6b587c10bf240fba012827a4814925eb06869ee98bdba652e94b6c77e16e2 config_h.SH
- * 31e7d5c0dd56393cf400a70fb22e332e63a472cb46a601b3903b54d2ece44df0 uconfig.sh
+ * 614451187d29353fa80ad1412261b053d40e3d76c3d5daf64dd977d9c6f8de80 config_h.SH
+ * 0640d4c66813ed73e42a7eb45e34f57662c6fe45b11a157223ff7b1cfa2199ba uconfig.sh
  * ex: set ro: */
index 5dde050..560db2d 100644 (file)
@@ -658,7 +658,6 @@ i_locale='undef'
 i_machcthr='undef'
 i_malloc='undef'
 i_mallocmalloc='undef'
-i_math='define'
 i_memory='undef'
 i_mntent='undef'
 i_ndbm='undef'
index b36d71e..c6f64df 100644 (file)
@@ -658,7 +658,6 @@ i_locale='undef'
 i_machcthr='undef'
 i_malloc='undef'
 i_mallocmalloc='undef'
-i_math='define'
 i_memory='undef'
 i_mntent='undef'
 i_ndbm='undef'
index c9711a4..956b6cc 100644 (file)
@@ -728,7 +728,6 @@ i_locale='define'
 i_machcthr='undef'
 i_malloc='define'
 i_mallocmalloc='undef'
-i_math='define'
 i_memory='undef'
 i_mntent='undef'
 i_ndbm='undef'
index c62ffcf..b0b27ea 100644 (file)
@@ -742,7 +742,6 @@ i_locale='define'
 i_machcthr='undef'
 i_malloc='define'
 i_mallocmalloc='undef'
-i_math='define'
 i_memory='undef'
 i_mntent='undef'
 i_ndbm='undef'
index 0b0148c..654a331 100644 (file)
@@ -739,7 +739,6 @@ i_locale='define'
 i_machcthr='undef'
 i_malloc='define'
 i_mallocmalloc='undef'
-i_math='define'
 i_memory='undef'
 i_mntent='undef'
 i_ndbm='undef'
index 9a06c82..6b7efed 100644 (file)
  */
 /*#define      I_LOCALE                /**/
 
-/* I_MATH:
- *     This symbol, if defined, indicates to the C program that it should
- *     include <math.h>.
- */
-#define I_MATH         /**/
-
 /* I_MEMORY:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <memory.h>.
index dd7ea58..7573a3b 100644 (file)
  */
 #define        I_LOCALE                /**/
 
-/* I_MATH:
- *     This symbol, if defined, indicates to the C program that it should
- *     include <math.h>.
- */
-#define I_MATH         /**/
-
 /* I_MEMORY:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <memory.h>.
index 664dda3..ac25876 100644 (file)
  */
 #define        I_LOCALE                /**/
 
-/* I_MATH:
- *     This symbol, if defined, indicates to the C program that it should
- *     include <math.h>.
- */
-#define I_MATH         /**/
-
 /* I_MEMORY:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <memory.h>.