This is a live mirror of the Perl 5 development currently hosted at
Configure: scan for truncl.
authorH.Merijn Brand - Tux <>
Wed, 10 Sep 2014 06:29:44 +0000 (08:29 +0200)
committerH.Merijn Brand - Tux <>
Wed, 10 Sep 2014 06:29:44 +0000 (08:29 +0200)
(C99 version of aintl)

backport of 4842dad7c256d1564348893cff3bfed08dadcbe4
Author: Jarkko Hietaniemi <>  2014-09-07 03:55:03

Plus a missed copy/paste error

U/perl/d_truncl.U [new file with mode: 0644]

index 91f25ef..b153bd5 100644 (file)
@@ -8,7 +8,8 @@
 ?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 \
-       d_sqrtl d_aintl d_copysignl d_ilogbl d_scalbnl d_frexpl d_ldexpl
+       d_sqrtl d_aintl d_copysignl d_ilogbl d_scalbnl d_frexpl d_ldexpl \
+       d_truncl
 ?MAKE: -pick add $@ %<
 ?S:    This variable conditionally defines the HAS_MODFL symbol, which
@@ -130,10 +131,14 @@ if $test "$uselongdouble" = "$define"; then
        message="$message sqrtl"
     if $test "$d_modfl" != "$define"; then
-       if $test "$d_aintl:$d_copysignl" = "$define:$define"; then
-           echo "You have both aintl and copysignl, so I can emulate modfl."
+       if $test "$d_truncl:$d_copysignl" = "$define:$define"; then
+           echo "You have both truncl and copysignl, so I can emulate modfl."
-           message="$message modfl"
+           if $test "$d_aintl:$d_copysignl" = "$define:$define"; then
+               echo "You have both aintl and copysignl, so I can emulate modfl."
+           else
+               message="$message modfl"
+           fi
     if $test "$d_frexpl" != "$define"; then
diff --git a/U/perl/d_truncl.U b/U/perl/d_truncl.U
new file mode 100644 (file)
index 0000000..7c536a6
--- /dev/null
@@ -0,0 +1,22 @@
+?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.
+?MAKE:d_truncl: Inlibc
+?MAKE: -pick add $@ %<
+?S:    This variable conditionally defines the HAS_TRUNCL symbol, which
+?S:    indicates to the C program that the truncl() routine is available
+?S:    to round long doubles towards zero. If copysignl is also present,
+?S:    we can emulate modfl.
+?C:    This symbol, if defined, indicates that the truncl routine is
+?C:    available. If copysignl is also present we can emulate modfl.
+?H:#$d_truncl HAS_TRUNCL               /**/
+?LINT:set d_truncl
+: see if truncl exists
+set truncl d_truncl
+eval $inlibc