X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/97eac949b0a5801c6ea6dfa29f54d0e6ecbb7137..234b86dfbf86ead1bb11552473feb1a73b654443:/Configure diff --git a/Configure b/Configure index 14a1b01..3a96351 100755 --- a/Configure +++ b/Configure @@ -11,10 +11,13 @@ # Yes, you may rip this off to use in other distribution packages. This # script belongs to the public domain and cannot be copyrighted. # -# Note: this Configure script was generated automatically. Rather than -# working with this copy of Configure, you may wish to get metaconfig. -# The dist package (which contains metaconfig) is available via SVN: -# svn co https://svn.code.sf.net/p/dist/code/trunk/dist +# Note: this Configure script was generated automatically by the tool +# called "metaconfig". Rather than working with this copy of Configure, +# you may wish to get metaconfig. Perl uses a modified version of this +# tool, available in the "dist" folder in the checkout of the git repo +# $ git clone git://perl5.git.perl.org/metaconfig.git metaconfig +# The original dist package (including metaconfig) is available via SVN: +# $ svn co https://svn.code.sf.net/p/dist/code/trunk/dist # # Though this script was generated by metaconfig from metaunits, it is # OK to send patches against Configure itself. It's up to the Configure @@ -26,7 +29,6 @@ # $ git clone git://perl5.git.perl.org/metaconfig.git metaconfig # # See Porting/pumpkin.pod for more information on metaconfig. -# # Generated using [metaconfig 3.5 PL0] # (with additional metaconfig patches by perlbug@perl.org) @@ -67,7 +69,10 @@ EOF exit 1 fi -if test ! -c /dev/null ; then +if test -f /sys/utilities/MultiView ; then + # AmigaOS, test -c for /dev/null is not useful + : +elif test ! -c /dev/null ; then cat <optdef.sh </dev/null 2>&1 +if test $? = 0; then + echo "Configure does not support \\ in -D arguments" + exit 1 +fi . ./optdef.sh : create the posthint manipulation script and leave the file out there... touch posthint.sh @@ -1815,8 +1894,8 @@ touch posthint.sh package='perl5' first=`echo $package | sed -e 's/^\(.\).*/\1/'` last=`echo $package | sed -e 's/^.\(.*\)/\1/'` -case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`" in -ABYZ) spackage=`echo $first | tr '[:lower:]' '[:upper:]'`$last;; +case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`"-"`echo AbyZ | tr '[:upper:]' '[:lower:]' 2>/dev/null`" in +ABYZ-abyz) spackage=`echo $first | tr '[:lower:]' '[:upper:]'`$last;; *) spackage=`echo $first | tr '[a-z]' '[A-Z]'`$last;; esac @@ -1977,7 +2056,7 @@ true) echo "Fetching answers from $config_sh..." cd .. . $config_sh - test "$override" && . ./optdef.sh + . UU/optdef.sh echo " " . UU/extract rm -rf UU @@ -2057,22 +2136,21 @@ fi rm -f missing x?? : Find the appropriate value for a newline for tr -echo " " if test -n "$DJGPP"; then trnl='\012' fi if test X"$trnl" = X; then - case "`echo foo|tr '\n' x 2>/dev/null`" in + case "`echo foo | tr '\n' x 2>/dev/null`" in foox) trnl='\n' ;; esac fi if test X"$trnl" = X; then - case "`echo foo|tr '\012' x 2>/dev/null`" in + case "`echo foo | tr '\012' x 2>/dev/null`" in foox) trnl='\012' ;; esac fi if test X"$trnl" = X; then - case "`echo foo|tr '\r\n' xy 2>/dev/null`" in + case "`echo foo | tr '\r\n' xy 2>/dev/null`" in fooxy) trnl='\n\r' ;; esac fi @@ -2814,38 +2892,41 @@ $define|true|[yY]*) *) case "$lns:$issymlink" in *"ln"*" -s:"*"test -"?) echo "Creating the symbolic links..." >&4 - echo "(First creating the subdirectories...)" >&4 cd .. - awk '{print $1}' $src/MANIFEST | grep / | sed 's:/[^/]*$::' | sort -u | while true; do - read directory - test -z "$directory" && break - mkdir -p $directory - done + awk '{print $1}' $src/MANIFEST | sed -e 's:/\([^/]*\)$: \1:' | + awk 'NF == 1 { + dir="."; + file=$1 ""; + } + NF == 2 { + dir=$1 ""; + file=$2 ""; + } + { + print "# dir = ", dir, "file = ", file + mf[dir] = mf[dir]" "source"/"dir"/"file; + } END { + for (d in mf) { + if (d != ".") { print("mkdir -p "d) } + print("ln -sf "mf[d]" "d); + } + }' source="$src" > UU/mksymlinks.$$ + sh UU/mksymlinks.$$ + rm UU/mksymlinks.$$ # Sanity check 1. if test ! -d t/base; then echo "Failed to create the subdirectories. Aborting." >&4 exit 1 fi - echo "(Then creating the symlinks...)" >&4 - awk '{print $1}' $src/MANIFEST | while true; do - read filename - test -z "$filename" && break - if test -f $filename; then - if $issymlink $filename; then - rm -f $filename - fi - fi - if test -f $filename; then - echo "$filename already exists, not symlinking." - else - ln -s $src/$filename $filename - fi - done # Sanity check 2. if test ! -f t/base/lex.t; then echo "Failed to create the symlinks (t/base/lex.t missing). Aborting." >&4 exit 1 fi + if test ! -f win32/win32.c; then + echo "Failed to create the symlinks (win32/win32.c missing). Aborting." >&4 + exit 1 + fi cd UU ;; *) echo "(I cannot figure out how to do symbolic links, ignoring mksymlinks)." >&4 @@ -2894,7 +2975,7 @@ $define|true|[yY]*) *) echo "Using targetarch $targetarch." >&4 ;; esac case "$targethost" in - '') echo "Targethost not defined." >&4; croak=y ;; + '') echo "Targethost not defined." >&4; croak=n ;; *) echo "Using targethost $targethost." >&4 esac locincpth=' ' @@ -3145,8 +3226,8 @@ esac : see whether [:lower:] and [:upper:] are supported character classes echo " " -case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in -ABYZ) +case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`"-"`echo AbyZ | $tr '[:upper:]' '[:lower:]' 2>/dev/null`" in +ABYZ-abyz) echo "Good, your tr supports [:lower:] and [:upper:] to convert case." >&4 up='[:upper:]' low='[:lower:]' @@ -3294,8 +3375,9 @@ EOM $test -f /bin/mips && /bin/mips && osname=mips $test -d /usr/apollo/bin && osname=apollo $test -f /etc/saf/_sactab && osname=svr4 - $test -d /usr/include/minix && osname=minix + $test -d /usr/include/minix && osname=minix && osvers=`$uname -r` $test -f /system/gnu_library/bin/ar.pm && osname=vos + $test -f /sys/utilities/MultiView && osname=amigaos if $test -d /MachTen -o -d /MachTen_Folder; then osname=machten if $test -x /sbin/version; then @@ -3726,7 +3808,7 @@ cd UU hint=previous ;; esac -test "$override" && . ./optdef.sh +. ./optdef.sh : Restore computed paths for file in $loclist $trylist; do @@ -4273,15 +4355,15 @@ case "$osname" in dos|vms) : XXX Should be a Configure test for double-dots in filenames. version=`echo $revision $patchlevel $subversion | \ - $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'` + $awk '{ printf "%d_%d_%d", $1, $2, $3 }'` api_versionstring=`echo $api_revision $api_version $api_subversion | \ - $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'` + $awk '{ printf "%d_%d_%d", $1, $2, $3 }'` ;; *) version=`echo $revision $patchlevel $subversion | \ - $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'` + $awk '{ printf "%d.%d.%d", $1, $2, $3 }'` api_versionstring=`echo $api_revision $api_version $api_subversion | \ - $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'` + $awk '{ printf "%d.%d.%d", $1, $2, $3 }'` ;; esac : Special case the 5.005_xx maintenance series, which used 5.005 @@ -4446,14 +4528,6 @@ esac set usemultiplicity eval $setvar -: Check if quadmath is requested -case "$usequadmath" in -"$define"|true|[yY]*) - uselongdouble="$define" - ;; -*) usequadmath="$undef" ;; -esac - : Check if morebits is requested case "$usemorebits" in "$define"|true|[yY]*) @@ -5161,6 +5235,26 @@ EOM esac fi +: Check if quadmath is requested +case "$usequadmath" in +"$define"|true|[yY]*) usequadmath="$define" ;; +*) usequadmath="$undef" ;; +esac + +: Fail if both uselongdouble and usequadmath are requested +case "$usequadmath:$uselongdouble" in +define:define) + $cat <&4 + +*** You requested the use of the quadmath library and use +*** of long doubles. +*** +*** Please select one or the other. +EOM + exit 1 + ;; +esac + : Looking for optional libraries echo " " echo "Checking for optional libraries..." >&4 @@ -5396,15 +5490,19 @@ default|recommended) # is to add the flag to the flags passed to the compiler at link time, # as that way the compiler can do the right implementation dependant # thing. (NWC) - case "$gccversion" in - ?*) set stack-protector-strong -fstack-protector-strong - eval $checkccflag - case "$dflt" in - *-fstack-protector-strong*) ;; # It got added. - *) # Try the plain/older -fstack-protector. - set stack-protector -fstack-protector - eval $checkccflag - ;; + case "$osname" in + amigaos) ;; # -fstack-protector builds but doesn't work + *) case "$gccversion" in + ?*) set stack-protector-strong -fstack-protector-strong + eval $checkccflag + case "$dflt" in + *-fstack-protector-strong*) ;; # It got added. + *) # Try the plain/older -fstack-protector. + set stack-protector -fstack-protector + eval $checkccflag + ;; + esac + ;; esac ;; esac @@ -5481,7 +5579,12 @@ esac : the following weeds options from ccflags that are of no interest to cpp case "$cppflags" in '') cppflags="$ccflags" ;; -*) cppflags="$cppflags $ccflags" ;; +*) set X $ccflags; shift + case " $cppflags " in + *" $1 "*) ;; # Try to avoid doubling the cppflags. + *) cppflags="$cppflags $ccflags" ;; + esac + ;; esac case "$gccversion" in 1*) cppflags="$cppflags -D__GNUC__" @@ -5685,6 +5788,11 @@ $cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs;' echo " " echo "Computing filename position in cpp output for #include directives..." >&4 case "$osname" in +amigaos) fieldn=3 ;; # Workaround for a bug in abc (pdksh). +esac +case "$fieldn" in +'') +case "$osname" in vos) testaccess=-e ;; *) testaccess=-r ;; esac @@ -5709,6 +5817,8 @@ EOF chmod +x fieldn fieldn=`./fieldn` $rm -f foo.c fieldn +;; +esac case $fieldn in '') pos='???';; 1) pos=first;; @@ -6704,13 +6814,13 @@ yes) if $contains $tlook $tf >/dev/null 2>&1; then tval=true; elif $test "$mistrustnm" = compile -o "$mistrustnm" = run; then - echo "$extern_C void *$1$tdc; void *(*(p()))$tdc { return &$1; } int main() { if(p() && p() != (void *)main) return(0); else return(1); }"> try.c; + echo "$extern_C void *$1$tdc; void *(*(p()))$tdc { return &$1; } int main(int argc, char **argv) { if(p() && p() != (void *)argv[0]) return(0); else return(1); }"> try.c; $cc -o try $optimize $ccflags $ldflags try.c >/dev/null 2>&1 $libs && tval=true; $test "$mistrustnm" = run -a -x try && { $run ./try$_exe >/dev/null 2>&1 || tval=false; }; $rm_try; fi; else - echo "$extern_C void *$1$tdc; void *(*(p()))$tdc { return &$1; } int main() { if(p() && p() != (void *)main) return(0); else return(1); }"> try.c; + echo "$extern_C void *$1$tdc; void *(*(p()))$tdc { return &$1; } int main(int argc, char **argv) { if(p() && p() != (void *)argv[0]) return(0); else return(1); }"> try.c; $cc -o try $optimize $ccflags $ldflags try.c $libs >/dev/null 2>&1 && tval=true; $rm_try; fi; @@ -6807,10 +6917,6 @@ eval $setvar set ldexpl d_ldexpl eval $inlibc -: see if this is a quadmath.h system -set quadmath.h i_quadmath -eval $inhdr - : check for length of long double case "${d_longdbl}${longdblsize}" in $define) @@ -6852,23 +6958,21 @@ $cat <try.c #$i_float I_FLOAT #$i_stdlib I_STDLIB #define LONGDBLSIZE $longdblsize +#define DOUBLESIZE $doublesize #ifdef I_FLOAT #include #endif #ifdef I_STDLIB #include #endif -#$usequadmath USE_QUADMATH -#$i_quadmath I_QUADMATH -#if defined(USE_QUADMATH) && defined(I_QUADMATH) -#include -static const __float128 d = -0.1Q; -#else -static const long double d = -0.1L; -#endif #include +static const long double d = -0.1L; int main() { unsigned const char* b = (unsigned const char*)(&d); +#if DOUBLESIZE == LONGDBLSIZE + printf("0\n"); /* if it floats like double */ + exit(0); +#endif #if (LDBL_MANT_DIG == 113 || FLT128_MANT_DIG == 113) && LONGDBLSIZE == 16 if (b[0] == 0x9A && b[1] == 0x99 && b[15] == 0xBF) { /* IEEE 754 128-bit little-endian */ @@ -6881,34 +6985,64 @@ int main() { exit(0); } #endif +/* For alignment 32-bit platforms have the 80 bits in 12 bytes, + * while 64-bits platforms have it in 16 bytes. The trailing bytes + * cannot be trusted. */ #if LDBL_MANT_DIG == 64 && (LONGDBLSIZE == 16 || LONGDBLSIZE == 12) - if (b[0] == 0xCD && b[9] == 0xBF && b[10] == 0x00) { + if (b[0] == 0xCD && b[9] == 0xBF) { /* x86 80-bit little-endian, sizeof 12 (ILP32, Solaris x86) * or 16 (LP64, Linux and OS X), 4 or 6 bytes of padding. * Also known as "extended precision". */ printf("3\n"); exit(0); } - if (b[0] == 0xBF && b[9] == 0xCD && b[10] == 0x00) { - /* is there ever big-endian 80-bit, really? */ + if (b[0] == 0xBF && b[9] == 0xCD) { + /* Is there ever big-endian 80-bit, really? + * + * The Motorola 68881 had another "extended precision" format: + * sign:1 exp:15 zero:16 integer:1 mantissa:63 + * for total of 96 bits of bytes. The zero bits were unused. + * See "M68000 FAMILY PROGRAMMER’S REFERENCE MANUAL" for more details. + * If it ever becomes relevant, this format should be allocated + * a new doublekind code since it's quite different from the Intel x87. + */ printf("4\n"); exit(0); } #endif -#if LDBL_MANT_DIG == 106 && LONGDBLSIZE == 16 - /* software "double double", the 106 is 53+53 */ +#if (LDBL_MANT_DIG == 106 || LDBL_MANT_DIG == 107) && LONGDBLSIZE == 16 + /* software "double double", the 106 is 53+53. + * but irix thinks it is 107. */ if (b[0] == 0x9A && b[7] == 0x3C && b[8] == 0x9A && b[15] == 0xBF) { - /* double double 128-bit little-endian, + /* double double 128-bit fully little-endian, + * little-endian doubles in little-endian order, * 9a 99 99 99 99 99 59 3c 9a 99 99 99 99 99 b9 bf */ printf("5\n"); exit(0); } if (b[0] == 0xBF && b[7] == 0x9A && b[8] == 0x3C && b[15] == 0x9A) { - /* double double 128-bit big-endian, e.g. PPC/Power and MIPS: + /* double double 128-bit fully big-endian, + * big-endian doubles in big-endian order, + * e.g. PPC/Power and MIPS: * bf b9 99 99 99 99 99 9a 3c 59 99 99 99 99 99 9a */ printf("6\n"); exit(0); } + if (b[0] == 0x9A && b[7] == 0xBF && b[8] == 0x9A && b[15] == 0x3C) { + /* double double 128-bit mixed endian. + * little-endian doubles in big-endian order, + * e.g. ppc64el, + * 9a 99 99 99 99 99 b9 bf 9a 99 99 99 99 99 59 3c */ + printf("7\n"); + exit(0); + } + if (b[0] == 0x3C && b[7] == 0x9A && b[8] == 0xBF && b[15] == 0x9A) { + /* double double 128-bit mixed endian, + * big-endian doubles in little-endian order, + * 3c 59 99 99 99 99 99 9a bf b9 99 99 99 99 99 9a */ + printf("8\n"); + exit(0); + } #endif printf("-1\n"); /* unknown */ exit(0); @@ -6928,11 +7062,15 @@ case "$longdblkind" in 1) echo "You have IEEE 754 128-bit little endian long doubles." >&4 ;; 2) echo "You have IEEE 754 128-bit big endian long doubles." >&4 ;; 3) echo "You have x86 80-bit little endian long doubles." >& 4 ;; +4) echo "You have x86 80-bit big endian long doubles." >& 4 ;; +5) echo "You have 128-bit fully little-endian double-double long doubles (64-bit LEs in LE)." >& 4 ;; +6) echo "You have 128-bit fully big-endian double-double long doubles (64-bit BEs in BE)." >& 4 ;; +7) echo "You have 128-bit mixed double-double long doubles (64-bit LEs in BE)." >& 4 ;; +8) echo "You have 128-bit mixed double-double long doubles (64-bit BEs in LE)." >& 4 ;; *) echo "Cannot figure out your long double." >&4 ;; esac $rm_try - : determine the architecture name echo " " if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then @@ -6981,40 +7119,40 @@ y|Y) useversionedarchname="$define" ;; esac case "$useversionedarchname" in $define) - case "$archname" in - *-$api_versionstring) - echo "...and architecture name already has -$api_versionstring" >&4 - ;; - *) - archname="$archname-$api_versionstring" - echo "...setting architecture name to $archname." >&4 - ;; - esac - ;; + case "$archname" in + *-$api_versionstring) + echo "...and architecture name already has -$api_versionstring" >&4 + ;; + *) + archname="$archname-$api_versionstring" + echo "...setting architecture name to $archname." >&4 + ;; + esac + ;; esac case "$usethreads" in $define) echo "Threads selected." >&4 case "$archname" in - *-thread*) echo "...and architecture name already has -thread." >&4 - ;; - *) archname="$archname-thread" - echo "...setting architecture name to $archname." >&4 - ;; - esac + *-thread*) echo "...and architecture name already has -thread." >&4 + ;; + *) archname="$archname-thread" + echo "...setting architecture name to $archname." >&4 + ;; + esac ;; esac case "$usemultiplicity" in $define) echo "Multiplicity selected." >&4 case "$archname" in - *-multi*) echo "...and architecture name already has -multi." >&4 - ;; - *) archname="$archname-multi" - echo "...setting architecture name to $archname." >&4 - ;; - esac + *-multi*) echo "...and architecture name already has -multi." >&4 + ;; + *) archname="$archname-multi" + echo "...setting architecture name to $archname." >&4 + ;; + esac ;; esac case "$use64bitint$use64bitall" in @@ -7031,12 +7169,12 @@ case "$use64bitint$use64bitall" in "$define") echo "Maximal 64 bitness selected." >&4 ;; esac case "$archname" in - *-$archname64*) echo "...and architecture name already has $archname64." >&4 - ;; - *) archname="$archname-$archname64" - echo "...setting architecture name to $archname." >&4 - ;; - esac + *-$archname64*) echo "...and architecture name already has $archname64." >&4 + ;; + *) archname="$archname-$archname64" + echo "...setting architecture name to $archname." >&4 + ;; + esac ;; esac esac @@ -7049,12 +7187,24 @@ $define) ;; *) case "$archname" in - *-ld*) echo "...and architecture name already has -ld." >&4 - ;; - *) archname="$archname-ld" - echo "...setting architecture name to $archname." >&4 - ;; - esac + *-ld*) echo "...and architecture name already has -ld." >&4 + ;; + *) archname="$archname-ld" + echo "...setting architecture name to $archname." >&4 + ;; + esac + ;; + esac + ;; +esac +case "$usequadmath" in +$define) + echo "quadmath selected." >&4 + case "$archname" in + *-quadmath*) echo "...and architecture name already has -quadmath." >&4 + ;; + *) archname="$archname-quadmath" + echo "...setting architecture name to $archname." >&4 ;; esac ;; @@ -7571,7 +7721,7 @@ echo " " case "$ptrsize" in '') echo "Checking to see how big your pointers are..." >&4 - $cat >>try.c <try.c < #$i_stdlib I_STDLIB #ifdef I_STDLIB @@ -7968,7 +8118,7 @@ cat </dev/null 2>&1 && $run ./a.out; then + if $cc $ccflags $ldflags -o a.out try.c >/dev/null 2>&1 && $run ./a.out; then bin_ELF="$define" fi $rm_try @@ -8678,12 +8829,9 @@ if "$useshrplib"; then freebsd|mirbsd|netbsd|openbsd|interix|dragonfly|bitrig) xxx="-Wl,-R$shrpdir" ;; - bsdos|linux|irix*|dec_osf|gnu*) + bsdos|linux|irix*|dec_osf|gnu*|haiku) xxx="-Wl,-rpath,$shrpdir" ;; - haiku) - # Haiku doesn't like the default, either. - ;; hpux*) # hpux doesn't like the default, either. tmp_shrpenv="env LDOPTS=\"+s +b${shrpdir}\"" @@ -9247,17 +9395,20 @@ rp='Perl administrator e-mail address' . ./myread perladmin="$ans" -: determine whether to only install version-specific parts. +: determine whether to use a version number suffix for installed binaries echo " " $cat <&4 +$cat >try.c < +#endif +#include +static const double d = -0.1; +int main() { + unsigned const char* b = (unsigned const char*)(&d); +#if DOUBLESIZE == 4 + if (b[0] == 0xCD && b[3] == 0xBD) { + /* IEEE 754 32-bit little-endian */ + printf("1\n"); + exit(0); + } + if (b[0] == 0xBD && b[3] == 0xCD) { + /* IEEE 754 32-bit big-endian */ + printf("2\n"); + exit(0); + } + if (b[0] == 0xCC && b[3] == 0xCC) { + /* VAX format F, 32-bit PDP-style mixed endian. */ + printf("9\n"); + exit(0); + } +#endif +#if DOUBLESIZE == 8 + if (b[0] == 0x9A && b[7] == 0xBF) { + /* IEEE 754 64-bit little-endian */ + printf("3\n"); + exit(0); + } + if (b[0] == 0xBF && b[7] == 0x9A) { + /* IEEE 754 64-bit big-endian */ + printf("4\n"); + exit(0); + } + if (b[0] == 0x99 && b[3] == 0xBF && b[4] == 0x9A && b[7] == 0x99) { + /* ARM mixed endian: two little-endian 32-bit floats, in big endian order: + * 4 5 6 7 0 1 2 3 (MSB = 7, LSB = 0) + * 99 99 b9 bf 9a 99 99 99 */ + printf("7\n"); + exit(0); + } + if (b[0] == 0x99 && b[3] == 0x9A && b[4] == 0xBF && b[7] == 0x99) { + /* The opposite of case 7, mixed endian: two big-endian 32-bit floats, + * in little endian order: 3 2 1 0 7 6 5 4 (MSB = 7, LSB = 0) + * 99 99 99 9a bf b9 99 99 */ + printf("8\n"); + exit(0); + } + if (b[0] == 0xCC && b[7] == 0xCC) { + /* VAX format D, 64-bit PDP-style mixed endian. */ + printf("10\n"); + exit(0); + } + if (b[0] == 0xD9 && b[7] == 0x99) { + /* VAX format G, 64-bit PDP-style mixed endian. */ + printf("11\n"); + exit(0); + } +#endif +#if DOUBLESIZE == 16 + if (b[0] == 0x9A && b[15] == 0xBF) { + /* IEEE 754 128-bit little-endian */ + printf("5\n"); + exit(0); + } + if (b[0] == 0xBF && b[15] == 0x9A) { + /* IEEE 754 128-bit big-endian */ + printf("6\n"); + exit(0); + } +#endif + /* Then there are old mainframe/miniframe formats like IBM and CRAY. + * Whether those environments can still build Perl is debatable. */ + printf("-1\n"); /* unknown */ + exit(0); +} +EOP +set try +if eval $compile; then + doublekind=`$run ./try` +else + doublekind=-1 +fi +case "$doublekind" in +1) echo "You have IEEE 754 32-bit little endian doubles." >&4 ;; +2) echo "You have IEEE 754 32-bit big endian doubles." >&4 ;; +3) echo "You have IEEE 754 64-bit little endian doubles." >&4 ;; +4) echo "You have IEEE 754 64-bit big endian doubles." >&4 ;; +5) echo "You have IEEE 754 128-bit little endian doubles." >&4 ;; +6) echo "You have IEEE 754 128-bit big endian doubles." >&4 ;; +7) echo "You have IEEE 754 64-bit mixed endian doubles (32-bit LEs in BE)." >&4 ;; +8) echo "You have IEEE 754 64-bit mixed endian doubles (32-bit BEs in LE)." >&4 ;; +9) echo "You have VAX format F 32-bit PDP-style mixed endian doubles." >&4 ;; +10) echo "You have VAX format D 64-bit PDP-style mixed endian doubles." >&4 ;; +11) echo "You have VAX format G 64-bit PDP-style mixed endian doubles." >&4 ;; +*) echo "Cannot figure out your double. You CRAY, or something?" >&4 ;; +esac +$rm_try + : Check print/scan long double stuff echo " " @@ -9992,7 +10248,7 @@ EOCP case "$yyy" in 123.456) sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"'; - sPRIFUldbl='"F"'; sPRIGUldbl='"G"'; sPRIEUldbl='"E"'; + sPRIFUldbl='"F"'; sPRIGUldbl='"G"'; sPRIEUldbl='"E"'; echo "We will use %f." ;; esac @@ -10014,7 +10270,7 @@ EOCP case "$yyy" in 123.456) sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"'; - sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"'; + sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"'; echo "We will use %Lf." ;; esac @@ -10036,7 +10292,7 @@ EOCP case "$yyy" in 123.456) sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"'; - sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"'; + sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"'; echo "We will use %llf." ;; esac @@ -10058,7 +10314,7 @@ EOCP case "$yyy" in 123.456) sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"'; - sPRIFUldbl='"lF"'; sPRIGUldbl='"lG"'; sPRIEUldbl='"lE"'; + sPRIFUldbl='"lF"'; sPRIGUldbl='"lG"'; sPRIEUldbl='"lE"'; echo "We will use %lf." ;; esac @@ -10086,6 +10342,38 @@ case "$sPRIfldbl" in ;; esac +: Before committing on uselongdouble, see whether that looks sane. +if $test "$uselongdouble" = "$define"; then + message="" + echo " " + echo "Checking if your long double math functions work right..." >&4 + $cat > try.c < +#include +int main() { + printf("%"$sPRIgldbl"\n", sqrtl(logl(expl(cosl(sinl(0.0L))))+powl(2.0L, 3.0L))); +} +EOF + case "$osname:$gccversion" in + aix:) saveccflags="$ccflags" + ccflags="$ccflags -qlongdouble" ;; # to avoid core dump + esac + set try + if eval $compile_ok; then + yyy=`$run ./try` + fi + case "$yyy" in + 3) echo "Your long double math functions are working correctly." >&4 ;; + *) echo "Your long double math functions are broken, not using long doubles." >&4 + uselongdouble=$undef + ;; + esac + $rm_try + case "$osname:$gccversion" in + aix:) ccflags="$saveccflags" ;; # restore + esac +fi + : Check how to convert floats to strings. if test "X$d_Gconvert" = X; then @@ -10695,6 +10983,14 @@ case "$d_asctime_r" in ;; esac +: see if asinh exists +set asinh d_asinh +eval $inlibc + +: see if atanh exists +set atanh d_atanh +eval $inlibc + : see if atolf exists set atolf d_atolf eval $inlibc @@ -11421,7 +11717,7 @@ int main() EOCP set try if eval $compile_ok; then - $run ./try + $run ./try 2>/dev/null yyy=$? else echo "(I can't seem to compile the test program--assuming it can't)" @@ -11521,7 +11817,7 @@ int main() EOCP set try if eval $compile_ok; then - $run ./try + $run ./try 2>/dev/null castflags=$? else echo "(I can't seem to compile the test program--assuming it can't)" @@ -11539,6 +11835,10 @@ set d_castneg eval $setvar $rm_try +: see if cbrt exists +set cbrt d_cbrt +eval $inlibc + : see if vprintf exists echo " " if set vprintf val -f d_vprintf; eval $csym; $val; then @@ -11903,6 +12203,10 @@ fi set d_const eval $setvar +: see if copysign exists +set copysign d_copysign +eval $inlibc + : see if copysignl exists set copysignl d_copysignl eval $inlibc @@ -13107,8 +13411,8 @@ echo " " echo "Let's see what value errno gets from read() on a $o_nonblock file..." >&4 case "$eagain" in '') - case "$d_fork:$d_pipe" in - define:define) + case "$d_fork:$d_pipe:$d_alarm" in + define:define:define) $cat head.c > try.c $cat >>try.c < @@ -13277,6 +13581,22 @@ EOCP esac $rm_try head.c mtry +: see if erf exists +set erf d_erf +eval $inlibc + +: see if erfc exists +set erfc d_erfc +eval $inlibc + +: see if exp2 exists +set exp2 d_exp2 +eval $inlibc + +: see if expm1 exists +set expm1 d_expm1 +eval $inlibc + : see if _ptr and _cnt from stdio act std echo " " @@ -13722,6 +14042,14 @@ EOM fi $rm_try +: see if fdclose exists +set fdclose d_fdclose +eval $inlibc + +: see if fdim exists +set fdim d_fdim +eval $inlibc + : see if fegetround exists set fegetround d_fegetround eval $inlibc @@ -13747,6 +14075,18 @@ echo " " set d_flockproto flock $i_sysfile sys/file.h eval $hasproto +: see if fma exists +set fma d_fma +eval $inlibc + +: see if fmax exists +set fmax d_fmax +eval $inlibc + +: see if fmin exists +set fmin d_fmin +eval $inlibc + : see if fp_class exists set fp_class d_fp_class eval $inlibc @@ -13826,6 +14166,30 @@ $rm_try set d_fpos64_t eval $setvar +: see if this is an xlocale.h system +set xlocale.h i_xlocale +eval $inhdr + +: see if newlocale exists +set newlocale d_newlocale +eval $inlibc + +: see if freelocale exists +set freelocale d_freelocale +eval $inlibc + +: see if uselocale exists +set uselocale d_uselocale +eval $inlibc + +: see if duplocale exists +set duplocale d_duplocale +eval $inlibc + +: see if querylocale exists +set querylocale d_querylocale +eval $inlibc + : see if frexpl exists set frexpl d_frexpl eval $inlibc @@ -15431,6 +15795,14 @@ esac set d_htonl eval $setvar +: see if hypot exists +set hypot d_hypot +eval $inlibc + +: see if ilogb exists +set ilogb d_ilogb +eval $inlibc + : see if ilogbl exists set ilogbl d_ilogbl eval $inlibc @@ -15583,6 +15955,27 @@ eval $setvar set isinfl d_isinfl eval $inlibc +: check for isless +echo "Checking to see if you have isless..." >&4 +$cat >try.c < +#endif +int main() { return isless(0.0); } +EOCP +set try +if eval $compile; then + val="$define" + echo "You have isless." +else + val="$undef" + echo "You do not have isless." +fi +$rm_try +set d_isless +eval $setvar + : check for isnan echo "Checking to see if you have isnan..." >&4 $cat >try.c <&4 +$cat >try.c < +#endif +int main() { return isnormal(0.0); } +EOCP +set try +if eval $compile; then + val="$define" + echo "You have isnormal." +else + val="$undef" + echo "You do not have isnormal." +fi +$rm_try +set d_isnormal +eval $setvar + +: see if j0 exists +set j0 d_j0 +eval $inlibc + +: see if j0l exists +set j0l d_j0l +eval $inlibc + +: see if killpg exists +set killpg d_killpg +eval $inlibc + +: see if localeconv exists +set localeconv d_locconv +eval $inlibc + +: see if libc has the POSIX.1-2008 currency locale rules +case "$d_locconv:$d_lc_monetary_2008" in +$define:) + $cat >try.c < +int main() { + struct lconv *lc = localeconv(); + char int_p_cs_precedes = lc->int_p_cs_precedes; + return 0; +} +EOCP + set try + if eval $compile; then + d_lc_monetary_2008="$define" + else + d_lc_monetary_2008="$undef" + fi; + $rm_try + ;; +esac : see if lchown exists echo " " @@ -15679,6 +16118,14 @@ $rm -f ldbl_dig.? set d_ldbl_dig eval $setvar +: see if lgamma exists +set lgamma d_lgamma +eval $inlibc + +: see if lgamma_r exists +set lgamma_r d_lgamma_r +eval $inlibc + : check to see if math.h defines _LIB_VERSION d_libm_lib_version="$undef" case $i_math in @@ -15707,100 +16154,24 @@ EOCP esac -: check for fpclassify -echo " " -echo "Checking to see if you have fpclassify..." >&4 -$cat >try.c < -#endif -int main() { return fpclassify(1.0) == FP_NORMAL ? 0 : 1; } -EOCP -set try -if eval $compile; then - val="$define" - echo "You have fpclassify." -else - val="$undef" - echo "You do not have fpclassify." -fi -$rm_try -set d_fpclassify -eval $setvar - -: check for isfinite -echo " " -echo "Checking to see if you have isfinite..." >&4 -$cat >try.c < -#endif -int main() { return isfinite(0.0); } -EOCP -set try -if eval $compile; then - val="$define" - echo "You have isfinite." -else - val="$undef" - echo "You do not have isfinite." -fi -$rm_try -set d_isfinite -eval $setvar +: see if link exists +set link d_link +eval $inlibc -: check for isinf -echo " " -echo "Checking to see if you have isinf..." >&4 -$cat >try.c < -#endif -int main() { return isinf(0.0); } -EOCP -set try -if eval $compile; then - val="$define" - echo "You have isinf." -else - val="$undef" - echo "You do not have isinf." -fi -$rm_try -set d_isinf -eval $setvar +: see if llrint exists +set llrint d_llrint +eval $inlibc -: check for isnan -echo " " -echo "Checking to see if you have isnan..." >&4 -$cat >try.c < -#endif -int main() { return isnan(0.0); } -EOCP -set try -if eval $compile; then - val="$define" - echo "You have isnan." -else - val="$undef" - echo "You do not have isnan." -fi -$rm_try -set d_isnan -eval $setvar +: see if llrintl exists +set llrintl d_llrintl +eval $inlibc -: see if this is a quadmath.h system -set quadmath.h i_quadmath -eval $inhdr +: see if llround exists +set llround d_llround +eval $inlibc -: see if link exists -set link d_link +: see if llroundl exists +set llroundl d_llroundl eval $inlibc : see if localtime_r exists @@ -15922,14 +16293,38 @@ EOCP esac $rm_try -: see if localeconv exists -set localeconv d_locconv -eval $inlibc - : see if lockf exists set lockf d_lockf eval $inlibc +: see if log1p exists +set log1p d_log1p +eval $inlibc + +: see if log2 exists +set log2 d_log2 +eval $inlibc + +: see if logb exists +set logb d_logb +eval $inlibc + +: see if lrint exists +set lrint d_lrint +eval $inlibc + +: see if lrintl exists +set lrintl d_lrintl +eval $inlibc + +: see if lround exists +set lround d_lround +eval $inlibc + +: see if lroundl exists +set lroundl d_lroundl +eval $inlibc + : see if prototype for lseek is available echo " " set d_lseekproto lseek $i_systypes sys/types.h $i_unistd unistd.h @@ -15975,6 +16370,10 @@ eval $inlibc set memcpy d_memcpy eval $inlibc +: see if memmem exists +set memmem d_memmem +eval $inlibc + : see if memmove exists set memmove d_memmove eval $inlibc @@ -16055,69 +16454,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 <try.c < -#include -EOCP -if $test "X$d_modflproto" != "X$define"; then - $cat >>try.c <>try.c <&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 @@ -16235,6 +16571,22 @@ eval $inlibc set munmap d_munmap eval $inlibc +: see if nan exists +set nan d_nan +eval $inlibc + +: see if nearbyint exists +set nearbyint d_nearbyint +eval $inlibc + +: see if nextafter exists +set nextafter d_nextafter +eval $inlibc + +: see if nexttoward exists +set nexttoward d_nexttoward +eval $inlibc + : see if nice exists set nice d_nice eval $inlibc @@ -16247,6 +16599,10 @@ eval $inhdr set nl_langinfo d_nl_langinfo eval $inlibc +: see if this is a quadmath.h system +set quadmath.h i_quadmath +eval $inhdr + : check for volatile keyword echo " " echo 'Checking to see if your C compiler knows about "volatile"...' >&4 @@ -16306,6 +16662,48 @@ define:define) ;; esac +case "$usequadmath:$i_quadmath" in +define:define) + nvtype="__float128" + nvsize=16 + case "$libs" in + *quadmath*) ;; + *) $cat <&4 + +*** You requested the use of the quadmath library, but you +*** do not seem to have the quadmath library installed. +*** Cannot continue, aborting. +EOM + exit 1 + ;; + esac + ;; +define:*) $cat <&4 + +*** You requested the use of the quadmath library, but you +*** do not seem to have the required header, . +EOM + case "$gccversion" in + [23].*|4.[0-5]*) + $cat <&4 +*** Your gcc looks a bit old: +*** $gccversion +EOM + ;; + '') + $cat <&4 +*** You are not running a gcc. +EOM + ;; + esac + $cat <&4 +*** For the quadmath library you need at least gcc 4.6. +*** Cannot continue, aborting. +EOM + exit 1 + ;; +esac + $echo "(IV will be "$ivtype", $ivsize bytes)" $echo "(UV will be "$uvtype", $uvsize bytes)" $echo "(NV will be "$nvtype", $nvsize bytes)" @@ -16815,14 +17213,21 @@ EOM set readlink d_readlink eval $inlibc -: Check if exe is symlink to abs path of executing program +: Check if there is a /proc symlink to the abs path of +: the executing program. We will honor hints of d_procselfexe=$undef +: or procselfexe being non-empty, otherwise will try to determine both +: if we have readlink. +: AmigaOS will attempt to mount proc: aka /proc, if /proc/... is +: referenced, and AmigaOS does not have a proc filesystem anyway. echo " " -procselfexe='' val="$undef" -case "$d_readlink" in - "$define") - : NetBSD first as /proc/self is a symlink to /proc/curproc, and it feels - : more tidy to avoid an extra level of symlink +if $test "X$d_procselfexe" = Xundef; then + procselfexe='' +elif $test "X$procselfexe" != X -a "X$procselfexe" != 'X '; then + val="$define" +elif $test "X$d_readlink" = Xdefine; then + : NetBSD first as /proc/self is a symlink to /proc/curproc, + : and it feels more tidy to avoid an extra level of symlink set NetBSD /proc/curproc/exe Linux /proc/self/exe FreeBSD /proc/curproc/file Solaris /proc/self/path/a.out while test $# -gt 0; do type=$1; try=$2 @@ -16838,8 +17243,7 @@ case "$d_readlink" in fi fi done - ;; -esac +fi $rm -f reflect set d_procselfexe eval $setvar @@ -17169,14 +17573,56 @@ eval $inlibc set recvmsg d_recvmsg eval $inlibc +: see if regcomp, regcmp, or re_comp exist, for regular pattern matching +echo " " +if set regcomp val -f d_regcomp; eval $csym; $val; then + echo 'regcomp() found.' >&4 + d_regcomp="$define" + d_regcmp="$undef" + d_re_comp="$undef" +elif set regcmp val -f d_regcmp; eval $csym; $val; then + echo 'regcmp() found.' >&4 + d_regcmp="$define" + d_regcomp="$undef" + d_re_comp="$undef" +elif set re_comp val -f d_re_comp; eval $csym; $val; then + echo 're_comp() found, assuming re_exec() also exists.' >&4 + d_re_comp="$define" + d_regcomp="$undef" + d_regcmp="$undef" +else + $cat >&4 </dev/null` unsigned short + case $1 in + unsigned) dflt="$1 $2" ;; + *) dflt="$1" ;; + esac + ;; +*) dflt="$uidtype";; +esac +case "$uidtype" in +uid_t) echo "uid_t found." ;; +*) rp="What is the type for user ids returned by getuid()?" + . ./myread + uidtype="$ans" + ;; +esac + +: Define hasfield_t macro for Configure internal use +hasfield_t='varname=$1; struct=$2; type=$3; field=$4; shift; shift; shift; shift; +while $test $# -ge 2; do + case "$1" in + $define) echo "#include <$2>";; + esac ; + shift 2; +done > try.c; +echo "int main () { $struct foo; $type bar = foo.$field; }" >> try.c; +set try; +if eval $compile; then + val="$define"; +else + val="$undef"; +fi; +set $varname; +eval $setvar; +$rm_try' + +: see what siginfo fields we have +case "$d_sigaction" in +"$define") + echo "Checking if your siginfo_t has si_errno field...">&4 + set d_siginfo_si_errno siginfo_t int si_errno $d_sigaction signal.h + eval $hasfield_t; + + echo "Checking if your siginfo_t has si_pid field...">&4 + set d_siginfo_si_pid siginfo_t $pidtype si_pid $d_sigaction signal.h + eval $hasfield_t; + + echo "Checking if your siginfo_t has si_uid field...">&4 + set d_siginfo_si_uid siginfo_t $uidtype si_uid $d_sigaction signal.h + eval $hasfield_t; + + echo "Checking if your siginfo_t has si_addr field...">&4 + set d_siginfo_si_addr siginfo_t "void *" si_addr $d_sigaction signal.h + eval $hasfield_t; + + echo "Checking if your siginfo_t has si_status field...">&4 + set d_siginfo_si_status siginfo_t int si_status $d_sigaction signal.h + eval $hasfield_t; + + echo "Checking if your siginfo_t has si_band field...">&4 + set d_siginfo_si_band siginfo_t long si_band $d_sigaction signal.h + eval $hasfield_t; + + echo "Checking if your siginfo_t has si_value field...">&4 + set d_siginfo_si_value siginfo_t "union sigval" si_value $d_sigaction signal.h + eval $hasfield_t; + + echo "Checking if your siginfo_t has si_fd field...">&4 + set d_siginfo_si_fd siginfo_t int si_fd $d_sigaction signal.h + eval $hasfield_t; + + ;; +*) + d_siginfo_si_errno="$undef" + d_siginfo_si_pid="$undef" + d_siginfo_si_uid="$undef" + d_siginfo_si_addr="$undef" + d_siginfo_si_status="$undef" + d_siginfo_si_band="$undef" + d_siginfo_si_value="$undef" + d_siginfo_si_fd="$undef" + ;; +esac + : see if this is a sunmath.h system set sunmath.h i_sunmath eval $inhdr @@ -18510,6 +19056,10 @@ echo " " set d_sresuproto setresuid $i_unistd unistd.h eval $hasproto +: see if stat exists +set stat d_stat +eval $inlibc + : see if sys/stat.h is available set sys/stat.h i_sysstat eval $inhdr @@ -18766,6 +19316,10 @@ if test "X$d_strerror" = X -o "X$d_syserrlst" = X; then fi fi +: see if strerror_l exists +set strerror_l d_strerror_l +eval $inlibc + : see if strerror_r exists set strerror_r d_strerror_r eval $inlibc @@ -19132,6 +19686,10 @@ echo " " set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h eval $hasproto +: see if tgamma exists +set tgamma d_tgamma +eval $inlibc + : see if time exists echo " " if test "X$d_time" = X -o X"$timetype" = X; then @@ -19217,6 +19775,10 @@ case "$d_tmpnam_r" in ;; esac +: see if trunc exists +set trunc d_trunc +eval $inlibc + : see if truncate exists set truncate d_truncate eval $inlibc @@ -19643,20 +20205,11 @@ eval $inlibc echo " " case "$alignbytes" in '') echo "Checking alignment constraints..." >&4 - if $test "X$uselongdouble" = Xdefine -a "X$d_longdbl" = Xdefine; then - $cat >try.c <<'EOCP' -typedef long double NV; -EOCP - else - $cat >try.c <<'EOCP' -typedef double NV; -EOCP - fi - $cat >>try.c <<'EOCP' + $cat >try.c < struct foobar { char foo; - NV bar; + $nvtype bar; } try_algn; int main() { @@ -19957,6 +20510,269 @@ EOCP ;; esac +: Check what kind of inf/nan your system has +$echo "Checking the kind of infinities and nans you have..." >&4 +$cat >try.c < +#endif +#include +/* Note that whether the sign bit is on or off + * for NaN depends on the CPU/FPU, and possibly + * can be affected by the build toolchain. + * + * For example for older MIPS and HP-PA 2.0 the quiet NaN is: + * 0x7f, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + * 0x7f, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + * (respectively) as opposed to the more usual + * 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + */ +static void bytes(unsigned char *p, unsigned int n) { + int i; + for (i = 0; i < n; i++) { + printf("0x%02x%s", p[i], i < n - 1 ? ", " : "\n"); + } +} +int main(int argc, char *argv[]) { + /* We cannot use 1.0/0.0 and 0.0/0.0 (with L suffixes for long double) + * because some compilers are 'smart' and not only warn but refuse to + * compile such 'illegal' values. */ + double dinf = exp(1e9); + double dnan = sqrt(-1.0); +#ifdef HAS_LONG_DOUBLE + long double ldinf = (long double)exp(1e9); + long double ldnan = (long double)sqrt(-1.0); +#endif + if (argc == 2) { + switch (argv[1][0]) { + case '1': bytes(&dinf, sizeof(dinf)); break; + case '2': bytes(&dnan, sizeof(dnan)); break; +#ifdef HAS_LONG_DOUBLE +# if LONG_DOUBLEKIND == 3 || LONG_DOUBLEKIND == 4 +/* the 80-bit long doubles might have garbage in their excess bytes */ + memset((char *)&ldinf + 10, '\0', LONG_DOUBLESIZE - 10); +# endif + case '3': bytes(&ldinf, sizeof(ldinf)); break; + case '4': bytes(&ldnan, sizeof(ldnan)); break; +#endif + } + } + return 0; +} +EOP +set try +if eval $compile; then + doubleinfbytes=`$run ./try 1` + doublenanbytes=`$run ./try 2` + case "$d_longdbl" in + $define) + longdblinfbytes=`$run ./try 3` + longdblnanbytes=`$run ./try 4` + ;; + esac +else + # Defaults in case the above test program failed. + case "$doublekind" in + 1) # IEEE 754 32-bit LE + doubleinfbytes='0x00, 0x00, 0xf0, 0x7f' + doublenanbytes='0x00, 0x00, 0xf8, 0x7f' + ;; + 2) # IEEE 754 32-bit BE + doubleinfbytes='0x7f, 0xf0, 0x00, 0x00' + doublenanbytes='0x7f, 0xf8, 0x00, 0x00' + ;; + 3) # IEEE 754 64-bit LE + doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f' + doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f' + ;; + 4) # IEEE 754 64-bit BE + doubleinfbytes='0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + doublenanbytes='0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + ;; + 5) # IEEE 754 128-bit LE + doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f' + doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f' + ;; + 6) # IEEE 754 128-bit BE + doubleinfbytes='0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + doublenanbytes='0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + ;; + 7) # IEEE 754 64-bit mixed: 32-bit LEs in BE + doubleinfbytes='0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00' + doublenanbytes='0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0x00' + ;; + 8) # IEEE 754 64-bit mixed: 32-bit BEs in LE + doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00' + doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00' + ;; + *) # No idea. + doubleinfbytes=$undef + doublenanbytes=$undef + ;; + esac + case "$longdblkind" in + 1) # IEEE 754 128-bit LE + longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f' + longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f' + ;; + 2) # IEEE 754 128-bit BE + longdblinfbytes='0x7f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + longdblnanbytes='0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + ;; + 3) # IEEE 754 80-bit LE, 12 or 16 bytes (x86) + case "$longdblsize" in + 12) # x86 32-bit (96 bits, or 4 x 32, or 12 x 8) + longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00' + longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00' + ;; + 16) # x86_64 + longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + ;; + *) # No idea. + longdblinfbytes=$undef + longdblnanbytes=$undef + ;; + esac + ;; + 4) # IEEE 754 80-bit BE, 12 or 16 bytes + case "$longdblsize" in + 12) # 32-bit system + longdblinfbytes='0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + longdblnanbytes='0x7f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + ;; + 16) # 64-bit system + longdblinfbytes='0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + longdblnanbytes='0x7f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + ;; + *) # No idea. + longdblinfbytes=$undef + longdblnanbytes=$undef + ;; + esac + ;; + 5) # 128-bit LE-LE "double double" + longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f' + longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f' + ;; + 6) # 128-bit BE-BE "double double" + longdblinfbytes='0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + longdblnanbytes='0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + ;; + 7) # 128-bit LE-BE "double double" + longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + ;; + 8) # 128-bit BE-LE "double double" + longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' + ;; + *) # No idea. + longdblinfbytes=$undef + longdblnanbytes=$undef + ;; + esac +fi +$rm_try + +: Check the length of the double mantissa +$echo "Checking how many mantissa bits your doubles have..." >&4 +$cat >try.c < +#endif +#ifdef I_SUNMATH +# include +#endif +#ifdef DBL_MANT_DIG +# define BITS (DBL_MANT_DIG - 1) /* the implicit bit does not count */ +#endif +#include +int main(int argc, char *argv[]) { +#ifdef BITS + printf("%d\n", BITS); +#endif + return 0; +} +EOP +set try +if eval $compile; then + doublemantbits=`$run ./try` +else + doublemantbits="$undef" +fi +$rm_try + +: Check the length of the longdouble mantissa +$echo "Checking how many mantissa bits your long doubles have..." >&4 +$cat >try.c < +#endif +#ifdef I_SUNMATH +# include +#endif +#$d_longdbl HAS_LONG_DOUBLE +#if defined(HAS_LONG_DOUBLE) && defined(LDBL_MANT_DIG) +# if ($longdblkind == 3) || ($longdblkind == 4) /* 80-bit extended precision */ +/* This format has no implicit bit. Beware, however, that for + * this format the bare LDBL_MANT_DIG is misleading for inf/nan: + * the top three bits are used for inf (100) / qnan (11x) / snan (101), + * and the top bit must have been one since 387, zero is plain invalid. + * For normal fp values, the LDBL_MANT_DIG is fine, though. */ +# define BITS LDBL_MANT_DIG +# elif ($longdblkind == 5 || $longdblkind == 6 || $longdblkind == 7 || $longdblkind == 8) /* double double */ +/* LDBL_MANT_DIG of 106 (twice 53) would be logical, but for some + * reason e.g. Irix thinks 107. But in any case, we want only + * the number of real bits, the implicit bits are of no interest. */ +# define BITS 2 * (DBL_MANT_DIG - 1) +# else +# define BITS (LDBL_MANT_DIG - 1) /* the implicit bit does not count */ +# endif +#endif +#include +int main(int argc, char *argv[]) { +#ifdef BITS + printf("%d\n", BITS); +#endif + return 0; +} +EOP +set try +if eval $compile; then + longdblmantbits=`$run ./try` +else + longdblmantbits="$undef" +fi +$rm_try + +: Check the length of the NV mantissa +$echo "Checking how many mantissa bits your NVs have..." >&4 +if test "X$usequadmath" = "X$define"; then + nvmantbits=112 # 128-1-15 +else + if test "X$nvsize" = "X$doublesize"; then + nvmantbits="$doublemantbits" + else + if test "X$nvsize" = "X$longdblsize"; then + nvmantbits="$longdblmantbits" + else + nvmantbits="$undef" + fi + fi +fi + : How can we generate normalized random numbers ? echo " " echo "Using our internal random number implementation..." >&4 @@ -19976,6 +20792,35 @@ seedfunc="Perl_drand48_init" randbits=48 randseedtype=U32 +: Probe whether dtrace builds an object, as newer Illumos requires an input +: object file that uses at least one of the probes defined in the .d file +case "$usedtrace" in +$define) + case "$dtraceobject" in + $define|true|[yY]*) + dtraceobject=$define + ;; + ' '|'') + $dtrace -h -s ../perldtrace.d -o perldtrace.h + $cat >try.c </dev/null 2>&1; then + dtraceobject=$define + echo "Your dtrace builds an object file" + fi + $rm -f try.c try.o perldtrace.o + ;; + *) dtraceobject=$undef ;; + esac +esac + : Determine if this is an EBCDIC system echo " " echo "Determining whether or not we are on an EBCDIC system..." >&4 @@ -20607,20 +21452,29 @@ else fi fi -if $test X"$uselongdouble" = X"$define" -a X"$d_longdbl" = X"$define" -a X"$d_PRIgldbl" = X"$define"; then +if $test X"$usequadmath" = X"$define"; then + nveformat='"Qe"' + nvfformat='"Qf"' + nvgformat='"Qg"' + nvEUformat='"QE"' + nvFUformat='"QF"' + nvGUformat='"QG"' +else + if $test X"$uselongdouble" = X"$define" -a X"$d_longdbl" = X"$define" -a X"$d_PRIgldbl" = X"$define"; then nveformat="$sPRIeldbl" nvfformat="$sPRIfldbl" nvgformat="$sPRIgldbl" nvEUformat="$sPRIEUldbl" nvFUformat="$sPRIFUldbl" nvGUformat="$sPRIGUldbl" -else + else nveformat='"e"' nvfformat='"f"' nvgformat='"g"' nvEUformat='"E"' nvFUformat='"F"' nvGUformat='"G"' + fi fi case "$ivdformat" in @@ -20950,11 +21804,6 @@ rp='What pager is used on your system?' . ./getfile pager="$ans" -: see what type pids are declared as in the kernel -rp="What is the type of process ids on this system?" -set pid_t pidtype int stdio.h sys/types.h -eval $typedef_ask - : see if ar generates random libraries by itself echo " " echo "Checking how to generate random libraries on your machine..." >&4 @@ -21083,7 +21932,7 @@ int check_min () int main (int argc, char *argv[]) { - fprintf (stderr, "Sizeof time_t = %ld\n", sizeof (time_t)); + /* fprintf (stderr, "Sizeof time_t = %ld\n", sizeof (time_t)); */ check_max (); check_min (); return (0); @@ -21091,7 +21940,7 @@ int main (int argc, char *argv[]) EOCP set try if eval $compile; then - eval `$run ./try` + eval `$run ./try 2>/dev/null` else echo "Cannot determine sGMTIME_max and sGMTIME_min." >&4 fi @@ -21172,7 +22021,7 @@ int main (int argc, char *argv[]) EOCP set try if eval $compile; then - eval `$run ./try` + eval `$run ./try 2>/dev/null` else echo "Cannot determine sLOCALTIME_max and sLOCALTIME_min." >&4 fi @@ -21304,7 +22153,7 @@ int main() { EOCP set try if eval $compile_ok; then - selectminbits=`$run ./try` + selectminbits=`$run ./try 2>/dev/null` case "$selectminbits" in '') cat >&4 </dev/null` unsigned short - case $1 in - unsigned) dflt="$1 $2" ;; - *) dflt="$1" ;; - esac - ;; -*) dflt="$uidtype";; -esac -case "$uidtype" in -uid_t) echo "uid_t found." ;; -*) rp="What is the type for user ids returned by getuid()?" - . ./myread - uidtype="$ans" - ;; -esac - : Check size of UID echo " " case "$uidtype" in @@ -22480,7 +23313,7 @@ case "$osname-$gccversion" in irix-) ccflags="\$ccflags -woff 1178" ;; os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;; esac -$cc -o try -Dcpp_stuff=$cpp_stuff $optimize \$ccflags $ldflags try.c $libs && $run ./try | $sed 's/ /\\\\ /g' +$cc -o try -Dcpp_stuff=$cpp_stuff $optimize \$ccflags $ldflags try.c $libs 2>/dev/null && $run ./try | $sed 's/ /\\\\ /g' EOSH chmod +x Cppsym.try $eunicefix Cppsym.try @@ -22577,7 +23410,7 @@ fi : add -D_FORTIFY_SOURCE if feasible and not already there case "$gccversion" in -4.*) case "$optimize$ccflags" in +[45].*) case "$optimize$ccflags" in *-O*) case "$ccflags$cppsymbols" in *_FORTIFY_SOURCE=*) # Don't add it again. echo "You seem to have -D_FORTIFY_SOURCE already, not adding it." >&4 @@ -22587,11 +23420,11 @@ case "$gccversion" in ;; esac ;; - *) echo "You have gcc 4.* but not optimizing, not adding -D_FORTIFY_SOURCE." >&4 + *) echo "You have gcc 4.* or later but not optimizing, not adding -D_FORTIFY_SOURCE." >&4 ;; esac ;; -*) echo "You seem not to have gcc 4.*, not adding -D_FORTIFY_SOURCE." >&4 +*) echo "You seem not to have gcc 4.* or later, not adding -D_FORTIFY_SOURCE." >&4 ;; esac @@ -22808,13 +23641,13 @@ find_extensions=' case "$xxx" in DynaLoader|dynaload) ;; *) - this_ext=`echo $xxx | $sed -e s/-/\\\//g`; + this_ext=`echo "$xxx" | $sed -e s/-/\\\//g`; case "$this_ext" in Scalar/List/Utils) this_ext="List/Util" ;; PathTools) this_ext="Cwd" ;; esac; - echo " $xs_extensions $nonxs_extensions" > $tdir/$$.tmp; - if $contains " $this_ext " $tdir/$$.tmp; then + echo " $xs_extensions $nonxs_extensions" > "$tdir/$$.tmp"; + if $contains " $this_ext " "$tdir/$$.tmp"; then echo >&4; echo "Duplicate directories detected for extension $xxx" >&4; echo "Configure cannot correctly recover from this - shall I abort?" >&4; @@ -22832,15 +23665,15 @@ find_extensions=' esac; echo "Ok. You will need to correct config.sh before running make." >&4; fi; - $ls -1 $xxx > $tdir/$$.tmp; - if $contains "\.xs$" $tdir/$$.tmp > /dev/null 2>&1; then + $ls -1 "$xxx" > "$tdir/$$.tmp"; + if $contains "\.xs$" "$tdir/$$.tmp" > /dev/null 2>&1; then xs_extensions="$xs_extensions $this_ext"; - elif $contains "\.c$" $tdir/$$.tmp > /dev/null 2>&1; then + elif $contains "\.c$" "$tdir/$$.tmp" > /dev/null 2>&1; then xs_extensions="$xs_extensions $this_ext"; - elif $test -d $xxx; then + elif $test -d "$xxx"; then nonxs_extensions="$nonxs_extensions $this_ext"; fi; - $rm -f $tdir/$$.tmp; + $rm -f "$tdir/$$.tmp"; ;; esac; done' @@ -22870,6 +23703,11 @@ known_extensions=`echo $nonxs_extensions $xs_extensions | tr ' ' $trnl | $sort avail_ext='' for xxx in $xs_extensions ; do case "$xxx" in + Amiga*) + case "$osname" in + amigaos) avail_ext="$avail_ext $xxx" ;; + esac + ;; DB_File|db_file) case "$i_db" in $define) avail_ext="$avail_ext $xxx" ;; @@ -22939,9 +23777,14 @@ for xxx in $xs_extensions ; do esac ;; Sys/Syslog|sys/syslog) - : XXX syslog requires socket - case "$d_socket" in - true|$define|y) avail_ext="$avail_ext $xxx" ;; + case $osname in + amigaos) ;; # not really very useful on AmigaOS + *) + : XXX syslog requires socket + case "$d_socket" in + true|$define|y) avail_ext="$avail_ext $xxx" ;; + esac + ;; esac ;; Thread|thread) @@ -23398,6 +24241,8 @@ d_alarm='$d_alarm' d_archlib='$d_archlib' d_asctime64='$d_asctime64' d_asctime_r='$d_asctime_r' +d_asinh='$d_asinh' +d_atanh='$d_atanh' d_atolf='$d_atolf' d_atoll='$d_atoll' d_attribute_deprecated='$d_attribute_deprecated' @@ -23420,6 +24265,7 @@ d_bzero='$d_bzero' d_c99_variadic_macros='$d_c99_variadic_macros' d_casti32='$d_casti32' d_castneg='$d_castneg' +d_cbrt='$d_cbrt' d_charvspr='$d_charvspr' d_chown='$d_chown' d_chroot='$d_chroot' @@ -23429,6 +24275,7 @@ d_clearenv='$d_clearenv' d_closedir='$d_closedir' d_cmsghdr_s='$d_cmsghdr_s' d_const='$d_const' +d_copysign='$d_copysign' d_copysignl='$d_copysignl' d_cplusplus='$d_cplusplus' d_crypt='$d_crypt' @@ -23454,6 +24301,7 @@ d_dosuid='$d_dosuid' d_drand48_r='$d_drand48_r' d_drand48proto='$d_drand48proto' d_dup2='$d_dup2' +d_duplocale='$d_duplocale' d_eaccess='$d_eaccess' d_endgrent='$d_endgrent' d_endgrent_r='$d_endgrent_r' @@ -23468,7 +24316,11 @@ d_endpwent_r='$d_endpwent_r' d_endsent='$d_endsent' d_endservent_r='$d_endservent_r' d_eofnblk='$d_eofnblk' +d_erf='$d_erf' +d_erfc='$d_erfc' d_eunice='$d_eunice' +d_exp2='$d_exp2' +d_expm1='$d_expm1' d_faststdio='$d_faststdio' d_fchdir='$d_fchdir' d_fchmod='$d_fchmod' @@ -23477,6 +24329,8 @@ d_fcntl='$d_fcntl' d_fcntl_can_lock='$d_fcntl_can_lock' d_fd_macros='$d_fd_macros' d_fd_set='$d_fd_set' +d_fdclose='$d_fdclose' +d_fdim='$d_fdim' d_fds_bits='$d_fds_bits' d_fegetround='$d_fegetround' d_fgetpos='$d_fgetpos' @@ -23485,6 +24339,9 @@ d_finitel='$d_finitel' d_flexfnam='$d_flexfnam' d_flock='$d_flock' d_flockproto='$d_flockproto' +d_fma='$d_fma' +d_fmax='$d_fmax' +d_fmin='$d_fmin' d_fork='$d_fork' d_fp_class='$d_fp_class' d_fp_classify='$d_fp_classify' @@ -23495,6 +24352,7 @@ d_fpclassify='$d_fpclassify' d_fpclassl='$d_fpclassl' d_fpgetround='$d_fpgetround' d_fpos64_t='$d_fpos64_t' +d_freelocale='$d_freelocale' d_frexpl='$d_frexpl' d_fs_data_s='$d_fs_data_s' d_fseeko='$d_fseeko' @@ -23571,6 +24429,8 @@ d_gnulibc='$d_gnulibc' d_grpasswd='$d_grpasswd' d_hasmntopt='$d_hasmntopt' d_htonl='$d_htonl' +d_hypot='$d_hypot' +d_ilogb='$d_ilogb' d_ilogbl='$d_ilogbl' d_inc_version_list='$d_inc_version_list' d_index='$d_index' @@ -23588,24 +24448,40 @@ d_isfinite='$d_isfinite' d_isfinitel='$d_isfinitel' d_isinf='$d_isinf' d_isinfl='$d_isinfl' +d_isless='$d_isless' d_isnan='$d_isnan' d_isnanl='$d_isnanl' +d_isnormal='$d_isnormal' d_j0='$d_j0' d_j0l='$d_j0l' d_killpg='$d_killpg' +d_lc_monetary_2008='$d_lc_monetary_2008' d_lchown='$d_lchown' d_ldbl_dig='$d_ldbl_dig' d_ldexpl='$d_ldexpl' +d_lgamma='$d_lgamma' +d_lgamma_r='$d_lgamma_r' d_libm_lib_version='$d_libm_lib_version' d_libname_unique='$d_libname_unique' d_link='$d_link' +d_llrint='$d_llrint' +d_llrintl='$d_llrintl' +d_llround='$d_llround' +d_llroundl='$d_llroundl' d_localtime64='$d_localtime64' d_localtime_r='$d_localtime_r' d_localtime_r_needs_tzset='$d_localtime_r_needs_tzset' d_locconv='$d_locconv' d_lockf='$d_lockf' +d_log1p='$d_log1p' +d_log2='$d_log2' +d_logb='$d_logb' d_longdbl='$d_longdbl' d_longlong='$d_longlong' +d_lrint='$d_lrint' +d_lrintl='$d_lrintl' +d_lround='$d_lround' +d_lroundl='$d_lroundl' d_lseekproto='$d_lseekproto' d_lstat='$d_lstat' d_madvise='$d_madvise' @@ -23617,6 +24493,7 @@ d_mbtowc='$d_mbtowc' d_memchr='$d_memchr' d_memcmp='$d_memcmp' d_memcpy='$d_memcpy' +d_memmem='$d_memmem' d_memmove='$d_memmove' d_memset='$d_memset' d_mkdir='$d_mkdir' @@ -23628,7 +24505,6 @@ d_mktime64='$d_mktime64' d_mktime='$d_mktime' d_mmap='$d_mmap' d_modfl='$d_modfl' -d_modfl_pow32_bug='$d_modfl_pow32_bug' d_modflproto='$d_modflproto' d_mprotect='$d_mprotect' d_msg='$d_msg' @@ -23645,8 +24521,13 @@ d_msgsnd='$d_msgsnd' d_msync='$d_msync' d_munmap='$d_munmap' d_mymalloc='$d_mymalloc' +d_nan='$d_nan' d_ndbm='$d_ndbm' d_ndbm_h_uses_prototypes='$d_ndbm_h_uses_prototypes' +d_nearbyint='$d_nearbyint' +d_newlocale='$d_newlocale' +d_nextafter='$d_nextafter' +d_nexttoward='$d_nexttoward' d_nice='$d_nice' d_nl_langinfo='$d_nl_langinfo' d_nv_preserves_uv='$d_nv_preserves_uv' @@ -23682,20 +24563,29 @@ d_pwpasswd='$d_pwpasswd' d_pwquota='$d_pwquota' d_qgcvt='$d_qgcvt' d_quad='$d_quad' +d_querylocale='$d_querylocale' d_random_r='$d_random_r' +d_re_comp='$d_re_comp' d_readdir64_r='$d_readdir64_r' d_readdir='$d_readdir' d_readdir_r='$d_readdir_r' d_readlink='$d_readlink' d_readv='$d_readv' d_recvmsg='$d_recvmsg' +d_regcmp='$d_regcmp' +d_regcomp='$d_regcomp' +d_remainder='$d_remainder' +d_remquo='$d_remquo' d_rename='$d_rename' d_rewinddir='$d_rewinddir' +d_rint='$d_rint' d_rmdir='$d_rmdir' +d_round='$d_round' d_safebcpy='$d_safebcpy' d_safemcpy='$d_safemcpy' d_sanemcmp='$d_sanemcmp' d_sbrkproto='$d_sbrkproto' +d_scalbn='$d_scalbn' d_scalbnl='$d_scalbnl' d_sched_yield='$d_sched_yield' d_scm_rights='$d_scm_rights' @@ -23747,6 +24637,14 @@ d_shmctl='$d_shmctl' d_shmdt='$d_shmdt' d_shmget='$d_shmget' d_sigaction='$d_sigaction' +d_siginfo_si_addr='$d_siginfo_si_addr' +d_siginfo_si_band='$d_siginfo_si_band' +d_siginfo_si_errno='$d_siginfo_si_errno' +d_siginfo_si_fd='$d_siginfo_si_fd' +d_siginfo_si_pid='$d_siginfo_si_pid' +d_siginfo_si_status='$d_siginfo_si_status' +d_siginfo_si_uid='$d_siginfo_si_uid' +d_siginfo_si_value='$d_siginfo_si_value' d_signbit='$d_signbit' d_sigprocmask='$d_sigprocmask' d_sigsetjmp='$d_sigsetjmp' @@ -23767,6 +24665,7 @@ d_srand48_r='$d_srand48_r' d_srandom_r='$d_srandom_r' d_sresgproto='$d_sresgproto' d_sresuproto='$d_sresuproto' +d_stat='$d_stat' d_statblks='$d_statblks' d_statfs_f_flags='$d_statfs_f_flags' d_statfs_s='$d_statfs_s' @@ -23784,6 +24683,7 @@ d_strcoll='$d_strcoll' d_strctcpy='$d_strctcpy' d_strerrm='$d_strerrm' d_strerror='$d_strerror' +d_strerror_l='$d_strerror_l' d_strerror_r='$d_strerror_r' d_strftime='$d_strftime' d_strlcat='$d_strlcat' @@ -23809,12 +24709,14 @@ d_tcgetpgrp='$d_tcgetpgrp' d_tcsetpgrp='$d_tcsetpgrp' d_telldir='$d_telldir' d_telldirproto='$d_telldirproto' +d_tgamma='$d_tgamma' d_time='$d_time' d_timegm='$d_timegm' d_times='$d_times' d_tm_tm_gmtoff='$d_tm_tm_gmtoff' d_tm_tm_zone='$d_tm_tm_zone' d_tmpnam_r='$d_tmpnam_r' +d_trunc='$d_trunc' d_truncate='$d_truncate' d_truncl='$d_truncl' d_ttyname_r='$d_ttyname_r' @@ -23826,6 +24728,7 @@ d_uname='$d_uname' d_union_semun='$d_union_semun' d_unordered='$d_unordered' d_unsetenv='$d_unsetenv' +d_uselocale='$d_uselocale' d_usleep='$d_usleep' d_usleepproto='$d_usleepproto' d_ustat='$d_ustat' @@ -23857,10 +24760,15 @@ db_version_patch='$db_version_patch' direntrytype='$direntrytype' dlext='$dlext' dlsrc='$dlsrc' +doubleinfbytes='$doubleinfbytes' +doublekind='$doublekind' +doublemantbits='$doublemantbits' +doublenanbytes='$doublenanbytes' doublesize='$doublesize' drand01='$drand01' drand48_r_proto='$drand48_r_proto' dtrace='$dtrace' +dtraceobject='$dtraceobject' dynamic_ext='$dynamic_ext' eagain='$eagain' ebcdic='$ebcdic' @@ -24036,6 +24944,7 @@ i_values='$i_values' i_varargs='$i_varargs' i_varhdr='$i_varhdr' i_vfork='$i_vfork' +i_xlocale='$i_xlocale' ignore_versioned_solibs='$ignore_versioned_solibs' inc_version_list='$inc_version_list' inc_version_list_init='$inc_version_list_init' @@ -24104,7 +25013,10 @@ lns='$lns' localtime_r_proto='$localtime_r_proto' locincpth='$locincpth' loclibpth='$loclibpth' +longdblinfbytes='$longdblinfbytes' longdblkind='$longdblkind' +longdblmantbits='$longdblmantbits' +longdblnanbytes='$longdblnanbytes' longdblsize='$longdblsize' longlongsize='$longlongsize' longsize='$longsize' @@ -24157,6 +25069,7 @@ nv_preserves_uv_bits='$nv_preserves_uv_bits' nveformat='$nveformat' nvfformat='$nvfformat' nvgformat='$nvgformat' +nvmantbits='$nvmantbits' nvsize='$nvsize' nvtype='$nvtype' o_nonblock='$o_nonblock' @@ -24450,8 +25363,7 @@ Id='$Id' : Finish up by extracting the .SH files case "$alldone" in exit) - $rm -rf UU - echo "Extraction done." + echo "Stopping at your request, leaving temporary files around." exit 0 ;; cont) @@ -24526,11 +25438,10 @@ the policy defaults. EOM fi -if $test -f config.msg; then +if $test -f UU/config.msg; then echo "Hmm. I also noted the following information while running:" echo " " - $cat config.msg >&4 - $rm -f config.msg + $cat UU/config.msg >&4 fi $rm -f kit*isdone ark*isdone $rm -rf UU