In metaconfig.git, the branch master has been updated <http://perl5.git.perl.org/metaconfig.git/commitdiff/34a1cac6f6b4852b6f13e9642d8be540ce8fb268?hp=4098e4ce324d96b4e0caaf51584558ec5fab288e>
- Log ----------------------------------------------------------------- commit 34a1cac6f6b4852b6f13e9642d8be540ce8fb268 Author: Aaron Crane <[email protected]> Date: Thu Apr 21 17:20:04 2016 +0100 Fix wording for glossary of lrint() and related functions This corrects infelicities in the following: commit bc580dd327b37b38d4f66d5c335b3e9fc12eaac8 Author: Jarkko Hietaniemi <[email protected]> Date: Mon Feb 2 17:26:16 2015 -0500 Configure: lrintl, lroundl, llrintl, llroundl M U/perl/d_llrint.U M U/perl/d_llrintl.U M U/perl/d_lrint.U M U/perl/d_lrintl.U commit e391925f5e743d4299c0b40116c98c36a273d45b Author: Aaron Crane <[email protected]> Date: Thu Apr 21 17:09:08 2016 +0100 Delete Configure probe for d_modfl_pow32_bug in d_modfl.U Perl commit 94a2587fdd5c930411410a33daa1209d3ef941ea removed the glossary entries and the like, but left the Configure probe in place. M U/perl/d_modfl.U ----------------------------------------------------------------------- Summary of changes: U/perl/d_llrint.U | 8 ++--- U/perl/d_llrintl.U | 8 ++--- U/perl/d_lrint.U | 8 ++--- U/perl/d_lrintl.U | 8 ++--- U/perl/d_modfl.U | 87 +++--------------------------------------------------- 5 files changed, 20 insertions(+), 99 deletions(-) diff --git a/U/perl/d_llrint.U b/U/perl/d_llrint.U index ee93eac..7801826 100644 --- a/U/perl/d_llrint.U +++ b/U/perl/d_llrint.U @@ -6,13 +6,13 @@ ?S:d_llrint: ?S: This variable conditionally defines the HAS_LLRINT symbol, which ?S: indicates to the C program that the llrint() routine is available -?S: to return the long long value closest to (according to the current -?S: rounding mode) to x. +?S: to return the long long value closest to a double (according +?S: to the current rounding mode). ?S:. ?C:HAS_LLRINT: ?C: This symbol, if defined, indicates that the llrint routine is -?C: available to return the closest long long value according to -?C: the current rounding mode. +?C: available to return the long long value closest to a double +?C: (according to the current rounding mode). ?C:. ?H:#$d_llrint HAS_LLRINT /**/ ?H:. diff --git a/U/perl/d_llrintl.U b/U/perl/d_llrintl.U index 87df64e..b2cc3a4 100644 --- a/U/perl/d_llrintl.U +++ b/U/perl/d_llrintl.U @@ -6,13 +6,13 @@ ?S:d_llrintl: ?S: This variable conditionally defines the HAS_LLRINTL symbol, which ?S: indicates to the C program that the llrintl() routine is available -?S: to return the long long value closest to (according to the current -?S: rounding mode) to x. +?S: to return the long long value closest to a long double (according +?S: to the current rounding mode). ?S:. ?C:HAS_LLRINTL: ?C: This symbol, if defined, indicates that the llrintl routine is -?C: available to return the closest long long value of the long double -?C: argument according to the current rounding mode. +?C: available to return the long long value closest to a long double +?C: (according to the current rounding mode). ?C:. ?H:#$d_llrintl HAS_LLRINTL /**/ ?H:. diff --git a/U/perl/d_lrint.U b/U/perl/d_lrint.U index 8d59d5d..f5880ba 100644 --- a/U/perl/d_lrint.U +++ b/U/perl/d_lrint.U @@ -6,13 +6,13 @@ ?S:d_lrint: ?S: This variable conditionally defines the HAS_LRINT symbol, which ?S: indicates to the C program that the lrint() routine is available -?S: to return the integral value closest to (according to the current -?S: rounding mode) to x. +?S: to return the integral value closest to a double (according +?S: to the current rounding mode). ?S:. ?C:HAS_LRINT: ?C: This symbol, if defined, indicates that the lrint routine is -?C: available to return the closest integral value according to -?C: the current rounding mode. +?C: available to return the integral value closest to a double +?C: (according to the current rounding mode). ?C:. ?H:#$d_lrint HAS_LRINT /**/ ?H:. diff --git a/U/perl/d_lrintl.U b/U/perl/d_lrintl.U index 649b1bd..f8e9466 100644 --- a/U/perl/d_lrintl.U +++ b/U/perl/d_lrintl.U @@ -6,13 +6,13 @@ ?S:d_lrintl: ?S: This variable conditionally defines the HAS_LRINTL symbol, which ?S: indicates to the C program that the lrintl() routine is available -?S: to return the integral value closest to (according to the current -?S: rounding mode) to x. +?S: to return the integral value closest to a long double (according +?S: to the current rounding mode). ?S:. ?C:HAS_LRINTL: ?C: This symbol, if defined, indicates that the lrintl routine is -?C: available to return the closest integral value of the long double -?C: argument according to the current rounding mode. +?C: available to return the integral value closest to a long double +?C: (according to the current rounding mode). ?C:. ?H:#$d_lrintl HAS_LRINTL /**/ ?H:. diff --git a/U/perl/d_modfl.U b/U/perl/d_modfl.U index b153bd5..23c42b6 100644 --- a/U/perl/d_modfl.U +++ b/U/perl/d_modfl.U @@ -5,9 +5,8 @@ ?RCS: You may distribute under the terms of either the GNU General Public ?RCS: License or the Artistic License, as specified in the README file. ?RCS: -?MAKE:d_modfl d_modflproto d_modfl_pow32_bug: Inlibc Compile Hasproto cat \ - rm_try test sPRIfldbl d_longdbl osname gccversion ccflags run \ - uselongdouble i_math \ +?MAKE:d_modfl d_modflproto: Inlibc Compile Hasproto cat \ + test ccflags uselongdouble i_math \ d_sqrtl d_aintl d_copysignl d_ilogbl d_scalbnl d_frexpl d_ldexpl \ d_truncl ?MAKE: -pick add $@ %< @@ -21,13 +20,6 @@ ?S: to the program to supply one. C99 says it should be ?S: long double modfl(long double, long double *); ?S:. -?S:d_modfl_pow32_bug: -?S: This variable conditionally defines the HAS_MODFL_POW32_BUG symbol, -?S: which indicates that modfl() is broken for long doubles >= pow(2, 32). -?S: For example from 4294967303.150000 one would get 4294967302.000000 -?S: and 1.150000. The bug has been seen in certain versions of glibc, -?S: release 2.2.2 is known to be okay. -?S:. ?C:HAS_MODFL: ?C: This symbol, if defined, indicates that the modfl routine is ?C: available to split a long double x into a fractional part f and @@ -38,19 +30,11 @@ ?C: a prototype for the modfl() function. Otherwise, it is up ?C: to the program to supply one. ?C:. -?C:HAS_MODFL_POW32_BUG: -?C: This symbol, if defined, indicates that the modfl routine is -?C: broken for long doubles >= pow(2, 32). -?C: For example from 4294967303.150000 one would get 4294967302.000000 -?C: and 1.150000. The bug has been seen in certain versions of glibc, -?C: release 2.2.2 is known to be okay. -?C:. ?H:#$d_modfl HAS_MODFL /**/ ?H:#$d_modflproto HAS_MODFL_PROTO /**/ -?H:#$d_modfl_pow32_bug HAS_MODFL_POW32_BUG /**/ ?H:. -?T:foo saveccflags message -?F:!try +?T:message +?LINT:set d_modfl ?LINT:set d_modflproto ?LINT:change ccflags : see if modfl exists @@ -62,69 +46,6 @@ echo " " set d_modflproto modfl $i_math math.h eval $hasproto -d_modfl_pow32_bug="$undef" - -case "$d_longdbl$d_modfl" in -$define$define) - $cat <<EOM -Checking to see whether your modfl() is okay for large values... -EOM -$cat >try.c <<EOCP -#include <math.h> -#include <stdio.h> -EOCP -if $test "X$d_modflproto" != "X$define"; then - $cat >>try.c <<EOCP -/* Sigh. many current glibcs provide the function, but do not prototype it. */ -long double modfl (long double, long double *); -EOCP -fi -$cat >>try.c <<EOCP -int main() { - long double nv = 4294967303.15; - long double v, w; - v = modfl(nv, &w); -#ifdef __GLIBC__ - printf("glibc"); -#endif - printf(" %"$sPRIfldbl" %"$sPRIfldbl" %"$sPRIfldbl"\n", nv, v, w); - return 0; -} -EOCP - case "$osname:$gccversion" in - aix:) saveccflags="$ccflags" - ccflags="$ccflags -qlongdouble" ;; # to avoid core dump - esac - set try - if eval $compile; then - foo=`$run ./try` - case "$foo" in - *" 4294967303.150000 1.150000 4294967302.000000") - echo >&4 "Your modfl() is broken for large values." - d_modfl_pow32_bug="$define" - case "$foo" in - glibc) echo >&4 "You should upgrade your glibc to at least 2.2.2 to get a fixed modfl()." - ;; - esac - ;; - *" 4294967303.150000 0.150000 4294967303.000000") - echo >&4 "Your modfl() seems okay for large values." - ;; - *) echo >&4 "I don't understand your modfl() at all." - d_modfl="$undef" - ;; - esac - $rm_try - else - echo "I cannot figure out whether your modfl() is okay, assuming it isn't." - d_modfl="$undef" - fi - case "$osname:$gccversion" in - aix:) ccflags="$saveccflags" ;; # restore - esac - ;; -esac - if $test "$uselongdouble" = "$define"; then message="" if $test "$d_sqrtl" != "$define"; then -- perl5 metaconfig repository
