X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Configure;h=e5ce51144c612244ecf5c05785373ab717bd5c53;hb=1be1b388c18674b89d106c333a2dd62d9b736e29;hp=1d428df559f2f1883c09576bee782c16e8f45d69;hpb=13cfc98d5a4a8fc07717a2057090b559b1436169;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Configure b/Configure index 1d428df..e5ce511 100755 --- a/Configure +++ b/Configure @@ -11,11 +11,10 @@ # 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 +# Note: this Configure script was generated automatically. Rather than # working with this copy of Configure, you may wish to get metaconfig. -# The dist-3.0 package (which contains metaconfig) was posted in -# comp.sources.misc and is available on CPAN under authors/id/RAM so -# you may fetch it yourself from your nearest archive site.) +# The dist package (which contains metaconfig) is available via SVN: +# svn co https://svn.sourceforge.net/svnroot/dist/trunk/dist # # # Though this script was generated by metaconfig, it is OK to send @@ -24,9 +23,9 @@ # See Porting/pumpkin.pod for more information on metaconfig. # -# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ +# $Id: Head.U 6 2006-08-25 22:21:46Z rmanfredi $ # -# Generated on Mon Oct 23 17:35:45 CEST 2006 [metaconfig 3.0 PL70] +# Generated on Fri Nov 28 08:39:51 CET 2008 [metaconfig 3.5 PL0] # (with additional metaconfig patches by perlbug@perl.org) cat >c1$$ <&4 <&1 >/dev/null ; then - if test -n "$OS2_SHELL"; then + if test -n "$OS2_SHELL"; then p_=\; PATH=`cmd /c "echo %PATH%" | tr '\\\\' / ` OS2_SHELL=`cmd /c "echo %OS2_SHELL%" | tr '\\\\' / | tr '[A-Z]' '[a-z]'` @@ -133,9 +144,9 @@ if test -d /usr/lpp -a -f /usr/bin/bsh -a -f /usr/bin/uname; then fi if test -f /osf_boot -a -f /usr/sbin/setld; then if test X`/usr/bin/uname -s` = XOSF1; then - avoidksh="to avoid Digital UNIX' ksh" - newsh=/bin/sh - unset BIN_SH # if this is 'xpg4' sh will start up ksh + avoidksh="to avoid Digital UNIX' ksh" + newsh=/bin/sh + unset BIN_SH fi fi case "$inksh/$needksh" in @@ -169,17 +180,19 @@ true) esac ;; esac +test -x "${newsh}" || unset newsh -: if needed set CDPATH to a harmless value that is not chatty +: if needed, set CDPATH to a harmless value that is not chatty : avoid bash 2.02 problems with empty CDPATH. case "$CDPATH" in '') ;; *) case "$SHELL" in - *bash*) CDPATH='.' ;; - *) CDPATH='' ;; + *bash*) CDPATH='.' ;; + *) CDPATH='' ;; esac ;; esac + : Configure runs within the UU subdirectory test -d UU || mkdir UU cd UU && rm -f ./* @@ -194,7 +207,9 @@ run='' targetarch='' to='' usecrosscompile='' +extern_C='' mistrustnm='' +usedevel='' perllibs='' dynamic_ext='' extensions='' @@ -208,7 +223,6 @@ d_bsd='' d_eunice='' d_xenix='' eunicefix='' -Mcc='' ar='' awk='' bash='' @@ -304,6 +318,7 @@ firstmakefile='' lib_ext='' obj_ext='' path_sep='' +rm_try='' afs='' afsroot='' alignbytes='' @@ -333,7 +348,6 @@ optimize='' cf_email='' cf_by='' cf_time='' -charsize='' contains='' cpp_stuff='' cpplast='' @@ -354,6 +368,7 @@ d_attribute_noreturn='' d_attribute_pure='' d_attribute_unused='' d_attribute_warn_unused_result='' +d_printf_format_null='' d_bcmp='' d_bcopy='' d_builtin_choose_expr='' @@ -389,6 +404,7 @@ d_cuserid='' d_dbl_dig='' d_dbminitproto='' d_difftime='' +d_dir_dd_fd='' d_dirfd='' d_dlerror='' d_dlopen='' @@ -549,6 +565,7 @@ d_ldbl_dig='' d_libm_lib_version='' d_link='' d_localtime_r='' +d_localtime_r_needs_tzset='' localtime_r_proto='' d_locconv='' d_lockf='' @@ -685,6 +702,7 @@ d_shmctl='' d_shmdt='' d_shmget='' d_sigaction='' +d_signbit='' d_sigprocmask='' d_sigsetjmp='' usesitecustomize='' @@ -761,6 +779,13 @@ d_tcsetpgrp='' d_telldirproto='' d_time='' timetype='' +d_asctime64='' +d_ctime64='' +d_difftime64='' +d_gmtime64='' +d_localtime64='' +d_mktime64='' +d_timegm='' clocktype='' d_times='' d_tmpnam_r='' @@ -780,6 +805,7 @@ d_unsetenv='' d_usleep='' d_usleepproto='' d_ustat='' +d_pseudofork='' d_vfork='' usevfork='' d_voidsig='' @@ -822,6 +848,7 @@ html3dir='' html3direxp='' installhtml3dir='' i_arpainet='' +i_assert='' i_crypt='' db_hashtype='' db_prefixtype='' @@ -851,9 +878,16 @@ i_limits='' i_locale='' i_machcthr='' i_malloc='' +i_mallocmalloc='' i_math='' i_memory='' i_mntent='' +d_gdbm_ndbm_h_uses_prototypes='' +d_gdbmndbm_h_uses_prototypes='' +d_ndbm='' +d_ndbm_h_uses_prototypes='' +i_gdbm_ndbm='' +i_gdbmndbm='' i_ndbm='' i_netdb='' i_neterrno='' @@ -894,6 +928,7 @@ i_sysmode='' i_sysmount='' i_sysndir='' i_sysparam='' +i_syspoll='' i_sysresrc='' i_syssecrt='' i_sysselct='' @@ -1039,6 +1074,7 @@ i8size='' i8type='' ivsize='' ivtype='' +nv_overflows_integers_at='' nv_preserves_uv_bits='' nvsize='' nvtype='' @@ -1147,6 +1183,10 @@ stdchar='' d_stdio_stream_array='' stdio_stream_array='' sysman='' +sGMTIME_max='' +sGMTIME_min='' +sLOCALTIME_max='' +sLOCALTIME_min='' trnl='' uidformat='' uidsign='' @@ -1155,6 +1195,8 @@ uidtype='' archname64='' use64bitall='' use64bitint='' +dtrace='' +usedtrace='' usefaststdio='' ccflags_uselargefiles='' ldflags_uselargefiles='' @@ -1216,6 +1258,7 @@ yacc='' yaccflags='' CONFIG='' +: Detect odd OSs define='define' undef='undef' smallmach='pdp11 i8086 z8000 i80286 iAPX286' @@ -1245,31 +1288,12 @@ elif test -d c:/. -o -n "$is_os2" ; then _exe=".exe" fi +groupstype='' i_whoami='' -ccname='' -ccversion='' -perllibs='' -: set useposix=false in your hint file to disable the POSIX extension. -useposix=true -: set useopcode=false in your hint file to disable the Opcode extension. -useopcode=true : Trailing extension. Override this in a hint file, if needed. : Extra object files, if any, needed on this platform. archobjs='' archname='' -: Possible local include directories to search. -: Set locincpth to "" in a hint file to defeat local include searches. -locincpth="/usr/local/include /opt/local/include /usr/gnu/include" -locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include" -: -: no include file wanted by default -inclwanted='' - -: Enable -DEBUGGING and -DDEBUGGING from the command line -EBUGGING='' -DEBUGGING=old - -groupstype='' libnames='' : change the next line if compiling for Xenix/286 on Xenix/386 xlibpth='/usr/lib/386 /lib/386' @@ -1282,6 +1306,7 @@ glibpth="/lib /usr/lib $xlibpth" glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib" test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth" test -f /shlib/libc.so && glibpth="/shlib $glibpth" +test -d /usr/lib64 && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64" : Private path used by Configure to find libraries. Its value : is prepended to libpth. This variable takes care of special @@ -1292,20 +1317,36 @@ plibpth='' libswanted='' : some systems want to use only the non-versioned libso:s ignore_versioned_solibs='' -siteman1dir='' -siteman3dir='' -sitescript='' +: set usethreads on the Configure command line to enable threads. +usereentrant='undef' +: full support for void wanted by default +defvoidused=15 + +: Possible local include directories to search. +: Set locincpth to "" in a hint file to defeat local include searches. +locincpth="/usr/local/include /opt/local/include /usr/gnu/include" +locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include" +: +: no include file wanted by default +inclwanted='' + +: Enable -DEBUGGING and -DDEBUGGING from the command line +EBUGGING='' +DEBUGGING=old + +ccname='' +ccversion='' +perllibs='' +: set useposix=false in your hint file to disable the POSIX extension. +useposix=true +: set useopcode=false in your hint file to disable the Opcode extension. +useopcode=true archname64='' ccflags_uselargefiles='' ldflags_uselargefiles='' libswanted_uselargefiles='' : set usemultiplicity on the Configure command line to enable multiplicity. : set usesocks on the Configure command line to enable socks. -: set usethreads on the Configure command line to enable threads. -usereentrant='undef' -: full support for void wanted by default -defvoidused=15 - : List of libraries we want. : If anyone needs extra -lxxx, put those in a hint file. libswanted="sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun" @@ -1383,14 +1424,14 @@ if `$sh -c '#' >/dev/null 2>&1`; then echo "#!$xcat" >sharp $eunicefix sharp chmod +x sharp - ./sharp > today + ./sharp > today 2>/dev/null if test -s today; then sharpbang='#!' else echo "#! $xcat" > sharp $eunicefix sharp chmod +x sharp - ./sharp > today + ./sharp > today 2>/dev/null if test -s today; then sharpbang='#! ' else @@ -1433,11 +1474,10 @@ else fi rm -f sharp - : Save command line options in file UU/cmdline.opt for later use in : generating config.sh. cat > cmdline.opt <>cmdline.opt < cmdl.opt $arg EOC @@ -1458,8 +1497,6 @@ EOC argn=`expr $argn + 1` args_sep=' ' done -# args_exp is good for restarting self: eval "set X $args_exp"; shift; $0 "$@" -# used by ./hints/os2.sh rm -f cmdl.opt : produce awk script to parse command line options @@ -1547,6 +1584,7 @@ while test $# -gt 0; do fi cd UU shift;; + --help|\ -h) shift; error=true;; -r) shift; reuseval=true;; -s) shift; silent=true; realsilent=true;; @@ -1590,7 +1628,7 @@ while test $# -gt 0; do case "$zzz" in *:*) zzz='' ;; *) xxx=append - zzz=" "`echo "$yyy"|sed 's!^[^=]*=!!'` + zzz=" "`echo "$yyy"|sed 's!^[^=]*=!!'` yyy=`echo "$yyy"|sed 's!=.*!!'` ;; esac ;; @@ -1604,7 +1642,7 @@ while test $# -gt 0; do *) xxx=`echo "$yyy"|sed 's!:.*!!'` yyy=`echo "$yyy"|sed 's!^[^:]*:!!'` ;; esac - ;; + ;; esac case "$xxx" in append) @@ -1629,7 +1667,7 @@ while test $# -gt 0; do esac shift ;; - -V) echo "$me generated by metaconfig 3.0 PL70." >&2 + -V) echo "$me generated by metaconfig 3.5 PL0." >&2 exit 0;; --) break;; -*) echo "$me: unknown option $1" >&2; shift; error=true;; @@ -1651,6 +1689,14 @@ Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value] -D : define symbol to have some value: -D symbol symbol gets the value 'define' -D symbol=value symbol gets the value 'value' + common used examples (see INSTALL for more info): + -Duse64bitint use 64bit integers + -Duse64bitall use 64bit integers and pointers + -Dusethreads use thread support + -Dinc_version_list=none do not include older perl trees in @INC + -DEBUGGING=none DEBUGGING options + -Dcc=gcc choose your compiler + -Dprefix=/opt/perl5 choose your destination -E : stop at the end of questions, after having produced config.sh. -K : do not use unless you know what you are doing. -O : let -D and -U override definitions from loaded configuration file. @@ -1658,16 +1704,19 @@ Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value] -U : undefine symbol: -U symbol symbol gets the value 'undef' -U symbol= symbol gets completely empty + e.g.: -Uversiononly -A : manipulate symbol after the platform specific hints have been applied: - -A symbol=value append " "value to symbol - -A append:symbol=value append value to symbol - -A define:symbol=value define symbol to have value - -A clear:symbol define symbol to be '' - -A define:symbol define symbol to be 'define' - -A eval:symbol=value define symbol to be eval of value - -A prepend:symbol=value prepend value to symbol - -A undef:symbol define symbol to be 'undef' - -A undef:symbol= define symbol to be '' + -A append:symbol=value append value to symbol + -A symbol=value like append:, but with a separating space + -A define:symbol=value define symbol to have value + -A clear:symbol define symbol to be '' + -A define:symbol define symbol to be 'define' + -A eval:symbol=value define symbol to be eval of value + -A prepend:symbol=value prepend value to symbol + -A undef:symbol define symbol to be 'undef' + -A undef:symbol= define symbol to be '' + e.g.: -A prepend:libswanted='cl pthread ' + -A ccflags=-DSOME_MACRO -V : print version number and exit (with a zero status). EOM exit 1 @@ -1702,7 +1751,7 @@ touch optdef.sh touch posthint.sh : set package name -package=perl5 +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 @@ -1748,11 +1797,11 @@ case "$src" in '') src=/ rsrc=/ ;; -/*) rsrc="$src";; -*) rsrc="../$src";; +/*) rsrc="$src";; +*) rsrc="../$src";; esac if test -f $rsrc/Configure && \ - $contains "^package=$package$" $rsrc/Configure >/dev/null 2>&1 + $contains "^package='$package'\$" $rsrc/Configure >/dev/null 2>&1 then : found it, so we are ok. else @@ -1906,11 +1955,13 @@ rm -f .echotmp echo " " if test -f "$rsrc/MANIFEST"; then echo "First let's make sure your kit is complete. Checking..." >&4 - awk '$1 !~ /PACK[A-Z]+/ {print $1}' "$rsrc/MANIFEST" | (split -l 50 2>/dev/null || split -50) + awk '$1 !~ /PACK[A-Z]+/ {print $1}' "$rsrc/MANIFEST" | \ + (split -l 50 2>/dev/null || split -50) rm -f missing tmppwd=`pwd` for filelist in x??; do - (cd "$rsrc"; ls `cat "$tmppwd/$filelist"` >/dev/null 2>>"$tmppwd/missing") + (cd "$rsrc"; ls `cat "$tmppwd/$filelist"` \ + >/dev/null 2>>"$tmppwd/missing") done if test -s missing; then cat missing >&4 @@ -1944,8 +1995,8 @@ else fi rm -f missing x?? -echo " " : Find the appropriate value for a newline for tr +echo " " if test -n "$DJGPP"; then trnl='\012' fi @@ -2089,9 +2140,11 @@ persist across sessions for $package. You may safely delete it if you wish. EOF +: See if we are using a devel version and want that xversion=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h` case "$usedevel" in -$define|true|[yY]*) ;; +$define|true|[yY]*) + usedevel="$define" ;; *) case "$xversion" in *[13579]) cat >&4 <&4 @@ -2396,7 +2448,7 @@ make) ;; esac ;; -esac +esac case "$gmake" in gmake) ;; *) # We can't have osname yet. @@ -2452,6 +2504,20 @@ FOO ;; esac +# This question was auctioned at YAPC::Europe-2007 in Vienna +# I never promised you could answer it. I only auctioned the question. +cat <trygcc $startsh EOS @@ -2473,15 +2539,36 @@ EOM case "$cc" in *gcc*) trygcc=no ;; esac - case "`$cc -v -c try.c 2>&1`" in - *gcc*) trygcc=no ;; - esac + # Skip this test because it gives a false match on output like: + # ./trygcc: line 23: cc: command not found + # case "`$cc -v -c try.c 2>&1`" in + # *gcc*) trygcc=no ;; + # esac if $test X"$trygcc" = Xyes; then if gcc -o try -c try.c; then echo " " echo "You seem to have a working gcc, though." >&4 - rp="Would you like to use it?" - dflt=y + # Switching compilers may undo the work of hints files. + # The most common problem is -D_REENTRANT for threads. + # This heuristic catches that case, but gets false positives + # if -Dusethreads was not actually specified. Better to + # bail out here with a useful message than fail + # mysteriously later. Should we perhaps just try to + # re-invoke Configure -Dcc=gcc config_args ? + if $test -f usethreads.cbu; then + $cat >&4 <&4 </dev/null` $test -z "$myuname" && myuname=`hostname 2>/dev/null` # tr '[A-Z]' '[a-z]' would not work in EBCDIC # because the A-Z/a-z are not consecutive. -myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \ +myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e "s,['/],,g" | \ ./tr '[A-Z]' '[a-z]' | $tr $trnl ' '` newmyuname="$myuname" dflt=n @@ -3534,10 +3612,10 @@ cat >filexp <>whoa dflt=y -echo " " -echo "*** WHOA THERE!!! ***" >&4 -echo " The $hint value for \$$var on this machine was \"$was\"!" >&4 +case "$hint" in + recommended) + case "$hintfile" in + '') echo "The $hint value for \$$var on this machine was \"$was\"!" >&4 + ;; + *) echo "Hmm. Based on the hints in hints/$hintfile.sh, " >&4 + echo "the $hint value for \$$var on this machine was \"$was\"!" >&4 + ;; + esac + ;; + *) echo " " + echo "*** WHOA THERE!!! ***" >&4 + echo " The $hint value for \$$var on this machine was \"$was\"!" >&4 + ;; +esac rp=" Keep the $hint value?" . ./myread case "$ans" in @@ -3944,7 +4035,7 @@ y) td=$was; tu=$was;; esac EOSC -: function used to set $1 to $val +: function used to set '$1' to '$val' setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef; case "$val$was" in $define$undef) . ./whoa; eval "$var=\$td";; @@ -3952,6 +4043,7 @@ $undef$define) . ./whoa; eval "$var=\$tu";; *) eval "$var=$val";; esac' +: Check is we will use socks case "$usesocks" in $define|true|[yY]*) dflt='y';; *) dflt='n';; @@ -3967,7 +4059,7 @@ EOM rp='Build Perl for SOCKS?' . ./myread case "$ans" in -y|Y) val="$define" ;; +y|Y) val="$define" ;; *) val="$undef" ;; esac set usesocks @@ -3977,6 +4069,7 @@ case "$usesocks" in $define|true|[yY]*) useperlio="$define";; esac +: Check if we want perlio case "$useperlio" in $define|true|[yY]*|'') dflt='y';; *) dflt='n';; @@ -3995,16 +4088,16 @@ EOM rp='Use the PerlIO abstraction layer?' . ./myread case "$ans" in -y|Y) +y|Y) val="$define" ;; -*) +*) echo "Ok, doing things the stdio way." val="$undef" ;; esac set useperlio -eval $setvar +eval $setvar case "$usesocks" in $define|true|[yY]*) @@ -4021,13 +4114,69 @@ EOM ;; esac - +: get the patchlevel +echo " " +echo "Getting the current patchlevel..." >&4 +if $test -r $rsrc/patchlevel.h;then + revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $rsrc/patchlevel.h` + patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h` + subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h` + api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h` + api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h` + api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h` + perl_patchlevel=`egrep ',"(MAINT|SMOKE)[0-9][0-9]*"' $rsrc/patchlevel.h|tail -1|sed 's/[^0-9]//g'` +else + revision=0 + patchlevel=0 + subversion=0 + api_revision=0 + api_version=0 + api_subversion=0 + perl_patchlevel=0 + $echo "(You do not have patchlevel.h. Eek.)" +fi +if $test -r $rsrc/.patch ; then + if $test "X$perl_patchlevel" = "X" || $test "`cat $rsrc/.patch`" -gt "$perl_patchlevel" ; then + perl_patchlevel=`cat $rsrc/.patch` + fi +fi +: Define a handy string here to avoid duplication in myconfig.SH and configpm. +version_patchlevel_string="version $patchlevel subversion $subversion" +case "$perl_patchlevel" in +0|'') ;; +*) version_patchlevel_string="$version_patchlevel_string patch $perl_patchlevel" ;; +esac + +$echo "(You have $package $version_patchlevel_string.)" + +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 }'` + api_versionstring=`echo $api_revision $api_version $api_subversion | \ + $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'` + ;; +*) + version=`echo $revision $patchlevel $subversion | \ + $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'` + api_versionstring=`echo $api_revision $api_version $api_subversion | \ + $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'` + ;; +esac +: Special case the 5.005_xx maintenance series, which used 5.005 +: without any subversion label as a subdirectory in $sitelib +if test "${api_revision}${api_version}${api_subversion}" = "550"; then + api_versionstring='5.005' +fi + +: Do we want threads support and if so, what type case "$usethreads" in $define|true|[yY]*) dflt='y';; *) # Catch case where user specified ithreads or 5005threads but # forgot -Dusethreads (A.D. 4/2002) case "$useithreads$use5005threads" in - *$define*) + *$define*) case "$useperlio" in "$define") dflt='y' ;; *) dflt='n' ;; @@ -4058,8 +4207,9 @@ esac set usethreads eval $setvar -case "$usethreads" in -$define) +if $test $patchlevel -lt 9; then + case "$usethreads" in + $define) $cat <&4 <&4 <&4 <&4 $cat >try.c </dev/null 2>&1 then # Interactive Systems (ISC) POSIX mode. @@ -4921,40 +5120,28 @@ default|recommended) case "$gccversion" in 1*) ;; 2.[0-8]*) ;; - ?*) echo " " - echo "Checking if your compiler accepts -fno-strict-aliasing" 2>&1 - echo 'int main(void) { return 0; }' > gcctest.c - if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then - echo "Yes, it does." 2>&1 - case "$ccflags" in - *strict-aliasing*) - echo "Leaving current flags $ccflags alone." 2>&1 - ;; - *) dflt="$dflt -fno-strict-aliasing" ;; - esac - else - echo "Nope, it doesn't, but that's ok." 2>&1 - fi + ?*) set strict-aliasing -fno-strict-aliasing + eval $checkccflag ;; esac # For gcc, adding -pipe speeds up compilations for some, but apparently # some assemblers can't read from stdin. (It also slows down compilations # in other cases, but those are apparently rarer these days.) AD 5/2004. case "$gccversion" in - ?*) echo " " - echo "Checking if your compiler accepts -pipe" 2>&1 - echo 'int main(void) { return 0; }' > gcctest.c - if $cc -pipe -o gcctest gcctest.c; then - echo "Yes, it does." 2>&1 - case "$ccflags" in - *-pipe*) - echo "Leaving current flags $ccflags alone." 2>&1 - ;; - *) dflt="$dflt -pipe" ;; - esac - else - echo "Nope, it doesn't, but that's ok." 2>&1 - fi + ?*) set pipe -pipe + eval $checkccflag + ;; + esac + + # on x86_64 (at least) we require an extra library (libssp) in the + # link command line. This library is not named, so I infer that it is + # an implementation detail that may change. Hence the safest approach + # 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 -fstack-protector + eval $checkccflag ;; esac ;; @@ -5095,6 +5282,15 @@ case "$ldflags" in ;; *) dflt="$ldflags";; esac +# See note above about -fstack-protector +case "$ccflags" in +*-fstack-protector*) + case "$dflt" in + *-fstack-protector*) ;; # Don't add it again + *) dflt="$dflt -fstack-protector" ;; + esac + ;; +esac : Try to guess additional flags to pick up local libraries. for thislibdir in $libpth; do @@ -5161,7 +5357,7 @@ and I got the following output: EOM dflt=y if $sh -c "$cc -o try $optimize $ccflags $ldflags try.c $libs" >>try.msg 2>&1; then - if $sh -c "$run ./try" >>try.msg 2>&1; then + if $sh -c "$run ./try " >>try.msg 2>&1; then xxx=`$run ./try` case "$xxx" in "Ok") dflt=n ;; @@ -5210,12 +5406,17 @@ y) ;; n) echo "OK, that should do.";; esac -$rm -f try try.* core +$rm_try gcctest gcctest.out : define a shorthand compile call compile=' mc_file=$1; shift; +case "$usedevel" in $define|true|[yY]*) if $test ! -f "${mc_file}.c"; then +echo "Internal Configure script bug - compiler test file ${mc_file}.c is missing. Please report this to perlbug@perl.org" >&4; +exit 1; +fi; +esac; $cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs > /dev/null 2>&1;' : define a shorthand compile call for compilations that should be ok. compile_ok=' @@ -5385,7 +5586,7 @@ EOM fi ;; esac -$rm -f try try.* +$rm_try : check for long long echo " " @@ -5399,7 +5600,7 @@ else val="$undef" echo "You do not have long long." fi -$rm try.* +$rm_try set d_longlong eval $setvar @@ -5430,10 +5631,10 @@ EOCP fi if $test "X$longsize" = "X$longlongsize"; then echo "(That isn't any different from an ordinary long.)" - fi + fi ;; esac -$rm -f try.* try +$rm_try : see if inttypes.h is available : we want a real compile instead of Inhdr because some systems @@ -5453,7 +5654,7 @@ else echo " NOT found." >&4 val="$undef" fi -$rm -f try.c try +$rm_try set i_inttypes eval $setvar @@ -5476,11 +5677,11 @@ else val="$undef" echo "You do not have int64_t." fi -$rm -f try try.* +$rm_try set d_int64_t eval $setvar - +: Check if 64bit ints have a quad type echo " " echo "Checking which 64-bit integer type we could use..." >&4 @@ -5539,7 +5740,7 @@ case "$quadtype" in ;; esac - +: Do we want 64bit support case "$uselonglong" in "$define"|true|[yY]*) cat <&4 @@ -5548,7 +5749,7 @@ case "$uselonglong" in EOM use64bitint="$define" ;; -esac +esac case "$use64bits" in "$define"|true|[yY]*) cat <&4 @@ -5557,7 +5758,7 @@ case "$use64bits" in EOM use64bitint="$define" ;; -esac +esac case "$use64bitints" in "$define"|true|[yY]*) cat <&4 @@ -5566,7 +5767,7 @@ case "$use64bitints" in EOM use64bitint="$define" ;; -esac +esac case "$use64bitsint" in "$define"|true|[yY]*) cat <&4 @@ -5575,7 +5776,7 @@ case "$use64bitsint" in EOM use64bitint="$define" ;; -esac +esac case "$uselonglongs" in "$define"|true|[yY]*) cat <&4 @@ -5584,7 +5785,7 @@ case "$uselonglongs" in EOM use64bitint="$define" ;; -esac +esac case "$use64bitsall" in "$define"|true|[yY]*) cat <&4 @@ -5593,7 +5794,7 @@ case "$use64bitsall" in EOM use64bitall="$define" ;; -esac +esac case "$ccflags" in *-DUSE_LONG_LONG*|*-DUSE_64_BIT_INT*|*-DUSE_64_BIT_ALL*) use64bitint="$define";; @@ -5644,7 +5845,7 @@ case "$use64bitall" in *) dflt='n' ;; esac ;; -esac +esac cat <&4 -if $test -r $rsrc/patchlevel.h;then - revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $rsrc/patchlevel.h` - patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h` - subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h` - api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h` - api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h` - api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h` - perl_patchlevel=`egrep 'define PERL_PATCHNUM [0-9][0-9]|,"MAINT[0-9][0-9]*"' $rsrc/patchlevel.h|sed 's/[^0-9]//g'` -else - revision=0 - patchlevel=0 - subversion=0 - api_revision=0 - api_version=0 - api_subversion=0 - perl_patchlevel=0 - $echo "(You do not have patchlevel.h. Eek.)" -fi -if $test -r $rsrc/.patch ; then - if $test "X$perl_patchlevel" = "X" || $test "`cat $rsrc/.patch`" -gt "$perl_patchlevel" ; then - perl_patchlevel=`cat $rsrc/.patch` - fi -fi -: Define a handy string here to avoid duplication in myconfig.SH and configpm. -version_patchlevel_string="version $patchlevel subversion $subversion" -case "$perl_patchlevel" in -0|'') ;; -*) version_patchlevel_string="$version_patchlevel_string patch $perl_patchlevel" ;; -esac - -$echo "(You have $package $version_patchlevel_string.)" - -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 }'` - api_versionstring=`echo $api_revision $api_version $api_subversion | \ - $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'` - ;; -*) - version=`echo $revision $patchlevel $subversion | \ - $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'` - api_versionstring=`echo $api_revision $api_version $api_subversion | \ - $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'` - ;; -esac -: Special case the 5.005_xx maintenance series, which used 5.005 -: without any subversion label as a subdirectory in $sitelib -if test "${api_revision}${api_version}${api_subversion}" = "550"; then - api_versionstring='5.005' -fi - : determine installation style : For now, try to deduce it from prefix unless it is already set. : Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7. @@ -6272,6 +6417,7 @@ case "$perl5" in *) echo "Using $perl5." ;; esac +: Set the siteprefix variables $cat <try.c < #include +#$i_mallocmalloc I_MALLOCMALLOC +#ifdef I_MALLOCMALLOC +# include +#endif + int main () { return 0; } EOCP set try @@ -6457,7 +6612,7 @@ else echo " NOT found." >&4 val="$undef" fi -$rm -f try.c try +$rm_try set i_malloc eval $setvar @@ -6555,7 +6710,7 @@ EOM voidflags="$ans" ;; esac -$rm -f try.* .out +$rm_try : check for length of pointer echo " " @@ -6592,7 +6747,7 @@ EOCP fi ;; esac -$rm -f try.c try +$rm_try case "$use64bitall" in "$define"|true|[yY]*) case "$ptrsize" in @@ -6753,6 +6908,7 @@ else d_sitearch="$define" fi +: Set the vendorprefix variables $cat </dev/null 2>&1 \ + && rm -f perldtrace.tmp + then + echo " " + echo "Good: your $dtrace knows about the -h flag." + else + cat >&2 <&2 <&4 cat >try.c <<'EOCP' @@ -7124,7 +7372,7 @@ else gnulibc_version='' echo "You are not using the GNU C Library" fi -$rm -f try try.* glibc.ver +$rm_try glibc.ver set d_gnulibc eval $setvar @@ -7219,6 +7467,7 @@ case "$nm_so_opt" in ;; esac +: Figure out where the libc is located case "$runnm" in true) : get list of predefined functions in a handy place @@ -7448,31 +7697,31 @@ else echo " " echo "$nm didn't seem to work right. Trying $ar instead..." >&4 com='' - if $ar t $libc > libc.tmp && $contains '^fprintf$' libc.tmp >/dev/null 2>&1; then + if $ar t $libc > libc.tmp && \ + $contains '^fprintf$' libc.tmp >/dev/null 2>&1 + then for thisname in $libnames $libc; do $ar t $thisname >>libc.tmp done $sed -e "s/\\$_o\$//" < libc.tmp > libc.list echo "Ok." >&4 elif test "X$osname" = "Xos2" && $ar tv $libc > libc.tmp; then - # Repeat libc to extract forwarders to DLL entries too for thisname in $libnames $libc; do $ar tv $thisname >>libc.tmp - # Revision 50 of EMX has bug in $ar. - # it will not extract forwarders to DLL entries - # Use emximp which will extract exactly them. emximp -o tmp.imp $thisname \ 2>/dev/null && \ $sed -e 's/^\([_a-zA-Z0-9]*\) .*$/\1/p' \ < tmp.imp >>libc.tmp - $rm tmp.imp + $rm -f tmp.imp done $sed -e "s/\\$_o\$//" -e 's/^ \+//' < libc.tmp > libc.list echo "Ok." >&4 else echo "$ar didn't seem to work right." >&4 echo "Maybe this is a Cray...trying bld instead..." >&4 - if bld t $libc | $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" > libc.list + if bld t $libc | \ + $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" > libc.list && + $test -s libc.list then for thisname in $libnames; do bld t $libnames | \ @@ -7497,7 +7746,8 @@ define) *) if $test -f /lib/syscalls.exp; then echo " " echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4 - $sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*[ ]*$/\1/p' /lib/syscalls.exp >>libc.list + $sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*[ ]*$/\1/p' \ + /lib/syscalls.exp >>libc.list fi ;; esac @@ -7509,6 +7759,32 @@ $rm -f libnames libpath set dld.h i_dld eval $inhdr +: Check if we are using C++ +echo " " +echo "Checking for C++..." >&4 +$cat >try.c <<'EOCP' +#include +int main(void) +{ +#ifdef __cplusplus + return 0; +#else + return 1; +#endif +} +EOCP +set try +if eval $compile_ok && $run ./try; then + val="$define" + echo "You are using a C++ compiler." +else + val="$undef" + echo "You are not using a C++ compiler." +fi +$rm_try cplusplus$$ +set d_cplusplus +eval $setvar + : is a C symbol defined? csym='tlook=$1; case "$3" in @@ -7516,6 +7792,10 @@ case "$3" in -a) tf=libc.tmp; tdc="[]";; *) tlook="^$1\$"; tf=libc.list; tdc="()";; esac; +case "$d_cplusplus" in + $define) extern_C="extern \"C\"" ;; + *) extern_C="extern" ;; +esac; tx=yes; case "$reuseval-$4" in true-) ;; @@ -7528,15 +7808,15 @@ yes) if $contains $tlook $tf >/dev/null 2>&1; then tval=true; elif $test "$mistrustnm" = compile -o "$mistrustnm" = run; then - echo "void *(*(p()))$tdc { extern void *$1$tdc; return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c; + echo "$extern_C void *$1$tdc; void *(*(p()))$tdc { return &$1; } int main() { if(p()) 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 -f try$_exe try.c core core.* try.core; + $rm_try; fi; else - echo "void *(*(p()))$tdc { extern void *$1$tdc; return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c; + echo "$extern_C void *$1$tdc; void *(*(p()))$tdc { return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c; $cc -o try $optimize $ccflags $ldflags try.c $libs >/dev/null 2>&1 && tval=true; - $rm -f try$_exe try.c; + $rm_try; fi; ;; *) @@ -7575,33 +7855,6 @@ yes) esac;; esac' - -echo " " -echo "Checking for C++..." >&4 -cat >try.c <<'EOCP' -#include -int main(void) -{ -#ifdef __cplusplus - printf("define\n"); -#else - printf("undef\n"); -#endif - return 0; -} -EOCP -set try -if eval $compile_ok && $run ./try >cplusplus$$; then - val=`$cat cplusplus$$` - echo "You are using a C++ compiler." -else - val="$undef" - echo "You are not using a C++ compiler." -fi -$rm -f try try.* cplusplus$$ -set d_cplusplus -eval $setvar - : see if dlopen exists xxx_runnm="$runnm" xxx_ccflags="$ccflags" @@ -7635,7 +7888,7 @@ $undef|n|false) dflt='n' usedl="$undef" ;; -*) +*) dflt='n' case "$d_dlopen" in $define) dflt='y' ;; @@ -7698,7 +7951,7 @@ EOM ;; *) case "$osname" in darwin) dflt='none' ;; - svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;; + linux*|svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;; *) dflt='-fpic' ;; esac ;; esac ;; @@ -7733,7 +7986,7 @@ EOM int main() { char b[4]; int i = open("a.out",O_RDONLY); - if(i == -1) + if(i == -1) exit(1); /* fail */ if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F') exit(0); /* succeed (yes, it's ELF) */ @@ -7750,7 +8003,7 @@ EOM echo "I'll use ld to build dynamic libraries." dflt='ld' fi - rm -f try.c a.out + $rm_try ;; *) dflt="$ld" ;; @@ -7772,12 +8025,13 @@ EOM case "$lddlflags" in '') case "$osname" in beos) dflt='-nostart' ;; + haiku) dflt='-shared' ;; hpux) dflt='-b'; case "$gccversion" in '') dflt="$dflt +vnocompatwarnings" ;; esac - ;; - linux|irix*|gnu*) dflt='-shared' ;; + ;; + linux|irix*|gnu*) dflt="-shared $optimize" ;; next) dflt='none' ;; solaris) dflt='-G' ;; sunos) dflt='-assert nodefinitions' ;; @@ -7808,6 +8062,16 @@ EOM ''|' ') dflt='none' ;; esac + case "$ldflags" in + *-fstack-protector*) + case "$dflt" in + *-fstack-protector*) ;; # Don't add it again + *) dflt="$dflt -fstack-protector" ;; + esac + ;; + esac + + rp="Any special flags to pass to $ld to create a dynamically loaded library?" . ./myread case "$ans" in @@ -7846,6 +8110,7 @@ EOM ;; esac +: Do we want a shared libperl? also='' case "$usedl" in $undef) @@ -7854,7 +8119,7 @@ $undef) ;; *) case "$useshrplib" in '') case "$osname" in - svr4*|nonstopux|dgux|dynixptx|esix|powerux|beos|cygwin*) + svr4*|nonstopux|dgux|dynixptx|esix|powerux|beos|haiku|cygwin*) dflt=y also='Building a shared libperl is required for dynamic loading to work on your system.' ;; @@ -7908,9 +8173,9 @@ true) # a version-specific architecture-dependent library, the version # number isn't really that important, except for making cc/ld happy. # - # A name such as libperl.so.3.1 + # A name such as libperl.so.10.1 majmin="libperl.$so.$patchlevel.$subversion" - # A name such as libperl.so.301 + # A name such as libperl.so.100 majonly=`echo $patchlevel $subversion | $awk '{printf "%d%02d", $1, $2}'` majonly=libperl.$so.$majonly @@ -7924,8 +8189,12 @@ true) linux*|gnu*) # ld won't link with a bare -lperl otherwise. dflt=libperl.$so ;; - cygwin*) # ld links against an importlib - dflt=libperl$lib_ext + cygwin*) # ld links now against the dll directly + majmin="cygperl5_${patchlevel}_${subversion}.${so}" + majonly=`echo $patchlevel $subversion | + $awk '{printf "%03d%03d", $1, $2}'` + majonly=cygperl5.$majonly.$so + dflt=$majmin ;; *) # Try to guess based on whether libc has major.minor. case "$libc" in @@ -7998,7 +8267,7 @@ shrpdir=$archlibexp/CORE xxx='' tmp_shrpenv='' if "$useshrplib"; then - case "$osname" in + case "$osname" in aix) # We'll set it in Makefile.SH... ;; @@ -8017,17 +8286,23 @@ if "$useshrplib"; then beos) # beos doesn't like the default, either. ;; + haiku) + # Haiku doesn't like the default, either. + ;; hpux*) # hpux doesn't like the default, either. tmp_shrpenv="env LDOPTS=\"+s +b${shrpdir}\"" ;; + cygwin) + # cygwin needs only ldlibpth + ;; *) tmp_shrpenv="env LD_RUN_PATH=$shrpdir" ;; esac case "$xxx" in '') ;; - *) + *) # Only add $xxx if it isn't already in ccdlflags. case " $ccdlflags " in *" $xxx "*) ;; @@ -8035,7 +8310,7 @@ if "$useshrplib"; then cat <&4 Adding $xxx to the flags -passed to $ld so that the perl executable will find the +passed to $ld so that the perl executable will find the installed shared $libperl. EOM @@ -8175,7 +8450,7 @@ You can't have filenames longer than 14 chars. You can't even think about them! EOM val="$undef" -fi +fi set d_flexfnam eval $setvar $rm -rf 123456789abcde* @@ -8460,11 +8735,11 @@ case "$myhostname" in echo "(Attempting domain name extraction from $tans)" dflt=.`$sed -n -e 's/ / /g' \ -e 's/^search *\([^ ]*\).*/\1/p' $tans \ - | ./tr '[A-Z]' '[a-z]' 2>/dev/null` + -e 1q 2>/dev/null` case "$dflt" in .) dflt=.`$sed -n -e 's/ / /g' \ -e 's/^domain *\([^ ]*\).*/\1/p' $tans \ - | ./tr '[A-Z]' '[a-z]' 2>/dev/null` + -e 1q 2>/dev/null` ;; esac fi @@ -8533,6 +8808,7 @@ case "$phostname" in ;; esac +: determine the e-mail address of the user who is running us $cat <try.c <&4 +echo "Checking the size of $zzz..." >&4 cat > try.c < #include @@ -8965,6 +9244,7 @@ else fpossize="$ans" fi +: Check for large file support # Backward compatibility (uselfs is deprecated). case "$uselfs" in "$define"|true|[yY]*) @@ -8974,7 +9254,7 @@ case "$uselfs" in EOM uselargefiles="$define" ;; -esac +esac case "$lseeksize:$fpossize" in 8:8) cat <&4 + $echo $n "Rechecking the size of $zzz...$c" >&4 $cat > try.c < #include @@ -9073,11 +9353,12 @@ EOCP . ./myread fpossize="$ans" fi - $rm -f try.c try + $rm_try fi ;; esac +: Set the vendorbin variables case "$vendorprefix" in '') d_vendorbin="$undef" vendorbin='' @@ -9099,6 +9380,7 @@ esac prefixvar=vendorbin . ./installprefix +: Set the vendorhtml1dir variables case "$vendorprefix" in '') vendorhtml1dir='' vendorhtml1direxp='' @@ -9126,6 +9408,7 @@ $test X"$vendorhtml1dir" = "X" && vendorhtml1dir=' ' prefixvar=vendorhtml1dir . ./installprefix +: Set the vendorhtml3dir variables case "$vendorprefix" in '') vendorhtml3dir='' vendorhtml3direxp='' @@ -9153,6 +9436,7 @@ $test X"$vendorhtml3dir" = "X" && vendorhtml3dir=' ' prefixvar=vendorhtml3dir . ./installprefix +: Set the vendorman1dir variables case "$vendorprefix" in '') vendorman1dir='' vendorman1direxp='' @@ -9177,6 +9461,7 @@ $test X"$vendorman1dir" = "X" && vendorman1dir=' ' prefixvar=vendorman1dir . ./installprefix +: Set the vendorman3dir variables case "$vendorprefix" in '') vendorman3dir='' vendorman3direxp='' @@ -9201,6 +9486,7 @@ $test X"$vendorman3dir" = "X" && vendorman3dir=' ' prefixvar=vendorman3dir . ./installprefix +: Set the vendorscript variables case "$vendorprefix" in '') d_vendorscript="$undef" vendorscript='' @@ -9229,10 +9515,51 @@ esac prefixvar=vendorscript . ./installprefix +: script used to emit important warnings +cat >warn <msg +else + cat >msg +fi +echo "*** WARNING:" >&4 +sed -e 's/^/*** /' &4 +echo "*** " >&4 +cat msg >>config.msg +echo " " >>config.msg +rm -f msg +EOS +chmod +x warn +$eunicefix warn + +: see which of string.h or strings.h is needed +echo " " +strings=`./findhdr string.h` +if $test "$strings" && $test -r "$strings"; then + echo "Using instead of ." >&4 + val="$define" +else + val="$undef" + strings=`./findhdr strings.h` + if $test "$strings" && $test -r "$strings"; then + echo "Using instead of ." >&4 + else + ./warn "No string header found -- You'll surely have problems." + fi +fi +set i_string +eval $setvar +case "$i_string" in +"$undef") strings=`./findhdr strings.h`;; +*) strings=`./findhdr string.h`;; +esac + : see if qgcvt exists set qgcvt d_qgcvt eval $inlibc +: Check print/scan long double stuff echo " " if $test X"$d_longdbl" = X"$define"; then @@ -9333,17 +9660,17 @@ else sSCNfldbl=$sPRIfldbl # expect consistency fi -$rm -f try try.* +$rm_try fi # d_longdbl case "$sPRIfldbl" in -'') d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef"; - d_PRIFUldbl="$undef"; d_PRIGUldbl="$undef"; d_PRIEUldbl="$undef"; +'') d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef"; + d_PRIFUldbl="$undef"; d_PRIGUldbl="$undef"; d_PRIEUldbl="$undef"; d_SCNfldbl="$undef"; ;; -*) d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define"; - d_PRIFUldbl="$define"; d_PRIGUldbl="$define"; d_PRIEUldbl="$define"; +*) d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define"; + d_PRIFUldbl="$define"; d_PRIGUldbl="$define"; d_PRIEUldbl="$define"; d_SCNfldbl="$define"; ;; esac @@ -9401,15 +9728,18 @@ char *myname = "sprintf"; #include -#define I_STDLIB $i_stdlib +#$i_stdlib I_STDLIB #ifdef I_STDLIB #include #endif +#$i_string I_STRING +#ifdef I_STRING +# include +#else +# include +#endif -int -checkit(expect, got) -char *expect; -char *got; +int checkit(char *expect, char *got) { if (strcmp(expect, got)) { printf("%s oddity: Expected %s, got %s\n", @@ -9419,8 +9749,8 @@ char *got; } int main() -{ - char buf[64]; +{ + char buf[64]; buf[63] = '\0'; /* This must be 1st test on (which?) platform */ @@ -9428,13 +9758,13 @@ int main() Gconvert((DOUBLETYPE)0.1, 8, 0, buf); checkit("0.1", buf); - Gconvert((DOUBLETYPE)0.01, 8, 0, buf); + Gconvert((DOUBLETYPE)0.01, 8, 0, buf); checkit("0.01", buf); - Gconvert((DOUBLETYPE)0.001, 8, 0, buf); + Gconvert((DOUBLETYPE)0.001, 8, 0, buf); checkit("0.001", buf); - Gconvert((DOUBLETYPE)0.0001, 8, 0, buf); + Gconvert((DOUBLETYPE)0.0001, 8, 0, buf); checkit("0.0001", buf); Gconvert((DOUBLETYPE)0.00009, 8, 0, buf); @@ -9443,42 +9773,42 @@ int main() else checkit("9e-05", buf); - Gconvert((DOUBLETYPE)1.0, 8, 0, buf); + Gconvert((DOUBLETYPE)1.0, 8, 0, buf); checkit("1", buf); - Gconvert((DOUBLETYPE)1.1, 8, 0, buf); + Gconvert((DOUBLETYPE)1.1, 8, 0, buf); checkit("1.1", buf); - Gconvert((DOUBLETYPE)1.01, 8, 0, buf); + Gconvert((DOUBLETYPE)1.01, 8, 0, buf); checkit("1.01", buf); - Gconvert((DOUBLETYPE)1.001, 8, 0, buf); + Gconvert((DOUBLETYPE)1.001, 8, 0, buf); checkit("1.001", buf); - Gconvert((DOUBLETYPE)1.0001, 8, 0, buf); + Gconvert((DOUBLETYPE)1.0001, 8, 0, buf); checkit("1.0001", buf); - Gconvert((DOUBLETYPE)1.00001, 8, 0, buf); + Gconvert((DOUBLETYPE)1.00001, 8, 0, buf); checkit("1.00001", buf); - Gconvert((DOUBLETYPE)1.000001, 8, 0, buf); + Gconvert((DOUBLETYPE)1.000001, 8, 0, buf); checkit("1.000001", buf); - Gconvert((DOUBLETYPE)0.0, 8, 0, buf); + Gconvert((DOUBLETYPE)0.0, 8, 0, buf); checkit("0", buf); - Gconvert((DOUBLETYPE)-1.0, 8, 0, buf); + Gconvert((DOUBLETYPE)-1.0, 8, 0, buf); checkit("-1", buf); /* Some Linux gcvt's give 1.e+5 here. */ - Gconvert((DOUBLETYPE)100000.0, 8, 0, buf); + Gconvert((DOUBLETYPE)100000.0, 8, 0, buf); checkit("100000", buf); - + /* Some Linux gcvt's give -1.e+5 here. */ - Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf); + Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf); checkit("-100000", buf); - Gconvert((DOUBLETYPE)123.456, 8, 0, buf); + Gconvert((DOUBLETYPE)123.456, 8, 0, buf); checkit("123.456", buf); /* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */ @@ -9503,14 +9833,14 @@ for xxx_convert in $gconvert_preference; do case $xxx_convert in gcvt|gconvert|sprintf) xxx_list="$xxx_list $xxx_convert" ;; *) echo "Discarding unrecognized gconvert_preference $xxx_convert" >&4 ;; - esac + esac done : then add any others for xxx_convert in gconvert gcvt sprintf; do case "$xxx_list" in *$xxx_convert*) ;; *) xxx_list="$xxx_list $xxx_convert" ;; - esac + esac done case "$d_longdbl$uselongdouble" in @@ -9545,7 +9875,7 @@ esac for xxx_convert in $xxx_list; do echo "Trying $xxx_convert..." - $rm -f try try$_o + $rm -f try try$_o core set try -DTRY_$xxx_convert if eval $compile; then echo "$xxx_convert() found." >&4 @@ -9578,10 +9908,11 @@ qgcvt) d_Gconvert='qgcvt((x),(n),(b))' ;; d_Gconvert='sprintf((b),"%.*g",(n),(double)(x))' ;; *) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;; esac - ;; + ;; esac fi +$rm_try : see if _fwalk exists set fwalk d__fwalk @@ -9651,6 +9982,26 @@ eval $inlibc set alarm d_alarm eval $inlibc +: see if 64bit time functions exists + +set ctime64 d_ctime64 +eval $inlibc + +set localtime64 d_localtime64 +eval $inlibc + +set gmtime64 d_gmtime64 +eval $inlibc + +set mktime64 d_mktime64 +eval $inlibc + +set difftime64 d_difftime64 +eval $inlibc + +set asctime64 d_asctime64 +eval $inlibc + : see if POSIX threads are available set pthread.h i_pthread eval $inhdr @@ -9663,7 +10014,7 @@ optimize="$optimize" ccflags="$ccflags" prototype="$prototype" define="$define" -rm=$rm +rm_try="$rm_try" usethreads=$usethreads i_pthread=$i_pthread pthread_h_first=$pthread_h_first @@ -9671,7 +10022,7 @@ EOSH $cat >> protochk <<'EOSH' -$rm -f try.c +$rm_try foo="$1" shift while test $# -ge 2; do @@ -9701,12 +10052,13 @@ echo "$foo" >> try.c echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c $cc $optimize $ccflags -c try.c > /dev/null 2>&1 status=$? -$rm -f try.[co] +$rm_try exit $status EOSH chmod +x protochk $eunicefix protochk +: Define hasproto macro for Configure internal use hasproto='varname=$1; func=$2; shift; shift; while $test $# -ge 2; do case "$1" in @@ -9724,7 +10076,7 @@ else fi; set $varname; eval $setvar; -$rm -f try.c tryout.c' +$rm_try tryout.c' : see if sys/types.h has to be included set sys/types.h i_systypes @@ -9734,6 +10086,7 @@ eval $inhdr set sys/select.h i_sysselct eval $inhdr +: Define hasfield macro for Configure internal use hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift; while $test $# -ge 2; do case "$1" in @@ -9750,7 +10103,7 @@ else fi; set $varname; eval $setvar; -$rm -f try.c try.o' +$rm_try' : see if we should include time.h, sys/time.h, or both echo " " @@ -9837,11 +10190,11 @@ EOCP echo "We'll include ." >&4;; *) i_systime="$undef";; esac - $rm -f try.c try + $rm_try fi : see if struct tm knows about tm_zone case "$i_systime$i_time" in -*$define*) +*$define*) echo " " echo "Checking to see if your struct tm has tm_zone field..." >&4 set d_tm_tm_zone tm tm_zone $i_systime sys/time.h $i_time time.h @@ -9858,7 +10211,7 @@ case "$d_tm_tm_zone" in esac : see if struct tm knows about tm_gmtoff case "$i_systime$i_time" in -*$define*) +*$define*) echo " " echo "Checking to see if your struct tm has tm_gmtoff field..." >&4 set d_tm_tm_gmtoff tm tm_gmtoff $i_systime sys/time.h $i_time time.h @@ -9890,19 +10243,19 @@ case "$d_asctime_r" in define) case "$asctime_r_proto" in ''|0) try='char* asctime_r(const struct tm*, char*);' - ./protochk "extern $try" $hdrs && asctime_r_proto=B_SB ;; + ./protochk "$extern_C $try" $hdrs && asctime_r_proto=B_SB ;; esac case "$asctime_r_proto" in ''|0) try='char* asctime_r(const struct tm*, char*, int);' - ./protochk "extern $try" $hdrs && asctime_r_proto=B_SBI ;; + ./protochk "$extern_C $try" $hdrs && asctime_r_proto=B_SBI ;; esac case "$asctime_r_proto" in ''|0) try='int asctime_r(const struct tm*, char*);' - ./protochk "extern $try" $hdrs && asctime_r_proto=I_SB ;; + ./protochk "$extern_C $try" $hdrs && asctime_r_proto=I_SB ;; esac case "$asctime_r_proto" in ''|0) try='int asctime_r(const struct tm*, char*, int);' - ./protochk "extern $try" $hdrs && asctime_r_proto=I_SBI ;; + ./protochk "$extern_C $try" $hdrs && asctime_r_proto=I_SBI ;; esac case "$asctime_r_proto" in ''|0) d_asctime_r=undef @@ -9963,6 +10316,50 @@ set d_attribute_format eval $setvar $rm -f attrib* +: Look for GCC-style attribute format with null format allowed +case "$d_printf_format_null" in +'') case "$d_attribute_format" in + $define) + echo " " + echo "Checking whether your compiler allows __printf__ format to be null ..." >&4 +$cat >attrib.c < +#$i_stdlib I_STDLIB +#ifdef I_STDLIB +#include +#endif +int null_printf (char* pat,...) __attribute__((__format__(__printf__,1,2))); +int null_printf (char* pat,...) { return (int)pat; } +int main () { exit(null_printf(NULL)); } +EOCP + if $cc $ccflags -o attrib attrib.c >attrib.out 2>&1 ; then + : run the executable in case it produces a run-time warning + if $run ./attrib >>attrib.out 2>&1; then + if $contains 'warning' attrib.out >/dev/null 2>&1; then + echo "Your C compiler doesn't allow __printf__ format to be null." + val="$undef" + else + echo "Your C compiler allows __printf__ format to be null." + val="$define" + fi + else + echo "Your C compiler executable failed with __printf__ format null." + val="$undef" + fi + else + echo "Your C compiler fails with __printf__ format null." + val="$undef" + fi + ;; + *) val="$undef" ;; + esac +;; +*) val="$d_printf_format_null" ;; +esac +set d_printf_format_null +eval $setvar +$rm -f attrib* + : Look for GCC-style attribute malloc case "$d_attribute_malloc" in '') @@ -10203,7 +10600,7 @@ EOP esac set d_bsdgetpgrp eval $setvar -$rm -f try try.* +$rm_try : see if setpgrp exists set setpgrp d_setpgrp @@ -10269,7 +10666,8 @@ EOP esac set d_bsdsetpgrp eval $setvar -$rm -f try try.* +$rm_try + : Look for GCC-style __builtin_choose_expr case "$d_builtin_choose_expr" in '') @@ -10293,7 +10691,7 @@ int main(void) { EOCP set try - if eval $compile; then + if eval $compile && $run ./try; then echo "Your C compiler supports __builtin_choose_expr." val="$define" else @@ -10306,25 +10704,27 @@ esac set d_builtin_choose_expr eval $setvar -$rm -f try.* try core core.try.* +$rm_try : Look for GCC-style __builtin_expect case "$d_builtin_expect" in '') echo " " echo "Checking whether your compiler can handle __builtin_expect ..." >&4 - $cat >builtin.c <<'EOCP' + $cat >try.c <<'EOCP' int main(void) { int n = 50; if ( __builtin_expect(n, 0) ) n = 1; + /* Remember shell exit code truth is 0, C truth is non-zero */ + return !(n == 1); } EOCP set try - if eval $compile; then - echo "Your C compiler supports __builtin_choose_expr." + if eval $compile && $run ./try; then + echo "Your C compiler supports __builtin_expect." val="$define" else - echo "Your C compiler doesn't seem to understand __builtin_choose_expr." + echo "Your C compiler doesn't seem to understand __builtin_expect." val="$undef" fi ;; @@ -10333,7 +10733,7 @@ esac set d_builtin_expect eval $setvar -$rm -f try.* try core core.try.* +$rm_try : see if bzero exists set bzero d_bzero @@ -10421,7 +10821,7 @@ echo "I could not find the definition for va_dcl... You have problems..." >&4 val="$undef"; set i_stdarg; eval $setvar val="$undef"; set i_varargs; eval $setvar ;; -*) +*) set i_varhdr eval $setvar case "$i_varhdr" in @@ -10471,7 +10871,7 @@ EOCP echo "I couldn't compile and run the test program, so I assume that you don't have functional C99 variadic macros." >&4 d_c99_variadic_macros="$undef" fi - $rm -f try.* try core core.try.* + $rm_try ;; *) echo "You don't have and , so not checking for C99 variadic macros." >&4 @@ -10548,7 +10948,7 @@ int main() char str[16]; signal(SIGFPE, blech); - /* Don't let compiler optimize the test away. Store the number + /* Don't let compiler optimize the test away. Store the number in a writable string for gcc to pass to sscanf under HP/UX. */ sprintf(str, "2147483647"); @@ -10584,7 +10984,7 @@ case "$yyy" in esac set d_casti32 eval $setvar -$rm -f try try.* +$rm_try : check for ability to cast negative floats to unsigned echo " " @@ -10610,12 +11010,12 @@ int main() unsigned short ashort; int result = 0; char str[16]; - + /* Frustrate gcc-2.7.2's optimizer which failed this test with a direct f = -123. assignment. gcc-2.8.0 reportedly optimized the whole file away */ - /* Store the number in a writable string for gcc to pass to + /* Store the number in a writable string for gcc to pass to sscanf under HP/UX. */ sprintf(str, "-123"); @@ -10684,7 +11084,7 @@ case "$castflags" in esac set d_castneg eval $setvar -$rm -f try.* +$rm_try : see if vprintf exists echo " " @@ -10692,38 +11092,75 @@ if set vprintf val -f d_vprintf; eval $csym; $val; then echo 'vprintf() found.' >&4 val="$define" $cat >try.c < +#$i_stdarg I_STDARG /* Only one of these can be defined by i_varhrd */ +#$i_varargs I_VARARGS + #$i_stdlib I_STDLIB +#$i_unistd I_UNISTD + +#ifdef I_STDARG +# include +#else /* I_VARARGS */ +# include +#endif + +#ifdef I_UNISTD +# include +#endif + #ifdef I_STDLIB -#include +# include #endif -int main() { xxx("foo"); } +#include /* vsprintf prototype */ + +#ifdef I_STDARG +void xxx(int n, ...) +{ + va_list args; + char buf[10]; + va_start(args, n); + exit((unsigned long)vsprintf(buf,"%s",args) > 10L); +} +int main() { xxx(1, "foo"); } + +#else /* I_VARARGS */ xxx(va_alist) va_dcl { - va_list args; - char buf[10]; - - va_start(args); - exit((unsigned long)vsprintf(buf,"%s",args) > 10L); + va_list args; + char buf[10]; + va_start(args); + exit((unsigned long)vsprintf(buf,"%s",args) > 10L); } +int main() { xxx("foo"); } + +#endif + EOF set try - if eval $compile && $run ./try; then - echo "Your vsprintf() returns (int)." >&4 - val2="$undef" + if eval $compile_ok; then + if $run ./try; then + echo "Your vsprintf() returns (int)." >&4 + val2="$undef" + else + echo "Your vsprintf() returns (char*)." >&4 + val2="$define" + fi else - echo "Your vsprintf() returns (char*)." >&4 - val2="$define" + echo 'I am unable to compile the vsprintf() test program.' >&4 + # We shouldn't get here. If we do, assume the standard signature, + # not the old BSD one. + echo 'Guessing that vsprintf() returns (int).' >&4 + val2="$undef" fi else echo 'vprintf() NOT found.' >&4 - val="$undef" - val2="$undef" + val="$undef" + val2="$undef" fi -$rm -f try try.* +$rm_try set d_vprintf eval $setvar val=$val2 @@ -10750,6 +11187,7 @@ eval $inlibc set clearenv d_clearenv eval $inlibc +: Define hasstruct macro for Configure internal use hasstruct='varname=$1; struct=$2; shift; shift; while $test $# -ge 2; do case "$1" in @@ -10766,11 +11204,11 @@ else fi; set $varname; eval $setvar; -$rm -f try.c try.o' +$rm_try' +: see whether socket exists socketlib='' sockethdr='' -: see whether socket exists echo " " $echo $n "Hmm... $c" >&4 if set socket val -f d_socket; eval $csym; $val; then @@ -10807,7 +11245,7 @@ else sockethdr="-I/usr/netinclude" ;; esac - echo "Found Berkeley sockets interface in lib$net." >&4 + echo "Found Berkeley sockets interface in lib$net." >&4 if $contains setsockopt libc.list >/dev/null 2>&1; then d_oldsock="$undef" else @@ -10848,14 +11286,14 @@ EOF val="$define" fi set d_${enum}; eval $setvar - $rm -f try.c try + $rm_try done : see if this is a sys/uio.h system set sys/uio.h i_sysuio eval $inhdr - +: Check for cmsghdr support echo " " echo "Checking to see if your system supports struct cmsghdr..." >&4 set d_cmsghdr_s cmsghdr $i_systypes sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h @@ -10950,11 +11388,11 @@ case "$d_crypt_r" in define) case "$crypt_r_proto" in ''|0) try='char* crypt_r(const char*, const char*, struct crypt_data*);' - ./protochk "extern $try" $hdrs && crypt_r_proto=B_CCS ;; + ./protochk "$extern_C $try" $hdrs && crypt_r_proto=B_CCS ;; esac case "$crypt_r_proto" in ''|0) try='char* crypt_r(const char*, const char*, CRYPTD*);' - ./protochk "extern $try" $hdrs && crypt_r_proto=B_CCD ;; + ./protochk "$extern_C $try" $hdrs && crypt_r_proto=B_CCD ;; esac case "$crypt_r_proto" in ''|0) d_crypt_r=undef @@ -11011,7 +11449,7 @@ case "$d_ctermid_r" in define) case "$ctermid_r_proto" in ''|0) try='char* ctermid_r(char*);' - ./protochk "extern $try" $hdrs && ctermid_r_proto=B_B ;; + ./protochk "$extern_C $try" $hdrs && ctermid_r_proto=B_B ;; esac case "$ctermid_r_proto" in ''|0) d_ctermid_r=undef @@ -11052,19 +11490,19 @@ case "$d_ctime_r" in define) case "$ctime_r_proto" in ''|0) try='char* ctime_r(const time_t*, char*);' - ./protochk "extern $try" $hdrs && ctime_r_proto=B_SB ;; + ./protochk "$extern_C $try" $hdrs && ctime_r_proto=B_SB ;; esac case "$ctime_r_proto" in ''|0) try='char* ctime_r(const time_t*, char*, int);' - ./protochk "extern $try" $hdrs && ctime_r_proto=B_SBI ;; + ./protochk "$extern_C $try" $hdrs && ctime_r_proto=B_SBI ;; esac case "$ctime_r_proto" in ''|0) try='int ctime_r(const time_t*, char*);' - ./protochk "extern $try" $hdrs && ctime_r_proto=I_SB ;; + ./protochk "$extern_C $try" $hdrs && ctime_r_proto=I_SB ;; esac case "$ctime_r_proto" in ''|0) try='int ctime_r(const time_t*, char*, int);' - ./protochk "extern $try" $hdrs && ctime_r_proto=I_SBI ;; + ./protochk "$extern_C $try" $hdrs && ctime_r_proto=I_SBI ;; esac case "$ctime_r_proto" in ''|0) d_ctime_r=undef @@ -11204,7 +11642,7 @@ case "$guess1" in 'struct dirent') guess2='struct direct' ;; *) guess2='struct dirent' ;; esac - + if $contains "$guess1" try.c >/dev/null 2>&1; then direntrytype="$guess1" echo "Your directory entries are $direntrytype." >&4 @@ -11218,8 +11656,7 @@ else . ./myread direntrytype="$ans" fi -$rm -f try.c - +$rm_try : see if the directory entry stores field length echo " " @@ -11233,7 +11670,43 @@ else fi set d_dirnamlen eval $setvar -$rm -f try.c +$rm_try + +: Look for DIR.dd_fd +case "$i_dirent" in +"$define") + echo "Checking to see if DIR has a dd_fd member variable" >&4 + $cat >try.c < +#endif +#include + +int main() { + DIR dir; + dir.dd_fd = 1; + return 0; +} +EOCP + val=$undef + set try + if eval $compile; then + echo "Yes, it does." + val="$define" + else + echo "No, it does not." + val="$undef" + fi + ;; +*) + echo "You don't have a , so not checking for dd_fd." >&4 + val="$undef" + ;; +esac +set d_dir_dd_fd +eval $setvar +$rm_try : see if this is an sysdir system set sys/dir.h i_sysdir @@ -11308,6 +11781,7 @@ runnm="$xxx_runnm" set dlfcn.h i_dlfcn eval $inhdr +: Check what extension to use for shared libs case "$usedl" in $define|y|true) $cat << EOM @@ -11392,9 +11866,9 @@ int main() } EOM : Call the object file tmp-dyna.o in case dlext=o. - if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 && - mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 && - $ld -o dyna.$dlext $ldflags $lddlflags tmp-dyna${_o} > /dev/null 2>&1 && + if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 && + mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 && + $ld -o dyna.$dlext $ldflags $lddlflags tmp-dyna${_o} > /dev/null 2>&1 && $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1 && $to dyna.$dlext; then xxx=`$run ./fred` case $xxx in @@ -11412,7 +11886,7 @@ EOM fi ;; esac - + $rm -f fred fred.* dyna.$dlext dyna.* tmp-dyna.* set d_dlsymun @@ -11434,7 +11908,7 @@ case "$d_drand48_r" in define) case "$drand48_r_proto" in ''|0) try='int drand48_r(struct drand48_data*, double*);' - ./protochk "extern $try" $hdrs && drand48_r_proto=I_ST ;; + ./protochk "$extern_C $try" $hdrs && drand48_r_proto=I_ST ;; esac case "$drand48_r_proto" in ''|0) d_drand48_r=undef @@ -11517,11 +11991,11 @@ case "$d_endgrent_r" in define) case "$endgrent_r_proto" in ''|0) try='int endgrent_r(FILE**);' - ./protochk "extern $try" $hdrs && endgrent_r_proto=I_H ;; + ./protochk "$extern_C $try" $hdrs && endgrent_r_proto=I_H ;; esac case "$endgrent_r_proto" in ''|0) try='void endgrent_r(FILE**);' - ./protochk "extern $try" $hdrs && endgrent_r_proto=V_H ;; + ./protochk "$extern_C $try" $hdrs && endgrent_r_proto=V_H ;; esac case "$endgrent_r_proto" in ''|0) d_endgrent_r=undef @@ -11570,11 +12044,11 @@ case "$d_endhostent_r" in define) case "$endhostent_r_proto" in ''|0) try='int endhostent_r(struct hostent_data*);' - ./protochk "extern $try" $hdrs && endhostent_r_proto=I_D ;; + ./protochk "$extern_C $try" $hdrs && endhostent_r_proto=I_D ;; esac case "$endhostent_r_proto" in ''|0) try='void endhostent_r(struct hostent_data*);' - ./protochk "extern $try" $hdrs && endhostent_r_proto=V_D ;; + ./protochk "$extern_C $try" $hdrs && endhostent_r_proto=V_D ;; esac case "$endhostent_r_proto" in ''|0) d_endhostent_r=undef @@ -11619,11 +12093,11 @@ case "$d_endnetent_r" in define) case "$endnetent_r_proto" in ''|0) try='int endnetent_r(struct netent_data*);' - ./protochk "extern $try" $hdrs && endnetent_r_proto=I_D ;; + ./protochk "$extern_C $try" $hdrs && endnetent_r_proto=I_D ;; esac case "$endnetent_r_proto" in ''|0) try='void endnetent_r(struct netent_data*);' - ./protochk "extern $try" $hdrs && endnetent_r_proto=V_D ;; + ./protochk "$extern_C $try" $hdrs && endnetent_r_proto=V_D ;; esac case "$endnetent_r_proto" in ''|0) d_endnetent_r=undef @@ -11668,11 +12142,11 @@ case "$d_endprotoent_r" in define) case "$endprotoent_r_proto" in ''|0) try='int endprotoent_r(struct protoent_data*);' - ./protochk "extern $try" $hdrs && endprotoent_r_proto=I_D ;; + ./protochk "$extern_C $try" $hdrs && endprotoent_r_proto=I_D ;; esac case "$endprotoent_r_proto" in ''|0) try='void endprotoent_r(struct protoent_data*);' - ./protochk "extern $try" $hdrs && endprotoent_r_proto=V_D ;; + ./protochk "$extern_C $try" $hdrs && endprotoent_r_proto=V_D ;; esac case "$endprotoent_r_proto" in ''|0) d_endprotoent_r=undef @@ -11805,11 +12279,11 @@ case "$d_endpwent_r" in define) case "$endpwent_r_proto" in ''|0) try='int endpwent_r(FILE**);' - ./protochk "extern $try" $hdrs && endpwent_r_proto=I_H ;; + ./protochk "$extern_C $try" $hdrs && endpwent_r_proto=I_H ;; esac case "$endpwent_r_proto" in ''|0) try='void endpwent_r(FILE**);' - ./protochk "extern $try" $hdrs && endpwent_r_proto=V_H ;; + ./protochk "$extern_C $try" $hdrs && endpwent_r_proto=V_H ;; esac case "$endpwent_r_proto" in ''|0) d_endpwent_r=undef @@ -11854,11 +12328,11 @@ case "$d_endservent_r" in define) case "$endservent_r_proto" in ''|0) try='int endservent_r(struct servent_data*);' - ./protochk "extern $try" $hdrs && endservent_r_proto=I_D ;; + ./protochk "$extern_C $try" $hdrs && endservent_r_proto=I_D ;; esac case "$endservent_r_proto" in ''|0) try='void endservent_r(struct servent_data*);' - ./protochk "extern $try" $hdrs && endservent_r_proto=V_D ;; + ./protochk "$extern_C $try" $hdrs && endservent_r_proto=V_D ;; esac case "$endservent_r_proto" in ''|0) d_endservent_r=undef @@ -11935,29 +12409,7 @@ else fi set d_open3 eval $setvar -$rm -f try try.* - -: see which of string.h or strings.h is needed -echo " " -strings=`./findhdr string.h` -if $test "$strings" && $test -r "$strings"; then - echo "Using instead of ." >&4 - val="$define" -else - val="$undef" - strings=`./findhdr strings.h` - if $test "$strings" && $test -r "$strings"; then - echo "Using instead of ." >&4 - else - echo "No string header found -- You'll surely have problems." >&4 - fi -fi -set i_string -eval $setvar -case "$i_string" in -"$undef") strings=`./findhdr strings.h`;; -*) strings=`./findhdr string.h`;; -esac +$rm_try : see if this is a sys/file.h system val='' @@ -12012,6 +12464,14 @@ esac set i_fcntl eval $setvar +: see if fork exists +set fork d_fork +eval $inlibc + +: see if pipe exists +set pipe d_pipe +eval $inlibc + : check for non-blocking I/O stuff case "$h_sysfile" in true) echo "#include " > head.c;; @@ -12066,18 +12526,20 @@ EOCP ;; *) echo "Using $hint value $o_nonblock.";; esac -$rm -f try try.* .out core +$rm_try 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) $cat head.c > try.c $cat >>try.c < #include #include -#include +#include #$i_stdlib I_STDLIB #ifdef I_STDLIB #include @@ -12204,6 +12666,12 @@ EOCP echo "I can't compile the test program--assuming errno EAGAIN will do." eagain=EAGAIN fi + ;; + *) echo "Can't figure out how to test this--assuming errno EAGAIN will do." + eagain=EAGAIN + val="$define" + ;; + esac set d_eofnblk eval $setvar ;; @@ -12220,7 +12688,7 @@ EOCP esac ;; esac -$rm -f try try.* .out core head.c mtry +$rm_try head.c mtry : see if _ptr and _cnt from stdio act std echo " " @@ -12319,7 +12787,7 @@ if eval $compile && $to try.c; then else echo "Your stdio doesn't appear very std." fi -$rm -f try.c try +$rm_try # glibc 2.2.90 and above apparently change stdio streams so Perl's # direct buffer manipulation no longer works. The Configure tests @@ -12419,7 +12887,7 @@ int main() { if (cnt == FILE_cnt(fp)) { puts("Pass_unchanged"); exit (0); - } + } if (FILE_cnt(fp) == (cnt - 42)) { puts("Pass_changed"); exit (0); @@ -12446,7 +12914,7 @@ EOP else echo "It seems we can't set ptr in your stdio. Nevermind." >&4 fi - $rm -f try.c try + $rm_try ;; esac @@ -12484,7 +12952,7 @@ EOP else echo "However, it seems to be lacking the _base field." fi - $rm -f try.c try + $rm_try ;; esac set d_stdiobase @@ -12523,8 +12991,8 @@ eval $inlibc set fcntl d_fcntl eval $inlibc -echo " " : See if fcntl-based locking works. +echo " " $cat >try.c <&4 @@ -12736,7 +13198,7 @@ else 8) echo "(Your fpos_t is 64 bits, so you could use that.)" ;; esac fi -$rm -f try.* try +$rm_try set d_fpos64_t eval $setvar @@ -12752,7 +13214,7 @@ eval $inhdr set sys/mount.h i_sysmount eval $inhdr - +: Check for fs_data_s echo " " echo "Checking to see if your system supports struct fs_data..." >&4 set d_fs_data_s fs_data $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h @@ -12773,12 +13235,10 @@ esac set fsetpos d_fsetpos eval $inlibc - : see if fstatfs exists set fstatfs d_fstatfs eval $inlibc - : see if statvfs exists set statvfs d_statvfs eval $inlibc @@ -12799,10 +13259,10 @@ case "$longsize" in 8) echo "(Your long is 64 bits, so you could use ftell.)" ;; esac -d_futimes="$undef" : check for a working futimes +d_futimes="$undef" echo " " -echo "Checking for a working futimes()" >&4 +echo "Checking if you have a working futimes()" >&4 $cat >try.c < #include @@ -12823,16 +13283,70 @@ if eval $compile; then `$run ./try` rc=$? case "$rc" in - 0) echo "Yes, it does" >&4 + 0) echo "Yes, you have" >&4 d_futimes="$define" ;; - *) echo "No, it has futimes, but it isn't working ($rc) (probably harmless)\n" >&4 + *) echo "No, you have futimes, but it isn't working ($rc) (probably harmless)" >&4 ;; esac else - echo "No, it does not (probably harmless)\n" >&4 + echo "No, it does not (probably harmless)" >&4 +fi +$rm_try + +: see if ndbm.h is available +set ndbm.h i_ndbm +eval $inhdr +: Compatibility location for RedHat 7.1 +set gdbm/ndbm.h i_gdbmndbm +eval $inhdr +: Compatibility location for Debian 4.0 +set gdbm-ndbm.h i_gdbm_ndbm +eval $inhdr + +val="$undef" +if $test "$i_ndbm" = "$define" -o "$i_gdbmndbm" = "$define" -o "$i_gdbm_ndbm" = "$define"; then + : see if dbm_open exists + set dbm_open d_dbm_open + eval $inlibc + case "$d_dbm_open" in + $undef) + i_ndbm="$undef" + i_gdbmndbm="$undef" + i_gdbm_ndbm="$undef" + echo "We won't be including " + val="$undef" + ;; + *) val="$define" + ;; + esac fi -$rm -f try.* try core core.try.* +set d_ndbm +eval $setvar + +ndbm_hdr_protochk='name=$1; hdr=$2; +eval "ihdr=\$""i_$name"; +val="$undef"; +if $test "$ihdr" = "$define"; then + $echo "Checking if your <$hdr> uses prototypes..." >&4; + case "$d_cplusplus" in + $define) ./protochk "$extern_C void dbm_close(DBM *);" literal "extern \"C\" {" $ihdr $hdr literal "}" && val="$define" ;; + *) ./protochk "$extern_C void dbm_close(int, int);" $ihdr $hdr || val="$define" ;; + esac; + case "$val" in + $define) $echo "Your <$hdr> seems to have prototypes";; + *) $echo "Your <$hdr> does not seem to have prototypes";; + esac; +fi; +set "d_${name}_h_uses_prototypes"; +eval $setvar' + +set ndbm ndbm.h +eval $ndbm_hdr_protochk +set gdbmndbm gdbm/ndbm.h +eval $ndbm_hdr_protochk +set gdbm_ndbm gdbm-ndbm.h +eval $ndbm_hdr_protochk : see if getcwd exists set getcwd d_getcwd @@ -12842,7 +13356,6 @@ eval $inlibc set getespwnam d_getespwnam eval $inlibc - : see if getfsstat exists set getfsstat d_getfsstat eval $inlibc @@ -12867,27 +13380,27 @@ case "$d_getgrent_r" in define) case "$getgrent_r_proto" in ''|0) try='int getgrent_r(struct group*, char*, size_t, struct group**);' - ./protochk "extern $try" $hdrs && getgrent_r_proto=I_SBWR ;; + ./protochk "$extern_C $try" $hdrs && getgrent_r_proto=I_SBWR ;; esac case "$getgrent_r_proto" in ''|0) try='int getgrent_r(struct group*, char*, int, struct group**);' - ./protochk "extern $try" $hdrs && getgrent_r_proto=I_SBIR ;; + ./protochk "$extern_C $try" $hdrs && getgrent_r_proto=I_SBIR ;; esac case "$getgrent_r_proto" in ''|0) try='struct group* getgrent_r(struct group*, char*, size_t);' - ./protochk "extern $try" $hdrs && getgrent_r_proto=S_SBW ;; + ./protochk "$extern_C $try" $hdrs && getgrent_r_proto=S_SBW ;; esac case "$getgrent_r_proto" in ''|0) try='struct group* getgrent_r(struct group*, char*, int);' - ./protochk "extern $try" $hdrs && getgrent_r_proto=S_SBI ;; + ./protochk "$extern_C $try" $hdrs && getgrent_r_proto=S_SBI ;; esac case "$getgrent_r_proto" in ''|0) try='int getgrent_r(struct group*, char*, int);' - ./protochk "extern $try" $hdrs && getgrent_r_proto=I_SBI ;; + ./protochk "$extern_C $try" $hdrs && getgrent_r_proto=I_SBI ;; esac case "$getgrent_r_proto" in ''|0) try='int getgrent_r(struct group*, char*, int, FILE**);' - ./protochk "extern $try" $hdrs && getgrent_r_proto=I_SBIH ;; + ./protochk "$extern_C $try" $hdrs && getgrent_r_proto=I_SBIH ;; esac case "$getgrent_r_proto" in ''|0) d_getgrent_r=undef @@ -12928,19 +13441,19 @@ case "$d_getgrgid_r" in define) case "$getgrgid_r_proto" in ''|0) try='int getgrgid_r(gid_t, struct group*, char*, size_t, struct group**);' - ./protochk "extern $try" $hdrs && getgrgid_r_proto=I_TSBWR ;; + ./protochk "$extern_C $try" $hdrs && getgrgid_r_proto=I_TSBWR ;; esac case "$getgrgid_r_proto" in ''|0) try='int getgrgid_r(gid_t, struct group*, char*, int, struct group**);' - ./protochk "extern $try" $hdrs && getgrgid_r_proto=I_TSBIR ;; + ./protochk "$extern_C $try" $hdrs && getgrgid_r_proto=I_TSBIR ;; esac case "$getgrgid_r_proto" in ''|0) try='int getgrgid_r(gid_t, struct group*, char*, int);' - ./protochk "extern $try" $hdrs && getgrgid_r_proto=I_TSBI ;; + ./protochk "$extern_C $try" $hdrs && getgrgid_r_proto=I_TSBI ;; esac case "$getgrgid_r_proto" in ''|0) try='struct group* getgrgid_r(gid_t, struct group*, char*, int);' - ./protochk "extern $try" $hdrs && getgrgid_r_proto=S_TSBI ;; + ./protochk "$extern_C $try" $hdrs && getgrgid_r_proto=S_TSBI ;; esac case "$getgrgid_r_proto" in ''|0) d_getgrgid_r=undef @@ -12981,23 +13494,23 @@ case "$d_getgrnam_r" in define) case "$getgrnam_r_proto" in ''|0) try='int getgrnam_r(const char*, struct group*, char*, size_t, struct group**);' - ./protochk "extern $try" $hdrs && getgrnam_r_proto=I_CSBWR ;; + ./protochk "$extern_C $try" $hdrs && getgrnam_r_proto=I_CSBWR ;; esac case "$getgrnam_r_proto" in ''|0) try='int getgrnam_r(const char*, struct group*, char*, int, struct group**);' - ./protochk "extern $try" $hdrs && getgrnam_r_proto=I_CSBIR ;; + ./protochk "$extern_C $try" $hdrs && getgrnam_r_proto=I_CSBIR ;; esac case "$getgrnam_r_proto" in ''|0) try='struct group* getgrnam_r(const char*, char*, int);' - ./protochk "extern $try" $hdrs && getgrnam_r_proto=S_CBI ;; + ./protochk "$extern_C $try" $hdrs && getgrnam_r_proto=S_CBI ;; esac case "$getgrnam_r_proto" in ''|0) try='int getgrnam_r(const char*, struct group*, char*, int);' - ./protochk "extern $try" $hdrs && getgrnam_r_proto=I_CSBI ;; + ./protochk "$extern_C $try" $hdrs && getgrnam_r_proto=I_CSBI ;; esac case "$getgrnam_r_proto" in ''|0) try='struct group* getgrnam_r(const char*, struct group*, char*, int);' - ./protochk "extern $try" $hdrs && getgrnam_r_proto=S_CSBI ;; + ./protochk "$extern_C $try" $hdrs && getgrnam_r_proto=S_CSBI ;; esac case "$getgrnam_r_proto" in ''|0) d_getgrnam_r=undef @@ -13077,7 +13590,7 @@ case "$d_uname$d_gethname" in *define*) dflt=n cat <&4 $cat >try.c <&4 d_libm_lib_version="$define" else - echo "No, it does not (probably harmless)\n" >&4 + echo "No, it does not (probably harmless)" >&4 fi - $rm -f try.* try core core.try.* + $rm_try ;; esac @@ -14485,11 +15000,11 @@ case "$d_localtime_r" in define) case "$localtime_r_proto" in ''|0) try='struct tm* localtime_r(const time_t*, struct tm*);' - ./protochk "extern $try" $hdrs && localtime_r_proto=S_TS ;; + ./protochk "$extern_C $try" $hdrs && localtime_r_proto=S_TS ;; esac case "$localtime_r_proto" in ''|0) try='int localtime_r(const time_t*, struct tm*);' - ./protochk "extern $try" $hdrs && localtime_r_proto=I_TS ;; + ./protochk "$extern_C $try" $hdrs && localtime_r_proto=I_TS ;; esac case "$localtime_r_proto" in ''|0) d_localtime_r=undef @@ -14514,6 +15029,80 @@ case "$d_localtime_r" in ;; esac +: see if localtime_r calls tzset +case "$localtime_r_proto" in +REENTRANT_PROTO*) + $cat >try.c < +#endif +#ifdef I_UNISTD +# include +#endif +#ifdef I_TIME +# include +#endif +#ifdef I_STDLIB +#include +#endif +#ifdef I_STRING +# include +#else +# include +#endif +#ifdef I_MALLOC +# include +#endif +int main() +{ + time_t t = time(0L); + char w_tz[]="TZ" "=GMT+5", + e_tz[]="TZ" "=GMT-5", + *tz_e = (char*)malloc(16), + *tz_w = (char*)malloc(16); + struct tm tm_e, tm_w; + memset(&tm_e,'\0',sizeof(struct tm)); + memset(&tm_w,'\0',sizeof(struct tm)); + strcpy(tz_e,e_tz); + strcpy(tz_w,w_tz); + + putenv(tz_e); + localtime_r(&t, &tm_e); + + putenv(tz_w); + localtime_r(&t, &tm_w); + + if( memcmp(&tm_e, &tm_w, sizeof(struct tm)) == 0 ) + return 1; + return 0; +} +EOCP + set try + if eval $compile; then + if $run ./try; then + d_localtime_r_needs_tzset=undef; + else + d_localtime_r_needs_tzset=define; + fi; + else + d_localtime_r_needs_tzset=undef; + fi; + ;; + *) + d_localtime_r_needs_tzset=undef; + ;; +esac +$rm_try + : see if localeconv exists set localeconv d_locconv eval $inlibc @@ -14651,12 +15240,12 @@ $define$define) Checking to see whether your modfl() is okay for large values... EOM $cat >try.c < +#include #include EOCP if $test "X$d_modflproto" != "X$define"; then $cat >>try.c <>try.c <&4 set d_msghdr_s msghdr $i_systypes sys/types.h $d_socket sys/socket.h $i_sysuio sys/uio.h @@ -14828,40 +15417,6 @@ eval $inhdr set nl_langinfo d_nl_langinfo eval $inlibc -: check for length of character -echo " " -case "$charsize" in -'') - echo "Checking to see how big your characters are (hey, you never know)..." >&4 - $cat >try.c < -#$i_stdlib I_STDLIB -#ifdef I_STDLIB -#include -#endif -int main() -{ - printf("%d\n", (int)sizeof(char)); - exit(0); -} -EOCP - set try - if eval $compile_ok; then - dflt=`$run ./try` - else - dflt='1' - echo "(I can't seem to compile the test program. Guessing...)" - fi - ;; -*) - dflt="$charsize" - ;; -esac -rp="What is the size of a character (in bytes)?" -. ./myread -charsize="$ans" -$rm -f try.c try - : check for volatile keyword echo " " echo 'Checking to see if your C compiler knows about "volatile"...' >&4 @@ -14891,9 +15446,9 @@ else fi set d_volatile eval $setvar -$rm -f try.* - +$rm_try +: Check basic sizes echo " " $echo "Choosing the C types to be used for Perl's internal types..." >&4 @@ -14950,38 +15505,10 @@ int main() { } EOCP -case "$i8type" in -'') case "$charsize" in - 1) i8type=char - u8type="unsigned char" - i8size=$charsize - u8size=$charsize - ;; - esac - ;; -esac -case "$i8type" in -'') set try -DINT8 - if eval $compile; then - case "`$run ./try`" in - int8_t) i8type=int8_t - u8type=uint8_t - i8size=1 - u8size=1 - ;; - esac - fi - ;; -esac -case "$i8type" in -'') if $test $charsize -ge 1; then - i8type=char - u8type="unsigned char" - i8size=$charsize - u8size=$charsize - fi - ;; -esac +i8type="signed char" +u8type="unsigned char" +i8size=1 +u8size=1 case "$i16type" in '') case "$shortsize" in @@ -15108,10 +15635,9 @@ int main() { if (($uvtype)d != (u - 1)) break; #ifdef SIGFPE - if (bletched) { + if (bletched) break; #endif - } } printf("%d\n", ((i == n) ? -n : i)); exit(0); @@ -15124,7 +15650,7 @@ if eval $compile; then nv_preserves_uv_bits="`$run ./try`" fi case "$nv_preserves_uv_bits" in -\-[1-9]*) +\-[1-9]*) nv_preserves_uv_bits=`expr 0 - $nv_preserves_uv_bits` $echo "Your NVs can preserve all $nv_preserves_uv_bits bits of your UVs." 2>&1 d_nv_preserves_uv="$define" @@ -15132,48 +15658,130 @@ case "$nv_preserves_uv_bits" in [1-9]*) $echo "Your NVs can preserve only $nv_preserves_uv_bits bits of your UVs." 2>&1 d_nv_preserves_uv="$undef" ;; *) $echo "Can't figure out how many bits your NVs preserve." 2>&1 - nv_preserves_uv_bits="$undef" ;; + nv_preserves_uv_bits="0" ;; esac +$rm_try -$rm -f try.* try - -$echo "Checking whether NV 0.0 is all bits zero in memory..." >&4 +$echo "Checking to find the largest integer value your NVs can hold..." >&4 : volatile so that the compiler has to store it out to memory. if test X"$d_volatile" = X"$define"; then volatile=volatile fi $cat <try.c #include -#$i_stdlib I_STDLIB -#ifdef I_STDLIB -#include -#endif -#$i_string I_STRING -#ifdef I_STRING -# include -#else -# include -#endif -#include -#include -#ifdef SIGFPE -$volatile int bletched = 0; -$signal_t blech(int s) { bletched = 1; } -#endif - -int checkit($nvtype d, char *where) { - unsigned char *p = (char *)&d; - unsigned char *end = p + sizeof(d); - int fail = 0; - - while (p < end) - fail += *p++; - if (!fail) - return 0; +typedef $nvtype NV; - p = (char *)&d; - printf("No - %s: 0x", where); +int +main() { + NV value = 2; + int count = 1; + + while(count < 256) { + $volatile NV up = value + 1.0; + $volatile NV negated = -value; + $volatile NV down = negated - 1.0; + $volatile NV got_up = up - value; + int up_good = got_up == 1.0; + int got_down = down - negated; + int down_good = got_down == -1.0; + + if (down_good != up_good) { + fprintf(stderr, + "Inconsistency - up %d %f; down %d %f; for 2**%d (%.20f)\n", + up_good, (double) got_up, down_good, (double) got_down, + count, (double) value); + return 1; + } + if (!up_good) { + while (1) { + if (count > 8) { + count -= 8; + fputs("256.0", stdout); + } else { + count--; + fputs("2.0", stdout); + } + if (!count) { + puts(""); + return 0; + } + fputs("*", stdout); + } + } + value *= 2; + ++count; + } + fprintf(stderr, "Cannot overflow integer range, even at 2**%d (%.20f)\n", + count, (double) value); + return 1; +} +EOP +set try + +nv_overflows_integers_at='0' +if eval $compile; then + xxx="`$run ./try`" + case "$?" in + 0) + case "$xxx" in + 2*) cat >&4 <&4 <&4 <&4 +: volatile so that the compiler has to store it out to memory. +if test X"$d_volatile" = X"$define"; then + volatile=volatile +fi +$cat <try.c +#include +#$i_stdlib I_STDLIB +#ifdef I_STDLIB +#include +#endif +#$i_string I_STRING +#ifdef I_STRING +# include +#else +# include +#endif +#include +#include +#ifdef SIGFPE +$volatile int bletched = 0; +$signal_t blech(int s) { bletched = 1; } +#endif + +int checkit($nvtype d, char *where) { + unsigned char *p = (char *)&d; + unsigned char *end = p + sizeof(d); + int fail = 0; + + while (p < end) + fail += *p++; + + if (!fail) + return 0; + + p = (char *)&d; + printf("No - %s: 0x", where); while (p < end) printf ("%02X", *p++); printf("\n"); @@ -15214,7 +15822,7 @@ int main(int argc, char **argv) { printf("(gives %g)\n", d); return 1; } - + #ifdef SIGFPE if (bletched) { printf("No - something bleched\n"); @@ -15256,9 +15864,7 @@ EOM ;; esac fi - -$rm -f try.* try - +$rm_try : check for off64_t echo " " @@ -15279,14 +15885,14 @@ else 8) echo "(Your off_t is 64 bits, so you could use that.)" ;; esac fi -$rm -f try.* try +$rm_try set d_off64_t eval $setvar : how to create joinable pthreads if test "X$usethreads" = "X$define" -a "X$i_pthread" = "X$define"; then echo " " - echo "Checking what constant to use for creating joinable pthreads..." >&4 + echo "Checking what constant to use for creating joinable pthreads..." >&4 $cat >try.c <<'EOCP' #include int main() { @@ -15312,7 +15918,7 @@ EOCP val=PTHREAD_CREATE_UNDETACHED set old_pthread_create_joinable eval $setvar - else + else set try -DJOINABLE=__UNDETACHED if eval $compile; then echo "You seem to use __UNDETACHED." >&4 @@ -15333,7 +15939,7 @@ EOCP fi fi fi - $rm -f try try.* + $rm_try else d_old_pthread_create_joinable="$undef" old_pthread_create_joinable="" @@ -15343,10 +15949,6 @@ fi set pause d_pause eval $inlibc -: see if pipe exists -set pipe d_pipe -eval $inlibc - : see if poll exists set poll d_poll eval $inlibc @@ -15355,6 +15957,7 @@ eval $inlibc set readlink d_readlink eval $inlibc +: Check if exe is symlink to abs path of executing program echo " " procselfexe='' val="$undef" @@ -15382,6 +15985,54 @@ $rm -f reflect set d_procselfexe eval $setvar +: backward compatibility for d_hvfork +if test X$d_hvfork != X; then + d_vfork="$d_hvfork" + d_hvfork='' +fi +: see if there is a vfork +val='' +set vfork val +eval $inlibc + +d_pseudofork=$undef + +: Ok, but do we want to use it. vfork is reportedly unreliable in +: perl on Solaris 2.x, and probably elsewhere. +case "$val" in +$define) + echo " " + case "$usevfork" in + false) dflt='n';; + *) dflt='y';; + esac + cat <<'EOM' + +Perl can only use a vfork() that doesn't suffer from strict +restrictions on calling functions or modifying global data in +the child. For example, glibc-2.1 contains such a vfork() +that is unsuitable. If your system provides a proper fork() +call, chances are that you do NOT want perl to use vfork(). + +EOM + rp="Do you still want to use vfork()?" + . ./myread + case "$ans" in + y|Y) ;; + *) + echo "Ok, we won't use vfork()." + val="$undef" + ;; + esac + ;; +esac +set d_vfork +eval $setvar +case "$d_vfork" in +$define) usevfork='true';; +*) usevfork='false';; +esac + : see whether the pthread_atfork exists $cat >try.c < @@ -15414,7 +16065,6 @@ eval $setvar set pthread_attr_setscope d_pthread_attr_setscope eval $inlibc - : see whether the various POSIXish _yields exist $cat >try.c < @@ -15479,12 +16129,10 @@ $define) esac set d_pthread_yield eval $setvar - case "$sched_yield" in '') sched_yield=undef ;; esac - -$rm -f try try.* +$rm_try : see if random_r exists set random_r d_random_r @@ -15502,15 +16150,15 @@ case "$d_random_r" in define) case "$random_r_proto" in ''|0) try='int random_r(int*, struct random_data*);' - ./protochk "extern $try" $hdrs && random_r_proto=I_iS ;; + ./protochk "$extern_C $try" $hdrs && random_r_proto=I_iS ;; esac case "$random_r_proto" in ''|0) try='int random_r(long*, struct random_data*);' - ./protochk "extern $try" $hdrs && random_r_proto=I_lS ;; + ./protochk "$extern_C $try" $hdrs && random_r_proto=I_lS ;; esac case "$random_r_proto" in ''|0) try='int random_r(struct random_data*, int32_t*);' - ./protochk "extern $try" $hdrs && random_r_proto=I_St ;; + ./protochk "$extern_C $try" $hdrs && random_r_proto=I_St ;; esac case "$random_r_proto" in ''|0) d_random_r=undef @@ -15561,11 +16209,11 @@ case "$d_readdir64_r" in define) case "$readdir64_r_proto" in ''|0) try='int readdir64_r(DIR*, struct dirent64*, struct dirent64**);' - ./protochk "extern $try" $hdrs && readdir64_r_proto=I_TSR ;; + ./protochk "$extern_C $try" $hdrs && readdir64_r_proto=I_TSR ;; esac case "$readdir64_r_proto" in ''|0) try='int readdir64_r(DIR*, struct dirent64*);' - ./protochk "extern $try" $hdrs && readdir64_r_proto=I_TS ;; + ./protochk "$extern_C $try" $hdrs && readdir64_r_proto=I_TS ;; esac case "$readdir64_r_proto" in ''|0) d_readdir64_r=undef @@ -15606,11 +16254,11 @@ case "$d_readdir_r" in define) case "$readdir_r_proto" in ''|0) try='int readdir_r(DIR*, struct dirent*, struct dirent**);' - ./protochk "extern $try" $hdrs && readdir_r_proto=I_TSR ;; + ./protochk "$extern_C $try" $hdrs && readdir_r_proto=I_TSR ;; esac case "$readdir_r_proto" in ''|0) try='int readdir_r(DIR*, struct dirent*);' - ./protochk "extern $try" $hdrs && readdir_r_proto=I_TS ;; + ./protochk "$extern_C $try" $hdrs && readdir_r_proto=I_TS ;; esac case "$readdir_r_proto" in ''|0) d_readdir_r=undef @@ -15734,7 +16382,7 @@ exit(0); EOCP set try if eval $compile_ok; then - if ./try 2>/dev/null; then + if $run ./try 2>/dev/null; then echo "Yes, it can." val="$define" else @@ -15745,7 +16393,7 @@ EOCP fi ;; esac - $rm -f try.* try core + $rm_try ;; esac set d_safebcpy @@ -15810,7 +16458,7 @@ exit(0); EOCP set try if eval $compile_ok; then - if ./try 2>/dev/null; then + if $run ./try 2>/dev/null; then echo "Yes, it can." val="$define" else @@ -15821,7 +16469,7 @@ EOCP fi ;; esac - $rm -f try.* try core + $rm_try ;; esac set d_safemcpy @@ -15877,7 +16525,7 @@ EOCP fi ;; esac -$rm -f try.* try core +$rm_try set d_sanemcmp eval $setvar @@ -15952,7 +16600,7 @@ else echo "You do not have union semun in ." >&4 val="$undef" fi -$rm -f try try.c +$rm_try set d_union_semun eval $setvar @@ -15960,7 +16608,7 @@ eval $setvar case "$d_sem" in $define) echo " " - $cat > try.h < tryh.h < #include #include -#include "try.h" +#include "tryh.h" #ifndef errno extern int errno; #endif @@ -16041,7 +16689,7 @@ END semun) val="$define" ;; esac fi - $rm -f try try.c + $rm_try set d_semctl_semun eval $setvar ;; @@ -16065,7 +16713,7 @@ END #include #include #include -#include "try.h" +#include "tryh.h" #include #include #ifndef errno @@ -16103,7 +16751,7 @@ END semid_ds) val="$define" ;; esac fi - $rm -f try try.c + $rm_try set d_semctl_semid_ds eval $setvar ;; @@ -16115,7 +16763,6 @@ END *) echo "You cannot use struct semid_ds* for semctl IPC_STAT." >&4 ;; esac - $rm -f try.h ;; *) val="$undef" @@ -16129,6 +16776,7 @@ END eval $setvar ;; esac +$rm_try tryh.h : see if sendmsg exists set sendmsg d_sendmsg @@ -16162,11 +16810,11 @@ case "$d_setgrent_r" in define) case "$setgrent_r_proto" in ''|0) try='int setgrent_r(FILE**);' - ./protochk "extern $try" $hdrs && setgrent_r_proto=I_H ;; + ./protochk "$extern_C $try" $hdrs && setgrent_r_proto=I_H ;; esac case "$setgrent_r_proto" in ''|0) try='void setgrent_r(FILE**);' - ./protochk "extern $try" $hdrs && setgrent_r_proto=V_H ;; + ./protochk "$extern_C $try" $hdrs && setgrent_r_proto=V_H ;; esac case "$setgrent_r_proto" in ''|0) d_setgrent_r=undef @@ -16211,11 +16859,11 @@ case "$d_sethostent_r" in define) case "$sethostent_r_proto" in ''|0) try='int sethostent_r(int, struct hostent_data*);' - ./protochk "extern $try" $hdrs && sethostent_r_proto=I_ID ;; + ./protochk "$extern_C $try" $hdrs && sethostent_r_proto=I_ID ;; esac case "$sethostent_r_proto" in ''|0) try='void sethostent_r(int, struct hostent_data*);' - ./protochk "extern $try" $hdrs && sethostent_r_proto=V_ID ;; + ./protochk "$extern_C $try" $hdrs && sethostent_r_proto=V_ID ;; esac case "$sethostent_r_proto" in ''|0) d_sethostent_r=undef @@ -16272,7 +16920,7 @@ case "$d_setlocale_r" in define) case "$setlocale_r_proto" in ''|0) try='int setlocale_r(int, const char*, char*, int);' - ./protochk "extern $try" $hdrs && setlocale_r_proto=I_ICBI ;; + ./protochk "$extern_C $try" $hdrs && setlocale_r_proto=I_ICBI ;; esac case "$setlocale_r_proto" in ''|0) d_setlocale_r=undef @@ -16317,11 +16965,11 @@ case "$d_setnetent_r" in define) case "$setnetent_r_proto" in ''|0) try='int setnetent_r(int, struct netent_data*);' - ./protochk "extern $try" $hdrs && setnetent_r_proto=I_ID ;; + ./protochk "$extern_C $try" $hdrs && setnetent_r_proto=I_ID ;; esac case "$setnetent_r_proto" in ''|0) try='void setnetent_r(int, struct netent_data*);' - ./protochk "extern $try" $hdrs && setnetent_r_proto=V_ID ;; + ./protochk "$extern_C $try" $hdrs && setnetent_r_proto=V_ID ;; esac case "$setnetent_r_proto" in ''|0) d_setnetent_r=undef @@ -16382,11 +17030,11 @@ case "$d_setprotoent_r" in define) case "$setprotoent_r_proto" in ''|0) try='int setprotoent_r(int, struct protoent_data*);' - ./protochk "extern $try" $hdrs && setprotoent_r_proto=I_ID ;; + ./protochk "$extern_C $try" $hdrs && setprotoent_r_proto=I_ID ;; esac case "$setprotoent_r_proto" in ''|0) try='void setprotoent_r(int, struct protoent_data*);' - ./protochk "extern $try" $hdrs && setprotoent_r_proto=V_ID ;; + ./protochk "$extern_C $try" $hdrs && setprotoent_r_proto=V_ID ;; esac case "$setprotoent_r_proto" in ''|0) d_setprotoent_r=undef @@ -16431,11 +17079,11 @@ case "$d_setpwent_r" in define) case "$setpwent_r_proto" in ''|0) try='int setpwent_r(FILE**);' - ./protochk "extern $try" $hdrs && setpwent_r_proto=I_H ;; + ./protochk "$extern_C $try" $hdrs && setpwent_r_proto=I_H ;; esac case "$setpwent_r_proto" in ''|0) try='void setpwent_r(FILE**);' - ./protochk "extern $try" $hdrs && setpwent_r_proto=V_H ;; + ./protochk "$extern_C $try" $hdrs && setpwent_r_proto=V_H ;; esac case "$setpwent_r_proto" in ''|0) d_setpwent_r=undef @@ -16500,11 +17148,11 @@ case "$d_setservent_r" in define) case "$setservent_r_proto" in ''|0) try='int setservent_r(int, struct servent_data*);' - ./protochk "extern $try" $hdrs && setservent_r_proto=I_ID ;; + ./protochk "$extern_C $try" $hdrs && setservent_r_proto=I_ID ;; esac case "$setservent_r_proto" in ''|0) try='void setservent_r(int, struct servent_data*);' - ./protochk "extern $try" $hdrs && setservent_r_proto=V_ID ;; + ./protochk "$extern_C $try" $hdrs && setservent_r_proto=V_ID ;; esac case "$setservent_r_proto" in ''|0) d_setservent_r=undef @@ -16541,7 +17189,6 @@ eval $inlibc set sfio.h i_sfio eval $inhdr - : see if sfio library is available case "$i_sfio" in $define) @@ -16691,8 +17338,8 @@ fi set d_shm eval $setvar -echo " " : see if we have sigaction +echo " " if set sigaction val -f d_sigaction; eval $csym; $val; then echo 'sigaction() found.' >&4 $cat > try.c <&4 +$cat >try.c < +#endif +#ifdef I_SUNMATH /* Solaris special math library */ +# include +#endif +#define NV $nvtype +int main(int argc, char **argv) +{ + NV x = 0.0; + NV y = -0.0; + if ((signbit(x) == 0) && (signbit(y) != 0)) + return 0; + else + return 1; +} +EOCP +val="$undef" +set try +if eval $compile; then + if $run ./try; then + $echo "Yes." >&4 + val="$define" + else + $echo "Signbit seems to be available, but doesn't work as I expected." + $echo "I won't use it." >&4 + val="$undef" + fi +else + $echo "Nope." >&4 + dflt="$undef" +fi +set d_signbit +eval $setvar +$rm_try : see if sigprocmask exists set sigprocmask d_sigprocmask @@ -16777,7 +17469,7 @@ EOM esac set d_sigsetjmp eval $setvar -$rm -f try.c try +$rm_try : see if snprintf exists set snprintf d_snprintf @@ -16840,7 +17532,7 @@ EOM d_snprintf="$undef" d_vsnprintf="$undef" fi - $rm -f try.* try core core.try.* + $rm_try ;; esac @@ -16900,7 +17592,6 @@ int main(int argc, char **argv) { EOP set try -d_sprintf_returns_strlen="$undef" if eval $compile; then xxx="`$run ./try`" case "$?" in @@ -16915,9 +17606,11 @@ EOM d_sprintf_returns_strlen="$undef" ;; esac +else + echo "(I can't seem to compile the test program--assuming it doesn't)" >&4 + d_sprintf_returns_strlen="$undef" fi - -$rm -f try.* try +$rm_try : see if srand48_r exists set srand48_r d_srand48_r @@ -16935,7 +17628,7 @@ case "$d_srand48_r" in define) case "$srand48_r_proto" in ''|0) try='int srand48_r(long, struct drand48_data*);' - ./protochk "extern $try" $hdrs && srand48_r_proto=I_LS ;; + ./protochk "$extern_C $try" $hdrs && srand48_r_proto=I_LS ;; esac case "$srand48_r_proto" in ''|0) d_srand48_r=undef @@ -16976,7 +17669,7 @@ case "$d_srandom_r" in define) case "$srandom_r_proto" in ''|0) try='int srandom_r(unsigned int, struct random_data*);' - ./protochk "extern $try" $hdrs && srandom_r_proto=I_TS ;; + ./protochk "$extern_C $try" $hdrs && srandom_r_proto=I_TS ;; esac case "$srandom_r_proto" in ''|0) d_srandom_r=undef @@ -17015,24 +17708,21 @@ eval $hasproto set sys/stat.h i_sysstat eval $inhdr - : see if stat knows about block sizes echo " " echo "Checking to see if your struct stat has st_blocks field..." >&4 set d_statblks stat st_blocks $i_sysstat sys/stat.h eval $hasfield - : see if this is a sys/vfs.h system set sys/vfs.h i_sysvfs eval $inhdr - : see if this is a sys/statfs.h system set sys/statfs.h i_sysstatfs eval $inhdr - +: Check for statfs_s echo " " echo "Checking to see if your system supports struct statfs..." >&4 set d_statfs_s statfs $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h $i_sysvfs sys/vfs.h $i_sysstatfs sys/statfs.h @@ -17043,10 +17733,9 @@ case "$d_statfs_s" in esac - : see if struct statfs knows about f_flags case "$d_statfs_s" in -define) +define) echo " " echo "Checking to see if your struct statfs has f_flags field..." >&4 set d_statfs_f_flags statfs f_flags $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h $i_sysvfs sys/vfs.h $i_sysstatfs sys/statfs.h @@ -17062,6 +17751,7 @@ case "$d_statfs_f_flags" in *) echo "No, it doesn't." ;; esac +: Check stream access $cat >&4 <&4 < -extern long long int strtoll(char *s, char **, int); +extern long long int strtoll(char *s, char **, int); static int bad = 0; int check(char *s, long long ell, int een) { long long gll; @@ -17312,7 +18002,7 @@ EOM $cat >try.c <<'EOCP' #include #include -extern unsigned long int strtoul(char *s, char **, int); +extern unsigned long int strtoul(char *s, char **, int); static int bad = 0; void check(char *s, unsigned long eul, int een) { unsigned long gul; @@ -17373,6 +18063,9 @@ EOM d_strtoul="$undef" ;; esac + else + echo "(I can't seem to compile the test program--assuming it doesn't)" + d_strtoul="$undef" fi ;; esac @@ -17392,7 +18085,7 @@ EOM #define strtoull __strtoull #endif #include -extern unsigned long long int strtoull(char *s, char **, int); +extern unsigned long long int strtoull(char *s, char **, int); static int bad = 0; int check(char *s, long long eull, int een) { long long gull; @@ -17427,6 +18120,9 @@ EOM d_strtoull="$undef" ;; esac + else + echo "(I can't seem to compile the test program--assuming it doesn't)" + d_strtoull="$undef" fi ;; esac @@ -17443,7 +18139,7 @@ EOM $cat >try.c <<'EOCP' #include #include -extern unsigned long long int strtouq(char *s, char **, int); +extern unsigned long long int strtouq(char *s, char **, int); static int bad = 0; void check(char *s, unsigned long long eull, int een) { unsigned long long gull; @@ -17479,6 +18175,9 @@ EOM d_strtouq="$undef" ;; esac + else + echo "(I can't seem to compile the test program--assuming it doesn't)" + d_strtouq="$undef" fi ;; esac @@ -17539,6 +18238,10 @@ if test "X$d_time" = X -o X"$timetype" = X; then eval $setvar fi +: see if timegm exists +set timegm d_timegm +eval $inlibc + : see if this is a sys/times.h system set sys/times.h i_systimes eval $inhdr @@ -17577,7 +18280,7 @@ case "$d_tmpnam_r" in define) case "$tmpnam_r_proto" in ''|0) try='char* tmpnam_r(char*);' - ./protochk "extern $try" $hdrs && tmpnam_r_proto=B_B ;; + ./protochk "$extern_C $try" $hdrs && tmpnam_r_proto=B_B ;; esac case "$tmpnam_r_proto" in ''|0) d_tmpnam_r=undef @@ -17622,15 +18325,15 @@ case "$d_ttyname_r" in define) case "$ttyname_r_proto" in ''|0) try='int ttyname_r(int, char*, size_t);' - ./protochk "extern $try" $hdrs && ttyname_r_proto=I_IBW ;; + ./protochk "$extern_C $try" $hdrs && ttyname_r_proto=I_IBW ;; esac case "$ttyname_r_proto" in ''|0) try='int ttyname_r(int, char*, int);' - ./protochk "extern $try" $hdrs && ttyname_r_proto=I_IBI ;; + ./protochk "$extern_C $try" $hdrs && ttyname_r_proto=I_IBI ;; esac case "$ttyname_r_proto" in ''|0) try='char* ttyname_r(int, char*, int);' - ./protochk "extern $try" $hdrs && ttyname_r_proto=B_IBI ;; + ./protochk "$extern_C $try" $hdrs && ttyname_r_proto=B_IBI ;; esac case "$ttyname_r_proto" in ''|0) d_ttyname_r=undef @@ -17667,6 +18370,7 @@ fi set d_tzname eval $setvar +: Check if is a multiplatform env case "$osname" in next|rhapsody|darwin) multiarch="$define" ;; esac @@ -17725,7 +18429,7 @@ int main() EOCP xxx_prompt=y set try - if eval $compile && ./try > /dev/null; then + if eval $compile && $run ./try > /dev/null; then dflt=`$run ./try` case "$dflt" in [1-4][1-4][1-4][1-4]|12345678|87654321) @@ -17753,11 +18457,11 @@ EOM esac ;; esac - $rm -f try.c try + $rm_try ;; esac - +: Checking 32bit aligndness $cat <&4 $cat >try.c <&4 echo "Something's wrong, but I'll assume you use $db_hashtype." >&4 fi - $rm -f try.* + $rm_try echo "Your version of Berkeley DB uses $db_hashtype for hash." ;; *) db_hashtype=u_int32_t @@ -18253,7 +18912,7 @@ EOCP esac case "$i_db" in define) - : Check the return type needed for prefix + : Check the return type needed for prefix echo " " echo "Checking return type needed for prefix for Berkeley DB ..." >&4 cat >try.c <&4 echo "Something's wrong, but I'll assume you use $db_prefixtype." >&4 fi - $rm -f try.* + $rm_try echo "Your version of Berkeley DB uses $db_prefixtype for prefix." ;; *) db_prefixtype='size_t' ;; esac - : How can we generate normalized random numbers ? echo " " echo "Looking for a random number function..." >&4 @@ -18403,7 +19061,7 @@ EOCP rp="How many bits does your $randfunc() function produce?" . ./myread randbits="$ans" - $rm -f try.c try + $rm_try drand01="($randfunc() / (double) ((unsigned long)1 << $randbits))" seedfunc="s$randfunc" randseedtype=unsigned @@ -18428,6 +19086,7 @@ EOCP esac done +: Determine if this is an EBCDIC system echo " " echo "Determining whether or not we are on an EBCDIC system..." >&4 $cat >try.c <<'EOM' @@ -18451,10 +19110,11 @@ else echo "I'm unable to compile the test program." >&4 echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4 fi -$rm -f try try.* +$rm_try set ebcdic eval $setvar +: Check how to flush echo " " $cat >&4 < 0) { long i; @@ -18523,7 +19183,7 @@ int main() { STDIO_STREAM_ARRAY[i]._file < open_max && STDIO_STREAM_ARRAY[i]._flag) fflush(&STDIO_STREAM_ARRAY[i]); - } + } } # endif #endif @@ -18692,7 +19352,7 @@ EOM fflushall="`$cat try.out`" fi fi - $rm -f core try.core core.try.* + $rm_try case "$fflushall" in x) $cat >&4 <&4 +echo "Checking the size of $zzz..." >&4 cat > try.c < #include @@ -18812,12 +19473,13 @@ else fi +: Check if GID is signed echo " " case "$gidtype" in *_t) zzz="$gidtype" ;; *) zzz="gid" ;; esac -echo "Checking the sign of $zzz..." >&4 +echo "Checking the sign of $zzz..." >&4 cat > try.c < #include @@ -18849,6 +19511,7 @@ else fi +: Check 64bit sizes echo " " if $test X"$quadtype" != X; then @@ -18991,21 +19654,20 @@ fi if $test X"$sPRId64" = X; then echo "Cannot figure out how to print 64-bit integers." >&4 fi - -$rm -f try try.* +$rm_try fi case "$sPRId64" in -'') d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef"; - d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIXU64="$undef"; +'') d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef"; + d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIXU64="$undef"; ;; -*) d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define"; - d_PRIo64="$define"; d_PRIx64="$define"; d_PRIXU64="$define"; +*) d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define"; + d_PRIo64="$define"; d_PRIx64="$define"; d_PRIXU64="$define"; ;; esac - +: Check format strings for internal types echo " " $echo "Checking the format strings to be used for Perl's internal types..." >&4 @@ -19064,6 +19726,7 @@ case "$ivdformat" in ;; esac +: Check format string for GID echo " " $echo "Checking the format string to be used for gids..." >&4 @@ -19111,7 +19774,6 @@ eval $inlibc set setgroups d_setgrps eval $inlibc - : Find type of 2nd arg to 'getgroups()' and 'setgroups()' echo " " case "$d_getgrps$d_setgrps" in @@ -19132,6 +19794,7 @@ EOM *) groupstype="$gidtype";; esac +: MAD = Misc Attribute Definition if $test $patchlevel -lt 9; then : MAD is not available in 5.8.x or earlier. @@ -19165,6 +19828,7 @@ esac set mad eval $setvar +: check whether make sets MAKE echo " " echo "Checking if your $make program sets \$(MAKE)..." >&4 case "$make_set_make" in @@ -19208,28 +19872,28 @@ ivfprintf(FILE *f, const char *fmt, va_list *valp) { return vfprintf(f, fmt, *valp); } - -int + +int myvfprintf(FILE *f, const char *fmt, va_list val) { return ivfprintf(f, fmt, &val); } - + int -myprintf(char *fmt, ...) +myprintf(char *fmt, ...) { va_list val; va_start(val, fmt); - return myvfprintf(stdout, fmt, val); -} + return myvfprintf(stdout, fmt, val); +} int main(int ac, char **av) { signal(SIGSEGV, exit); - myprintf("%s%cs all right, then\n", "that", '\''); - exit(0); + myprintf("%s%cs all right, then\n", "that", '\''); + exit(0); } EOCP set try @@ -19248,7 +19912,7 @@ EOCP need_va_copy="$define" ;; esac - $rm -f try.* core core.* *.core *.core.* + $rm_try ;; *) echo "You don't have , not checking for va_copy()." >&4 ;; @@ -19277,7 +19941,7 @@ EOM for xxx in in_addr_t 'const void *' 'const char *' 'void *' 'char *'; do for yyy in size_t long int; do case "$netdb_host_type" in - '') try="extern struct hostent *gethostbyaddr($xxx, $yyy, int);" + '') try="$extern_C struct hostent *gethostbyaddr($xxx, $yyy, int);" if ./protochk "$try" $hdrs; then echo "Your system accepts $xxx for the first arg." echo "...and $yyy for the second arg." @@ -19326,7 +19990,7 @@ EOM $i_unistd unistd.h" for xxx in "const char *" "char *"; do case "$netdb_name_type" in - '') try="extern struct hostent *gethostbyname($xxx);" + '') try="$extern_C struct hostent *gethostbyname($xxx);" if ./protochk "$try" $hdrs; then echo "Your system accepts $xxx." netdb_name_type="$xxx" @@ -19364,7 +20028,7 @@ EOM $i_unistd unistd.h" for xxx in in_addr_t "unsigned long" long "unsigned int" int; do case "$netdb_net_type" in - '') try="extern struct netent *getnetbyaddr($xxx, int);" + '') try="$extern_C struct netent *getnetbyaddr($xxx, int);" if ./protochk "$try" $hdrs; then echo "Your system accepts $xxx." netdb_net_type="$xxx" @@ -19408,9 +20072,6 @@ case "$pager" in esac ;; *) dflt="$pager" - : Instruct ./getfile to trust the hinted or previous pager value, - : even if it does not begin with a slash. For example, on os2, - : pager might be cmd /c more. See comments in UU/getfile. fn="f/($pager)" ;; esac @@ -19479,7 +20140,177 @@ else fi $rm -f foo* bar* -: check for type of arguments to select. +: see if this is a values.h system +set values.h i_values +eval $inhdr + +: Check the max offset that gmtime and localtime accept +echo "Checking max offsets that gmtime () accepts" + +case $i_values in + define) yyy="#include " ;; + *) yyy="" ;; + esac + +case "$sGMTIME_min/$sGMTIME_max" in + 0/0|/) + $cat >try.c < +#include +#include +$yyy + +int i; +struct tm *tmp; +time_t pt; + +void gm_check (time_t t, int min_year, int max_year) +{ + tmp = gmtime (&t); + if ( tmp == NULL || + /* Check tm_year overflow */ + tmp->tm_year < min_year || tmp->tm_year > max_year) + tmp = NULL; + else + pt = t; + } /* gm_check */ + +int check_max () +{ + tmp = NULL; + pt = 0; +#ifdef MAXLONG + gm_check (MAXLONG, 69, 0x7fffffff); +#endif + if (tmp == NULL || tmp->tm_year < 0) { + for (i = 63; i >= 0; i--) { + time_t x = pt | ((time_t)1 << i); + if (x < 0 || x < pt) continue; + gm_check (x, 69, 0x7fffffff); + } + } + printf ("sGMTIME_max=%ld\n", pt); + return (0); + } /* check_max */ + +int check_min () +{ + tmp = NULL; + pt = 0; +#ifdef MINLONG + gm_check (MINLONG, -1900, 70); +#endif + if (tmp == NULL) { + for (i = 36; i >= 0; i--) { + time_t x = pt - ((time_t)1 << i); + if (x > 0) continue; + gm_check (x, -1900, 70); + } + } + printf ("sGMTIME_min=%ld\n", pt); + return (0); + } /* check_min */ + +int main (int argc, char *argv[]) +{ + fprintf (stderr, "Sizeof time_t = %ld\n", sizeof (time_t)); + check_max (); + check_min (); + return (0); + } /* main */ +EOCP + set try + if eval $compile; then + eval `$run ./try` + else + echo "Cannot determine sGMTIME_max and sGMTIME_min." >&4 + fi + $rm_try + ;; + esac + +echo "Checking max offsets that localtime () accepts" + +case "$sLOCALTIME_min/$sLOCALTIME_max" in + 0/0|/) + $cat >try.c < +#include +#include +$yyy + +int i; +struct tm *tmp; +time_t pt; + +void local_check (time_t t, int min_year, int max_year) +{ + if (sizeof (time_t) > 4 && t > 0x7ffffffffffff000LL) + tmp = NULL; + else + tmp = localtime (&t); + if ( tmp == NULL || + /* Check tm_year overflow */ + tmp->tm_year < min_year || tmp->tm_year > max_year) + tmp = NULL; + else + pt = t; + } /* local_check */ + +int check_max () +{ + tmp = NULL; + pt = 0; +#ifdef MAXLONG + local_check (MAXLONG, 69, 0x7fffffff); +#endif + if (tmp == NULL || tmp->tm_year < 0) { + for (i = 63; i >= 0; i--) { + time_t x = pt | ((time_t)1 << i); + if (x < 0 || x < pt) continue; + local_check (x, 69, 0x7fffffff); + } + } + printf ("sLOCALTIME_max=%ld\n", pt); + return (0); + } /* check_max */ + +int check_min () +{ + tmp = NULL; + pt = 0; +#ifdef MINLONG + local_check (MINLONG, -1900, 70); +#endif + if (tmp == NULL) { + for (i = 36; i >= 0; i--) { + time_t x = pt - ((time_t)1 << i); + if (x > 0) continue; + local_check (x, -1900, 70); + } + } + printf ("sLOCALTIME_min=%ld\n", pt); + return (0); + } /* check_min */ + +int main (int argc, char *argv[]) +{ + check_max (); + check_min (); + return (0); + } /* main */ +EOCP + set try + if eval $compile; then + eval `$run ./try` + else + echo "Cannot determine sLOCALTIME_max and sLOCALTIME_min." >&4 + fi + $rm_try + ;; + esac + +: check for type of arguments to select. case "$selecttype" in '') case "$d_select" in $define) @@ -19488,7 +20319,7 @@ case "$selecttype" in Checking to see what type of arguments are accepted by select(). EOM hdrs="$define sys/types.h - $i_systime sys/time.h + $i_systime sys/time.h $i_sysselct sys/select.h $d_socket sys/socket.h" : The first arg can be int, unsigned, or size_t @@ -19500,7 +20331,7 @@ EOM for nfd in 'int' 'size_t' 'unsigned long' 'unsigned' ; do for tmo in 'struct timeval *' 'const struct timeval *'; do case "$val" in - '') try="extern select _(($nfd, $xxx, $xxx, $xxx, $tmo));" + '') try="$extern_C select _(($nfd, $xxx, $xxx, $xxx, $tmo));" if ./protochk "$try" $hdrs; then echo "Your system accepts $xxx." val="$xxx" @@ -19627,7 +20458,7 @@ EOM val=$ans selectminbits="$val" fi - $rm -f try.* try + $rm_try ;; *) : no select, so pick a harmless default selectminbits=$safebits @@ -19637,28 +20468,20 @@ EOM esac : Trace out the files included by signal.h, then look for SIGxxx names. -: Remove SIGARRAYSIZE used by HPUX. -: Remove SIGSTKSIZE used by Linux. -: Remove SIGSTKSZ used by Posix. -: Remove SIGTYP void lines used by OS2. -: Some cpps, like os390, dont give the file name anywhere if [ "X$fieldn" = X ]; then : Just make some guesses. We check them later. xxx='/usr/include/signal.h /usr/include/sys/signal.h' else xxx=`echo '#include ' | $cppstdin $cppminus $cppflags 2>/dev/null | - $grep '^[ ]*#.*include' | - $awk "{print \\$$fieldn}" | $sed 's!"!!g' | $sed 's!\\\\\\\\!/!g' | $sort | $uniq` + $grep '^[ ]*#.*include' | + $awk "{print \\$$fieldn}" | $sed 's!"!!g' |\ + $sed 's!\\\\\\\\!/!g' | $sort | $uniq` fi -: Check this list of files to be sure we have parsed the cpp output ok. -: This will also avoid potentially non-existent files, such -: as ../foo/bar.h xxxfiles='' for xx in $xxx /dev/null ; do $test -f "$xx" && xxxfiles="$xxxfiles $xx" done -: If we have found no files, at least try signal.h case "$xxxfiles" in '') xxxfiles=`./findhdr signal.h` ;; esac @@ -19769,14 +20592,14 @@ $1 ~ /^NSIG$/ { nsig = $2 } if (sig_name[$2]) { dup_name[ndups] = $1 dup_num[ndups] = $2 - ndups++ + ndups++ } else { sig_name[$2] = $1 sig_num[$2] = $2 } } -END { +END { if (nsig == 0) { nsig = maxsig + 1 } @@ -19786,7 +20609,7 @@ END { printf("%s %d\n", sig_name[n], sig_num[n]) } else { - printf("NUM%d %d\n", n, n) + printf("NUM%d %d\n", n, n) } } for (n = 0; n < ndups; n++) { @@ -19806,7 +20629,8 @@ $cat >>signal_cmd <<'EOS' set signal if eval $compile_ok; then - $run ./signal$_exe | ($sort -n -k 2 2>/dev/null || $sort -n +1) | $uniq | $awk -f signal.awk >signal.lst + $run ./signal$_exe | ($sort -n -k 2 2>/dev/null || $sort -n +1) |\ + $uniq | $awk -f signal.awk >signal.lst else echo "(I can't seem be able to compile the whole test program)" >&4 echo "(I'll try it in little pieces.)" >&4 @@ -19906,14 +20730,15 @@ echo $sig_name | $awk \ printf "\n" }' sig_size=`echo $sig_name | awk '{print NF}'` -$rm -f signal signal.c signal.awk signal.lst signal_cmd +$rm -f signal signal.c signal.awk signal.lst signal_cmd +: Check size of size echo " " case "$sizetype" in *_t) zzz="$sizetype" ;; *) zzz="filesize" ;; esac -echo "Checking the size of $zzz..." >&4 +echo "Checking the size of $zzz..." >&4 cat > try.c < #include @@ -19965,7 +20790,7 @@ else size_t) echo "(You do have size_t, that might work. Some people are happy with just an int.)" ;; esac fi -$rm -f try try.* +$rm_try set d_socklen_t eval $setvar @@ -19987,7 +20812,7 @@ EOM yyy="$yyy $sizetype int long unsigned" for xxx in $yyy; do case "$socksizetype" in - '') try="extern int accept(int, struct sockaddr *, $xxx *);" + '') try="$extern_C int accept(int, struct sockaddr *, $xxx *);" case "$usesocks" in "$define") if ./protochk "$try" $i_systypes sys/types.h $d_socket sys/socket.h literal '#define INCLUDE_PROTOTYPES' $i_socks socks.h.; then @@ -20037,7 +20862,7 @@ int main() printf("$dflt\n"); else if (sizeof(Size_t) == sizeof(int)) printf("int\n"); - else + else printf("long\n"); exit(0); } @@ -20061,12 +20886,11 @@ EOM . ./myread ssizetype="$ans" fi -$rm -f try try.* +$rm_try : see what type of char stdio uses. echo " " -echo '#include ' > stdio.c -$cppstdin $cppminus < stdio.c > stdioh +echo '#include ' | $cppstdin $cppminus > stdioh if $contains 'unsigned.*char.*_ptr;' stdioh >/dev/null 2>&1 ; then echo "Your stdio uses unsigned chars." >&4 stdchar="unsigned char" @@ -20074,7 +20898,7 @@ else echo "Your stdio uses signed chars." >&4 stdchar="char" fi -$rm -f stdio.* stdioh +$rm -f stdioh : see what type uids are declared as in the kernel echo " " @@ -20100,12 +20924,13 @@ uid_t) echo "uid_t found." ;; ;; esac +: Check size of UID echo " " case "$uidtype" in *_t) zzz="$uidtype" ;; *) zzz="uid" ;; esac -echo "Checking the size of $zzz..." >&4 +echo "Checking the size of $zzz..." >&4 cat > try.c < #include @@ -20134,6 +20959,7 @@ else echo "(I can't compile the test program--guessing $uidsize.)" >&4 fi +: Check if UID is signed echo " " case "$uidtype" in *_t) zzz="$uidtype" ;; @@ -20171,7 +20997,7 @@ else fi - +: Check format string for UID echo " " $echo "Checking the format string to be used for uids..." >&4 @@ -20210,7 +21036,7 @@ case "$uidsign" in ;; esac - +: Check if site customization support was requested case "$usesitecustomize" in $define|true|[Yy]*) usesitecustomize="$define" @@ -20251,6 +21077,10 @@ case "$yacc" in ;; esac +: see if this is a assert.h system +set assert.h i_assert +eval $inhdr + : see if this is a fp.h system set fp.h i_fp eval $inhdr @@ -20298,46 +21128,10 @@ else i_machcthr="$undef" fi - - : see if this is a mntent.h system set mntent.h i_mntent eval $inhdr -: see if ndbm.h is available -set ndbm.h t_ndbm -eval $inhdr - -case "$t_ndbm" in -$undef) - # Some Linux distributions such as RedHat 7.1 put the - # ndbm.h header in /usr/include/gdbm/ndbm.h. - if $test -f /usr/include/gdbm/ndbm.h; then - echo ' found.' - ccflags="$ccflags -I/usr/include/gdbm" - cppflags="$cppflags -I/usr/include/gdbm" - t_ndbm=$define - fi - ;; -esac - -case "$t_ndbm" in -$define) - : see if dbm_open exists - set dbm_open d_dbm_open - eval $inlibc - case "$d_dbm_open" in - $undef) - t_ndbm="$undef" - echo "We won't be including " - ;; - esac - ;; -esac -val="$t_ndbm" -set i_ndbm -eval $setvar - : see if net/errno.h is available val='' set net/errno.h val @@ -20361,7 +21155,7 @@ EOM echo "We won't be including ." >&4 val="$undef" fi - $rm -f try.* try + $rm_try ;; esac set i_neterrno @@ -20379,6 +21173,7 @@ eval $inhdr set prot.h i_prot eval $inhdr +: Preprocessor symbols echo " " $echo "Guessing which symbols your C compiler and preprocessor define..." >&4 $cat <<'EOSH' > Cppsym.know @@ -20404,7 +21199,7 @@ IA64 iAPX286 ibm ibm032 ibmesa IBMR2 ibmrt ILP32 ILP64 INLINE_INTRINSICS INTRINSICS INT64 interdata is68k ksr1 LANGUAGE_C LARGE_FILE_API LARGEFILE64_SOURCE LARGEFILE_SOURCE LFS64_LARGEFILE LFS_LARGEFILE -Linux LITTLE_ENDIAN LONG64 LONG_DOUBLE LONG_LONG +LIBCATAMOUNT Linux LITTLE_ENDIAN LONG64 LONG_DOUBLE LONG_LONG LONGDOUBLE LONGLONG LP64 luna luna88k Lynx M68000 m68k m88100 m88k M88KBCS_TARGET M_COFF M_I186 M_I286 M_I386 M_I8086 M_I86 M_I86SM M_SYS3 @@ -20423,7 +21218,7 @@ pa_risc PA_RISC1_1 PA_RISC2_0 PARAGON parisc pc532 pdp11 PGC PIC plexus PORTAR posix POSIX1B_SOURCE POSIX2_SOURCE POSIX4_SOURCE POSIX_C_SOURCE POSIX_SOURCE POWER -PROTOTYPES PWB pyr QNX R3000 REENTRANT RES Rhapsody RISC6000 +PROTOTYPES PWB pyr QNX QK_USER R3000 REENTRANT RES Rhapsody RISC6000 riscix riscos RT S390 SA110 scs SCO sequent sgi SGI_SOURCE SH3 sinix SIZE_INT SIZE_LONG SIZE_PTR SOCKET_SOURCE SOCKETS_SOURCE sony sony_news sonyrisc sparc sparclite spectrum @@ -20543,7 +21338,7 @@ do -A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A//' | $sed 's/\(.*\)(\(.*\))/\1=\2/';; esac done -$rm -f try.c +$rm_try EOS postprocess_cc_v='' chmod +x ccsym @@ -20619,14 +21414,14 @@ case "$val3" in echo " found." >&4 else echo "System is pyramid with BSD universe." - echo " not found--you could have problems." >&4 + ./warn " not found--you could have problems." fi;; *) if $test `./findhdr termio.h`; then val="$define" echo " found." >&4 else echo "System is pyramid with USG universe." - echo " not found--you could have problems." >&4 + ./warn " not found--you could have problems." fi;; esac elif ./usg; then @@ -20637,7 +21432,7 @@ case "$val3" in echo " found." >&4 val2="$define" else -echo "Neither nor found--you could have problems." >&4 + ./warn "Neither nor found--cross fingers!" fi else if $test `./findhdr sgtty.h`; then @@ -20647,7 +21442,7 @@ echo "Neither nor found--you could have problems." >&4 echo " found." >&4 val="$define" else -echo "Neither nor found--you could have problems." >&4 + ./warn "Neither nor found--cross fingers!" fi fi;; esac @@ -20659,10 +21454,6 @@ val=$val3; set i_termios; eval $setvar set stddef.h i_stddef eval $inhdr -: see if this is a sunmath.h system -set sunmath.h i_sunmath -eval $inhdr - : see if sys/access.h is available set sys/access.h i_sysaccess eval $inhdr @@ -20708,16 +21499,18 @@ fi set i_syssockio eval $setvar - : see if this is a syslog.h system set syslog.h i_syslog eval $inhdr - : see if this is a sys/mode.h system set sys/mode.h i_sysmode eval $inhdr +: see if there is a sys/poll.h file +set sys/poll.h i_syspoll +eval $inhdr + : see if sys/resource.h has to be included set sys/resource.h i_sysresrc eval $inhdr @@ -20734,7 +21527,6 @@ eval $inhdr set sys/un.h i_sysun eval $inhdr - : see if this is a sys/utsname.h system set sys/utsname.h i_sysutsname eval $inhdr @@ -20751,10 +21543,6 @@ eval $inhdr set utime.h i_utime eval $inhdr -: see if this is a values.h system -set values.h i_values -eval $inhdr - : see if this is a vfork system case "$d_vfork" in "$define") @@ -20766,6 +21554,7 @@ case "$d_vfork" in ;; esac +: Check extensions echo " " echo "Looking for extensions..." >&4 : If we are using the old config.sh, known_extensions may contain @@ -20781,40 +21570,42 @@ nonxs_extensions='' : NOTE: recursion limit of 10 to prevent runaway in case of symlink madness find_extensions=' for xxx in *; do - case "$xxx" in - DynaLoader|dynaload) ;; - *) - if $test -f $xxx/$xxx.xs; then - known_extensions="$known_extensions $1$xxx"; - elif $test -f $xxx/Makefile.PL; then - nonxs_extensions="$nonxs_extensions $1$xxx"; - else - if $test -d $xxx -a $# -lt 10; then - set $1$xxx/ $*; - cd "$xxx"; - eval $find_extensions; - cd ..; - shift; - fi; - fi - ;; - esac; + case "$xxx" in + DynaLoader|dynaload) ;; + *) + if $test -f $xxx/$xxx.xs -o -f $xxx/$xxx.c; then + known_extensions="$known_extensions $1$xxx"; + elif $test -f $xxx/Makefile.PL; then + nonxs_extensions="$nonxs_extensions $1$xxx"; + else + if $test -d $xxx -a $# -lt 10; then + set $1$xxx/ $*; + cd "$xxx"; + eval $find_extensions; + cd ..; + shift; + fi; + fi + ;; + esac; done' tdir=`pwd` cd "$rsrc/ext" set X shift eval $find_extensions -# Special case: Add in threads/shared since it is not picked up by the -# recursive find above (and adding in general recursive finding breaks -# SDBM_File/sdbm). A.D. 10/25/2001. -known_extensions="$known_extensions threads/shared" -set X $nonxs_extensions -shift -nonxs_extensions="$*" +# Special case: Add in modules that nest beyond the first level. +# Currently threads/shared and Hash/Util/FieldHash, since they are +# not picked up by the recursive find above (and adding in general +# recursive finding breaks SDBM_File/sdbm). +# A.D. 20011025 (SDBM), ajgough 20071008 (FieldHash) +known_extensions="$known_extensions threads/shared Hash/Util/FieldHash" set X $known_extensions shift known_extensions="$*" +set X $nonxs_extensions +shift +nonxs_extensions="$*" cd "$tdir" : Now see which are supported on this system. @@ -20827,15 +21618,21 @@ for xxx in $known_extensions ; do esac ;; GDBM_File|gdbm_fil) - case "$i_gdbm" in + case "$i_gdbm" in $define) avail_ext="$avail_ext $xxx" ;; esac ;; I18N/Langinfo|i18n_lan) - case "$i_langinfo$d_nl_langinfo" in + case "$i_langinfo$d_nl_langinfo" in $define$define) avail_ext="$avail_ext $xxx" ;; esac ;; + IPC/SysV|ipc/sysv) + : XXX Do we need a useipcsysv variable here + case "${d_msg}${d_sem}${d_shm}" in + *"${define}"*) avail_ext="$avail_ext $xxx" ;; + esac + ;; NDBM_File|ndbm_fil) case "$i_ndbm" in $define) @@ -20850,32 +21647,36 @@ for xxx in $known_extensions ; do ;; esac ;; - ODBM_File|odbm_fil) + ODBM_File|odbm_fil) case "${i_dbm}${i_rpcsvcdbm}" in *"${define}"*) - case "$osname-$use64bitint" in - hpux-define) - case "$libs" in - *-ldbm*) avail_ext="$avail_ext $xxx" ;; + case "$d_cplusplus" in + define) ;; # delete as a function name will not work + *) case "$osname-$use64bitint" in + hpux-define) + case "$libs" in + *-ldbm*) avail_ext="$avail_ext $xxx" ;; + esac + ;; + *) avail_ext="$avail_ext $xxx" ;; esac ;; - *) avail_ext="$avail_ext $xxx" ;; esac ;; esac ;; - POSIX|posix) - case "$useposix" in + Opcode|opcode) + case "$useopcode" in true|define|y) avail_ext="$avail_ext $xxx" ;; esac ;; - Opcode|opcode) - case "$useopcode" in + POSIX|posix) + case "$useposix" in true|define|y) avail_ext="$avail_ext $xxx" ;; esac ;; Socket|socket) - case "$d_socket" in + case "$d_socket" in true|$define|y) case "$osname" in beos) ;; # not unless BONE @@ -20886,31 +21687,18 @@ for xxx in $known_extensions ; do ;; Sys/Syslog|sys/syslog) : XXX syslog requires socket - case "$d_socket" in + case "$d_socket" in true|$define|y) avail_ext="$avail_ext $xxx" ;; esac ;; Thread|thread) case "$usethreads" in true|$define|y) - case "$useithreads" in - $undef|false|[nN]*) avail_ext="$avail_ext $xxx" ;; + case "$use5005threads" in + $define|true|[yY]*) avail_ext="$avail_ext $xxx" ;; esac esac ;; - XS/APItest|xs/apitest) - # This is just for testing. Skip it unless we have dynamic loading. - - case "$usedl" in - $define) avail_ext="$avail_ext $xxx" ;; - esac - ;; - XS/Typemap|xs/typemap) - # This is just for testing. Skip it unless we have dynamic loading. - case "$usedl" in - $define) avail_ext="$avail_ext $xxx" ;; - esac - ;; threads|threads/shared) # threads and threads::shared are special cases. # To stop people from asking "Perl 5.8.0 was supposed @@ -20925,10 +21713,22 @@ for xxx in $known_extensions ; do # --jhi avail_ext="$avail_ext $xxx" ;; - IPC/SysV|ipc/sysv) - : XXX Do we need a useipcsysv variable here - case "${d_msg}${d_sem}${d_shm}" in - *"${define}"*) avail_ext="$avail_ext $xxx" ;; + Win32*) + case "$osname" in + cygwin) avail_ext="$avail_ext $xxx" ;; + esac + ;; + XS/APItest|xs/apitest) + # This is just for testing. Skip it unless we have dynamic loading. + + case "$usedl" in + $define) avail_ext="$avail_ext $xxx" ;; + esac + ;; + XS/Typemap|xs/typemap) + # This is just for testing. Skip it unless we have dynamic loading. + case "$usedl" in + $define) avail_ext="$avail_ext $xxx" ;; esac ;; *) avail_ext="$avail_ext $xxx" @@ -21017,11 +21817,11 @@ EOM previous) if test X"$dynamic_ext" != X"$avail_ext"; then $cat <&4 . ./config.arch fi @@ -21234,13 +22034,16 @@ $startsh # Configured by : $cf_by # Target system : $myuname +EOT +$test -f UU/cmdline.opt && $cat UU/cmdline.opt >> config.sh +$spitshell <>config.sh + Author='$Author' Date='$Date' Header='$Header' Id='$Id' Locker='$Locker' Log='$Log' -Mcc='$Mcc' RCSfile='$RCSfile' Revision='$Revision' Source='$Source' @@ -21286,7 +22089,6 @@ ccversion='$ccversion' cf_by='$cf_by' cf_email='$cf_email' cf_time='$cf_time' -charsize='$charsize' chgrp='$chgrp' chmod='$chmod' chown='$chown' @@ -21330,6 +22132,7 @@ d_accessx='$d_accessx' d_aintl='$d_aintl' d_alarm='$d_alarm' d_archlib='$d_archlib' +d_asctime64='$d_asctime64' d_asctime_r='$d_asctime_r' d_atolf='$d_atolf' d_atoll='$d_atoll' @@ -21367,11 +22170,14 @@ d_crypt_r='$d_crypt_r' d_csh='$d_csh' d_ctermid='$d_ctermid' d_ctermid_r='$d_ctermid_r' +d_ctime64='$d_ctime64' d_ctime_r='$d_ctime_r' d_cuserid='$d_cuserid' d_dbl_dig='$d_dbl_dig' d_dbminitproto='$d_dbminitproto' +d_difftime64='$d_difftime64' d_difftime='$d_difftime' +d_dir_dd_fd='$d_dir_dd_fd' d_dirfd='$d_dirfd' d_dirnamlen='$d_dirnamlen' d_dlerror='$d_dlerror' @@ -21428,6 +22234,8 @@ d_fsync='$d_fsync' d_ftello='$d_ftello' d_ftime='$d_ftime' d_futimes='$d_futimes' +d_gdbm_ndbm_h_uses_prototypes='$d_gdbm_ndbm_h_uses_prototypes' +d_gdbmndbm_h_uses_prototypes='$d_gdbmndbm_h_uses_prototypes' d_getcwd='$d_getcwd' d_getespwnam='$d_getespwnam' d_getfsstat='$d_getfsstat' @@ -21484,6 +22292,7 @@ d_getservprotos='$d_getservprotos' d_getspnam='$d_getspnam' d_getspnam_r='$d_getspnam_r' d_gettimeod='$d_gettimeod' +d_gmtime64='$d_gmtime64' d_gmtime_r='$d_gmtime_r' d_gnulibc='$d_gnulibc' d_grpasswd='$d_grpasswd' @@ -21504,7 +22313,9 @@ d_lchown='$d_lchown' d_ldbl_dig='$d_ldbl_dig' d_libm_lib_version='$d_libm_lib_version' d_link='$d_link' +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_longdbl='$d_longdbl' @@ -21527,6 +22338,7 @@ d_mkdtemp='$d_mkdtemp' d_mkfifo='$d_mkfifo' d_mkstemp='$d_mkstemp' d_mkstemps='$d_mkstemps' +d_mktime64='$d_mktime64' d_mktime='$d_mktime' d_mmap='$d_mmap' d_modfl='$d_modfl' @@ -21547,6 +22359,8 @@ d_msgsnd='$d_msgsnd' d_msync='$d_msync' d_munmap='$d_munmap' d_mymalloc='$d_mymalloc' +d_ndbm='$d_ndbm' +d_ndbm_h_uses_prototypes='$d_ndbm_h_uses_prototypes' d_nice='$d_nice' d_nl_langinfo='$d_nl_langinfo' d_nv_preserves_uv='$d_nv_preserves_uv' @@ -21563,7 +22377,9 @@ d_phostname='$d_phostname' d_pipe='$d_pipe' d_poll='$d_poll' d_portable='$d_portable' +d_printf_format_null='$d_printf_format_null' d_procselfexe='$d_procselfexe' +d_pseudofork='$d_pseudofork' d_pthread_atfork='$d_pthread_atfork' d_pthread_attr_setscope='$d_pthread_attr_setscope' d_pthread_yield='$d_pthread_yield' @@ -21643,6 +22459,7 @@ d_shmctl='$d_shmctl' d_shmdt='$d_shmdt' d_shmget='$d_shmget' d_sigaction='$d_sigaction' +d_signbit='$d_signbit' d_sigprocmask='$d_sigprocmask' d_sigsetjmp='$d_sigsetjmp' d_sitearch='$d_sitearch' @@ -21701,6 +22518,7 @@ d_tcsetpgrp='$d_tcsetpgrp' d_telldir='$d_telldir' d_telldirproto='$d_telldirproto' 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' @@ -21748,6 +22566,7 @@ dlsrc='$dlsrc' doublesize='$doublesize' drand01='$drand01' drand48_r_proto='$drand48_r_proto' +dtrace='$dtrace' dynamic_ext='$dynamic_ext' eagain='$eagain' ebcdic='$ebcdic' @@ -21764,6 +22583,7 @@ eunicefix='$eunicefix' exe_ext='$exe_ext' expr='$expr' extensions='$extensions' +extern_C='$extern_C' extras='$extras' fflushNULL='$fflushNULL' fflushall='$fflushall' @@ -21829,6 +22649,7 @@ i64type='$i64type' i8size='$i8size' i8type='$i8type' i_arpainet='$i_arpainet' +i_assert='$i_assert' i_bsdioctl='$i_bsdioctl' i_crypt='$i_crypt' i_db='$i_db' @@ -21841,6 +22662,8 @@ i_float='$i_float' i_fp='$i_fp' i_fp_class='$i_fp_class' i_gdbm='$i_gdbm' +i_gdbm_ndbm='$i_gdbm_ndbm' +i_gdbmndbm='$i_gdbmndbm' i_grp='$i_grp' i_ieeefp='$i_ieeefp' i_inttypes='$i_inttypes' @@ -21850,6 +22673,7 @@ i_limits='$i_limits' i_locale='$i_locale' i_machcthr='$i_machcthr' i_malloc='$i_malloc' +i_mallocmalloc='$i_mallocmalloc' i_math='$i_math' i_memory='$i_memory' i_mntent='$i_mntent' @@ -21884,6 +22708,7 @@ i_sysmode='$i_sysmode' i_sysmount='$i_sysmount' i_sysndir='$i_sysndir' i_sysparam='$i_sysparam' +i_syspoll='$i_syspoll' i_sysresrc='$i_sysresrc' i_syssecrt='$i_syssecrt' i_sysselct='$i_sysselct' @@ -22027,6 +22852,7 @@ nroff='$nroff' nvEUformat='$nvEUformat' nvFUformat='$nvFUformat' nvGUformat='$nvGUformat' +nv_overflows_integers_at='$nv_overflows_integers_at' nv_preserves_uv_bits='$nv_preserves_uv_bits' nveformat='$nveformat' nvfformat='$nvfformat' @@ -22077,9 +22903,14 @@ readdir64_r_proto='$readdir64_r_proto' readdir_r_proto='$readdir_r_proto' revision='$revision' rm='$rm' +rm_try='$rm_try' rmail='$rmail' run='$run' runnm='$runnm' +sGMTIME_max='$sGMTIME_max' +sGMTIME_min='$sGMTIME_min' +sLOCALTIME_max='$sLOCALTIME_max' +sLOCALTIME_min='$sLOCALTIME_min' sPRIEUldbl='$sPRIEUldbl' sPRIFUldbl='$sPRIFUldbl' sPRIGUldbl='$sPRIGUldbl' @@ -22205,7 +23036,9 @@ use5005threads='$use5005threads' use64bitall='$use64bitall' use64bitint='$use64bitint' usecrosscompile='$usecrosscompile' +usedevel='$usedevel' usedl='$usedl' +usedtrace='$usedtrace' usefaststdio='$usefaststdio' useithreads='$useithreads' uselargefiles='$uselargefiles' @@ -22278,8 +23111,9 @@ echo "PERL_CONFIG_SH=true" >>config.sh : propagate old symbols if $test -f UU/config.sh; then UU/oldconfig.sh - sed -n 's/^\([a-zA-Z_0-9]*\)=.*/\1/p' config.sh config.sh UU/oldconfig.sh |\ - $sort | $uniq -u >UU/oldsyms + $sed -n 's/^\([a-zA-Z_0-9]*\)=.*/\1/p' \ + config.sh config.sh UU/oldconfig.sh |\ + $sort | $uniq -u >UU/oldsyms set X `cat UU/oldsyms` shift case $# in @@ -22288,7 +23122,7 @@ if $test -f UU/config.sh; then cat <>config.sh + echo ": Variables propagated from previous config.sh file." >>config.sh for sym in `cat UU/oldsyms`; do echo " Propagating $hint variable "'$'"$sym..." eval 'tmp="$'"${sym}"'"'