X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/bc580dd327b37b38d4f66d5c335b3e9fc12eaac8..5f7104e27bf393e7a375da488b5653e69e55d8da:/Configure diff --git a/Configure b/Configure index 034104f..3259249 100755 --- a/Configure +++ b/Configure @@ -69,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 @@ -1863,8 +1910,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 @@ -2025,7 +2072,7 @@ true) echo "Fetching answers from $config_sh..." cd .. . $config_sh - test "$override" && . ./optdef.sh + . UU/optdef.sh echo " " . UU/extract rm -rf UU @@ -2105,22 +2152,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 @@ -2850,7 +2896,6 @@ case "$lns" in *) echo "No symbolic links, so not testing for their testing..." >&4 ;; esac -echo " " : Make symlinks util case "$mksymlinks" in @@ -2945,7 +2990,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=' ' @@ -3196,8 +3241,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:]' @@ -3347,6 +3392,7 @@ EOM $test -f /etc/saf/_sactab && osname=svr4 $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 @@ -3777,7 +3823,7 @@ cd UU hint=previous ;; esac -test "$override" && . ./optdef.sh +. ./optdef.sh : Restore computed paths for file in $loclist $trylist; do @@ -4324,15 +4370,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 @@ -5210,6 +5256,20 @@ case "$usequadmath" in *) 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 @@ -5445,15 +5505,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 @@ -5530,7 +5594,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__" @@ -5734,6 +5803,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 @@ -5758,6 +5832,8 @@ EOF chmod +x fieldn fieldn=`./fieldn` $rm -f foo.c fieldn +;; +esac case $fieldn in '') pos='???';; 1) pos=first;; @@ -6753,13 +6829,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; @@ -6925,17 +7001,26 @@ int main() { } #endif /* For alignment 32-bit platforms have the 80 bits in 12 bytes, - * while 64-bits platforms have it in 16 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); } @@ -6944,17 +7029,45 @@ int main() { /* 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 +/* We are largely making this up because it may well be + * that the VAX format H was never made available to C, + * only to Fortran. */ +#if LONGDBLSIZE == 16 && defined(__vax__) + if (b[0] == 0xFD && b[15] == 0x99) { + /* VAX format H, PDP-11 mixed endian. */ + printf("9\n"); + exit(0); + } #endif printf("-1\n"); /* unknown */ exit(0); @@ -6975,10 +7088,33 @@ case "$longdblkind" in 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 little-endian double-double long doubles." >& 4 ;; -6) echo "You have 128-bit big-endian double-double 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-endian double-double long doubles (64-bit LEs in BE)." >& 4 ;; +8) echo "You have 128-bit mixed-endian double-double long doubles (64-bit BEs in LE)." >& 4 ;; +9) echo "You have 128-bit PDP-style mixed-endian long doubles (VAX format H)." >& 4 ;; *) echo "Cannot figure out your long double." >&4 ;; esac +d_long_double_style_ieee=$undef +d_long_double_style_ieee_std=$undef +d_long_double_style_ieee_extended=$undef +d_long_double_style_ieee_doubledouble=$undef +d_long_double_style_vax=$undef +case "$longdblkind" in +1|2|3|4|5|6|7|8) d_long_double_style_ieee=$define ;; +esac +case "$longdblkind" in +1|2) d_long_double_style_ieee_std=$define ;; +esac +case "$longdblkind" in +3|4) d_long_double_style_ieee_extended=$define ;; +esac +case "$longdblkind" in +5|6|7|8) d_long_double_style_ieee_doubledouble=$define ;; +esac +case "$longdblkind" in +9) d_long_double_style_vax=$define ;; +esac $rm_try : determine the architecture name @@ -7111,7 +7247,7 @@ case "$usequadmath" in $define) echo "quadmath selected." >&4 case "$archname" in - *-ld*) echo "...and architecture name already has -quadmath." >&4 + *-quadmath*) echo "...and architecture name already has -quadmath." >&4 ;; *) archname="$archname-quadmath" echo "...setting architecture name to $archname." >&4 @@ -7631,7 +7767,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 @@ -8028,7 +8164,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 @@ -9304,17 +9441,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 ;; 5) echo "You have IEEE 754 128-bit little endian doubles." >&4 ;; 6) echo "You have IEEE 754 128-bit big endian doubles." >&4 ;; -*) echo "Cannot figure out your double. You VAX, or something?" >&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 ;; +12) echo "You have IBM short 32-bit doubles." >&4 ;; +13) echo "You have IBM long 64-bit doubles." >&4 ;; +14) echo "You have Cray single 64-bit doubles." >&4 ;; +*) echo "Cannot figure out your double. You Cyber, or something?" >&4 ;; +esac +d_double_style_ieee=$undef +d_double_style_vax=$undef +d_double_style_ibm=$undef +d_double_style_cray=$undef +case "$doublekind" in +1|2|3|4|5|6|7|8) d_double_style_ieee=$define ;; +9|10|11) d_double_style_vax=$define ;; +12|13) d_double_style_ibm=$define ;; +14) d_double_style_cray=$define ;; +esac +case "$d_double_style_ieee" in +$define) + d_double_has_inf=$define + d_double_has_nan=$define + d_double_has_negative_zero=$define + d_double_has_subnormals=$define + ;; +*) + d_double_has_inf=$undef + d_double_has_nan=$undef + d_double_has_negative_zero=$undef + d_double_has_subnormals=$undef + ;; esac $rm_try @@ -13297,8 +13499,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 < @@ -13928,6 +14130,10 @@ EOM fi $rm_try +: see if fdclose exists +set fdclose d_fdclose +eval $inlibc + : see if fdim exists set fdim d_fdim eval $inlibc @@ -14048,6 +14254,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 @@ -14140,6 +14370,34 @@ else fi $rm_try +: look for gai_strerror +echo " " +$cat >try.c <<'EOCP' +#include +#include +#include +int main () +{ + return (gai_strerror (0) ? 0 : 1); + } +EOCP +set try +val="$undef" +if eval $compile; then + `$run ./try` + case "$?" in + 0) echo "A working gai_strerror() found." >&4 + val="$define" ;; + *) echo "gai_strerror() found, but it doesn't work" >&4 + ;; + esac +else + echo "gai_strerror() NOT found." >&4 + fi +set d_gai_strerror +eval $setvar +$rm_try + : see if ndbm.h is available set ndbm.h i_ndbm eval $inhdr @@ -16228,6 +16486,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 @@ -16308,69 +16570,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 @@ -16914,8 +17113,9 @@ $volatile int bletched = 0; $signal_t blech(int s) { bletched = 1; } #endif -int checkit($nvtype d, char *where) { - unsigned char *p = (char *)&d; +int checkit($nvtype d, const char *where) { + void *v = &d; + unsigned char *p = (unsigned char *)v; unsigned char *end = p + sizeof(d); int fail = 0; @@ -16925,7 +17125,7 @@ int checkit($nvtype d, char *where) { if (!fail) return 0; - p = (char *)&d; + p = (unsigned char *)v; printf("No - %s: 0x", where); while (p < end) printf ("%02X", *p++); @@ -17130,14 +17330,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 @@ -17153,8 +17360,7 @@ case "$d_readlink" in fi fi done - ;; -esac +fi $rm -f reflect set d_procselfexe eval $setvar @@ -18540,6 +18746,102 @@ fi set d_sigaction; eval $setvar $rm_try +: 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 what type uids are declared as in the kernel +echo " " +echo "Looking for the type for user ids returned by getuid()." +set uid_t uidtype xxx stdio.h sys/types.h +eval $typedef +case "$uidtype" in +xxx) + xxx=`./findhdr sys/user.h` + set `grep '_ruid;' "$xxx" 2>/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 @@ -18559,7 +18861,7 @@ $cat >try.c <&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() { @@ -20330,6 +20627,328 @@ EOCP ;; esac +: Include . in @INC +$cat <&4 +$echo "(The following tests may crash. That's okay.)" >&4 +$cat >try.c < +#endif +#ifdef I_STRING +# include +#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 + * + * Pre-IEEE-754 floating point format do not even have inf/nan support + * at all. They might have a "max" value (DBL_MAX), which may be deadly + * to even mention, causing immediate SIGFPE or equivalent: this is + * the case with VAX floating point, for example. + */ +static void bytes(void *v, unsigned int n) { + unsigned char *p = (unsigned char *)v; + 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); +# 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); + memset((char *)&ldnan + 10, '\0', LONG_DOUBLESIZE - 10); +# endif + if (argc == 2) { + switch (argv[1][0]) { + case '1': bytes(&dinf, sizeof(dinf)); break; + case '2': bytes(&dnan, sizeof(dnan)); break; + 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' + ;; + 9|10|11|12|13|14) # VAX/Cray/IBM floating point formats, no inf/nan. + doubleinfbytes=$undef + doublenanbytes=$undef + ;; + *) # 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' + ;; + 9|10|11|12|13|14) # VAX/Cray/IBM floating point formats, no inf/nan. + longdblinfbytes=$undef + longdblnanbytes=$undef + ;; + *) # No idea. + longdblinfbytes=$undef + longdblnanbytes=$undef + ;; + esac +fi +# In case the program crashed the values are empty, turn them undef. +case "$doubleinfbytes" in +'') doubleinfbytes=$undef ;; +esac +case "$doublenanbytes" in +'') doublenanbytes=$undef ;; +esac +case "$longdblinfbytes" in +'') longdblinfbytes=$undef ;; +esac +case "$longdblnanbytes" in +'') longdblnanbytes=$undef ;; +esac +$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 @@ -20349,6 +20968,61 @@ 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 "$dtracexnolibs" in + $define|true|[yY]*) + dtracexnolibs=$define + $dtrace -h -xnolibs -s ../perldtrace.d -o perldtrace.h + ;; + ' '|'') + if $dtrace -h -xnolibs -s ../perldtrace.d -o perldtrace.h 2>&1 ; then + dtracexnolibs=$define + echo "Your dtrace accepts -xnolibs" + elif $dtrace -h -s ../perldtrace.d -o perldtrace.h 2>&1 ; then + dtracexnolibs=$undef + echo "Your dtrace doesn't accept -xnolibs" + else + echo "Your dtrace doesn't work at all, try building without dtrace support" >&4 + exit 1 + fi + ;; + *) + dtracexnolibs=$undef + $dtrace -h -s ../perldtrace.d -o perldtrace.h + ;; + esac + case $dtracexnolibs in + $define) xnolibs=-xnolibs ;; + *) xnolibs= ;; + esac + + case "$dtraceobject" in + $define|true|[yY]*) + dtraceobject=$define + ;; + ' '|'') + $cat >try.c </dev/null 2>&1; then + dtraceobject=$define + echo "Your dtrace builds an object file" + fi + ;; + *) dtraceobject=$undef ;; + esac + $rm_try perldtrace.o perldtrace.h +esac + : Determine if this is an EBCDIC system echo " " echo "Determining whether or not we are on an EBCDIC system..." >&4 @@ -21332,11 +22006,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 @@ -21720,6 +22389,8 @@ EOM esac : Trace out the files included by signal.h, then look for SIGxxx names. +case "$sig_num_init" in +'') if [ "X$fieldn" = X ]; then : Just make some guesses. We check them later. xxx="$sysroot/usr/include/signal.h $sysroot/usr/include/sys/signal.h" @@ -21939,8 +22610,12 @@ $rm -f signal.c signal$_exe signal$_o signal.nsg signal.ls1 EOS chmod a+x signal_cmd $eunicefix signal_cmd +;; +esac : generate list of signal names +case "$sig_num_init" in +'') echo " " case "$sig_name_init" in '') doinit=yes ;; @@ -21983,6 +22658,8 @@ echo $sig_name | $awk \ }' sig_size=`echo $sig_name | awk '{print NF}'` $rm -f signal signal.c signal.awk signal.lst signal_cmd +;; +esac : Check size of size echo " " @@ -22220,30 +22897,6 @@ else fi $rm -f stdioh -: see what type uids are declared as in the kernel -echo " " -echo "Looking for the type for user ids returned by getuid()." -set uid_t uidtype xxx stdio.h sys/types.h -eval $typedef -case "$uidtype" in -xxx) - xxx=`./findhdr sys/user.h` - set `grep '_ruid;' "$xxx" 2>/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 @@ -22407,7 +23060,7 @@ main(int argc, char **argv) { return 4; } - buffer = malloc(size); + buffer = (char *)malloc(size); if (!buffer) { perror("malloc"); return 5; @@ -22506,7 +23159,7 @@ main(int argc, char **argv) { return 2; } - buffer = malloc(size); + buffer = (char *)malloc(size); if (!buffer) { perror("malloc"); return 3; @@ -22862,7 +23515,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 @@ -22959,7 +23612,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 @@ -22969,11 +23622,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 @@ -23190,13 +23843,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; @@ -23214,15 +23867,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' @@ -23252,6 +23905,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" ;; @@ -23321,9 +23979,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) @@ -23837,9 +24500,18 @@ d_dlerror='$d_dlerror' d_dlopen='$d_dlopen' d_dlsymun='$d_dlsymun' d_dosuid='$d_dosuid' +d_double_has_inf='$d_double_has_inf' +d_double_has_nan='$d_double_has_nan' +d_double_has_negative_zero='$d_double_has_negative_zero' +d_double_has_subnormals='$d_double_has_subnormals' +d_double_style_cray='$d_double_style_cray' +d_double_style_ibm='$d_double_style_ibm' +d_double_style_ieee='$d_double_style_ieee' +d_double_style_vax='$d_double_style_vax' 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' @@ -23867,6 +24539,7 @@ 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' @@ -23889,6 +24562,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' @@ -23899,6 +24573,7 @@ d_fsync='$d_fsync' d_ftello='$d_ftello' d_ftime='$d_ftime' d_futimes='$d_futimes' +d_gai_strerror='$d_gai_strerror' d_gdbm_ndbm_h_uses_prototypes='$d_gdbm_ndbm_h_uses_prototypes' d_gdbmndbm_h_uses_prototypes='$d_gdbmndbm_h_uses_prototypes' d_getaddrinfo='$d_getaddrinfo' @@ -24012,6 +24687,11 @@ d_lockf='$d_lockf' d_log1p='$d_log1p' d_log2='$d_log2' d_logb='$d_logb' +d_long_double_style_ieee='$d_long_double_style_ieee' +d_long_double_style_ieee_doubledouble='$d_long_double_style_ieee_doubledouble' +d_long_double_style_ieee_extended='$d_long_double_style_ieee_extended' +d_long_double_style_ieee_std='$d_long_double_style_ieee_std' +d_long_double_style_vax='$d_long_double_style_vax' d_longdbl='$d_longdbl' d_longlong='$d_longlong' d_lrint='$d_lrint' @@ -24029,6 +24709,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' @@ -24040,7 +24721,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' @@ -24061,6 +24741,7 @@ 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' @@ -24098,6 +24779,7 @@ 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' @@ -24171,6 +24853,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' @@ -24209,6 +24899,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' @@ -24253,6 +24944,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' @@ -24281,14 +24973,20 @@ db_prefixtype='$db_prefixtype' db_version_major='$db_version_major' db_version_minor='$db_version_minor' db_version_patch='$db_version_patch' +default_inc_excludes_dot='$default_inc_excludes_dot' 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' +dtracexnolibs='$dtracexnolibs' dynamic_ext='$dynamic_ext' eagain='$eagain' ebcdic='$ebcdic' @@ -24464,6 +25162,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' @@ -24532,7 +25231,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' @@ -24585,6 +25287,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' @@ -24878,8 +25581,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) @@ -24954,11 +25656,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