X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Configure;h=128f003b2be6dc571e57c36404087efa81c17187;hb=f13a2bc0291ac6766d77bda1b46c5921237360c9;hp=55641a8d0377831550442d54ed56841128c23621;hpb=a02608dec28d4e964c218e69ee3e39c623232d8d;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Configure b/Configure index 55641a8..128f003 100755 --- a/Configure +++ b/Configure @@ -20,7 +20,7 @@ # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ # -# Generated on Tue May 15 16:44:30 EET DST 2001 [metaconfig 3.0 PL70] +# Generated on Fri Jun 21 16:37:53 EET DST 2002 [metaconfig 3.0 PL70] # (with additional metaconfig patches by perlbug@perl.org) cat >c1$$ <&2 +'') cat >&2 </dev/null 2>&1`; then shsharp=true spitshell=cat xcat=/bin/cat - test -f $xcat || xcat=/usr/bin/cat - echo "#!$xcat" >try - $eunicefix try - chmod +x try - ./try > today + test -f $xcat$_exe || xcat=/usr/bin/cat + if test ! -f $xcat$_exe; then + for p in `echo $PATH | sed -e "s/$p_/ /g"` $paths; do + if test -f $p/cat$_exe; then + xcat=$p/cat + break + fi + done + if test ! -f $xcat$_exe; then + echo "Can't find cat anywhere!" + exit 1 + fi + fi + echo "#!$xcat" >sharp + $eunicefix sharp + chmod +x sharp + ./sharp > today if test -s today; then sharpbang='#!' else - echo "#! $xcat" > try - $eunicefix try - chmod +x try - ./try > today + echo "#! $xcat" > sharp + $eunicefix sharp + chmod +x sharp + ./sharp > today if test -s today; then sharpbang='#! ' else @@ -1136,28 +1309,28 @@ else echo "I presume that if # doesn't work, #! won't work either!" sharpbang=': use ' fi -rm -f try today +rm -f sharp today : figure out how to guarantee sh startup case "$startsh" in '') startsh=${sharpbang}${sh} ;; *) esac -cat >try <sharp <>cmdline.opt < cmdl.opt +$arg +EOC + arg_exp=`cat cmdl.opt` + args_exp="$args_exp$args_sep'$arg_exp'" 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 cat >options.awk <<'EOF' @@ -1300,23 +1485,23 @@ while test $# -gt 0; do zzz='' uuu=undef case "$yyy" in - *=*) zzz=`echo $yyy|sed 's!=.*!!'` + *=*) zzz=`echo "$yyy"|sed 's!=.*!!'` case "$zzz" in *:*) zzz='' ;; *) xxx=append - zzz=" "`echo $yyy|sed 's!^[^=]*=!!'` - yyy=`echo $yyy|sed 's!=.*!!'` ;; + zzz=" "`echo "$yyy"|sed 's!^[^=]*=!!'` + yyy=`echo "$yyy"|sed 's!=.*!!'` ;; esac ;; esac case "$xxx" in '') case "$yyy" in - *:*) xxx=`echo $yyy|sed 's!:.*!!'` - yyy=`echo $yyy|sed 's!^[^:]*:!!'` - zzz=`echo $yyy|sed 's!^[^=]*=!!'` - yyy=`echo $yyy|sed 's!=.*!!'` ;; - *) xxx=`echo $yyy|sed 's!:.*!!'` - yyy=`echo $yyy|sed 's!^[^:]*:!!'` ;; + *:*) xxx=`echo "$yyy"|sed 's!:.*!!'` + yyy=`echo "$yyy"|sed 's!^[^:]*:!!'` + zzz=`echo "$yyy"|sed 's!^[^=]*=!!'` + yyy=`echo "$yyy"|sed 's!=.*!!'` ;; + *) xxx=`echo "$yyy"|sed 's!:.*!!'` + yyy=`echo "$yyy"|sed 's!^[^:]*:!!'` ;; esac ;; esac @@ -1501,17 +1686,17 @@ esac cat >extract <<'EOS' PERL_CONFIG_SH=true echo "Doing variable substitutions on .SH files..." -if test -f $src/MANIFEST; then - set x `awk '{print $1}' <$src/MANIFEST | grep '\.SH$'` +if test -f MANIFEST; then + set x `awk '{print $1}' < MANIFEST | grep '\.SH$'` else echo "(Looking for .SH files under the source directory.)" - set x `(cd $src; find . -name "*.SH" -print)` + set x `(cd "$src"; find . -name "*.SH" -print)` fi shift case $# in -0) set x `(cd $src; echo *.SH)`; shift;; +0) set x `(cd "$src"; echo *.SH)`; shift;; esac -if test ! -f $src/$1; then +if test ! -f "$src/$1"; then shift fi mkdir_p=' @@ -1537,7 +1722,7 @@ for file in $*; do */*) dir=`expr X$file : 'X\(.*\)/'` file=`expr X$file : 'X.*/\(.*\)'` - (cd $dir && . ./$file) + (cd "$dir" && . ./$file) ;; *) . ./$file @@ -1550,19 +1735,19 @@ for file in $*; do dir=`expr X$file : 'X\(.*\)/'` file=`expr X$file : 'X.*/\(.*\)'` (set x $dir; shift; eval $mkdir_p) - sh <$src/$dir/$file + sh <"$src/$dir/$file" ;; *) - sh <$src/$file + sh <"$src/$file" ;; esac ;; esac done -if test -f $src/config_h.SH; then +if test -f "$src/config_h.SH"; then if test ! -f config.h; then : oops, they left it out of MANIFEST, probably, so do it anyway. - . $src/config_h.SH + . "$src/config_h.SH" fi fi EOS @@ -1585,7 +1770,7 @@ true) echo " " . UU/extract rm -rf UU - echo "Done." + echo "Extraction done." exit 0 ;; esac @@ -1618,13 +1803,13 @@ rm -f .echotmp : Now test for existence of everything in MANIFEST echo " " -if test -f $rsrc/MANIFEST; then +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 -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 @@ -1674,6 +1859,11 @@ if test X"$trnl" = X; then esac fi if test X"$trnl" = X; then + case "`echo foo|tr '\r\n' xy 2>/dev/null`" in + fooxy) trnl='\n\r' ;; + esac +fi +if test X"$trnl" = X; then cat <&2 $me: Fatal Error: cannot figure out how to translate newlines with 'tr'. @@ -1956,6 +2146,9 @@ for dir in \$*; do if test -f \$thisthing; then echo \$thisthing exit 0 + elif test "X$_exe" != X -a -f \$thisthing$_exe; then + echo \$thisthing + exit 0 elif test -f \$dir/\$thing.exe; then if test -n "$DJGPP"; then echo \$dir/\$thing.exe @@ -1976,13 +2169,13 @@ $eunicefix loc loclist=" awk cat +chmod comm cp echo expr grep ls -make mkdir rm sed @@ -2000,9 +2193,11 @@ cpp csh date egrep +gmake gzip less ln +make more nm nroff @@ -2027,7 +2222,7 @@ for file in $loclist; do '') xxx=`./loc $file $file $pth`;; *) xxx=`./loc $xxx $xxx $pth`;; esac - eval $file=$xxx + eval $file=$xxx$_exe eval _$file=$xxx case "$xxx" in /*) @@ -2060,7 +2255,7 @@ for file in $trylist; do '') xxx=`./loc $file $file $pth`;; *) xxx=`./loc $xxx $xxx $pth`;; esac - eval $file=$xxx + eval $file=$xxx$_exe eval _$file=$xxx case "$xxx" in /*) @@ -2079,12 +2274,37 @@ case "$egrep" in egrep) echo "Substituting grep for egrep." egrep=$grep + _egrep=$grep ;; esac case "$ln" in ln) echo "Substituting cp for ln." ln=$cp + _ln=$cp + ;; +esac +case "$make" in +make) + case "$gmake" in + gmake) + echo "I can't find make or gmake, and my life depends on it." >&4 + echo "Go find a public domain implementation or fix your PATH setting!" >&4 + exit 1 + ;; + esac + ;; +esac +case "$gmake" in +gmake) ;; +*) # We can't have osname yet. + if test -f "/system/gnu_library/bin/ar.pm"; then # Stratus VOS + # Assume that gmake, if found, is definitely GNU make + # and prefer it over the system make. + echo "Substituting gmake for make." + make=$gmake + _make=$gmake + fi ;; esac case "$test" in @@ -2130,10 +2350,10 @@ FOO ;; esac -cat <checkcc +cat <trygcc $startsh EOS -cat <<'EOSC' >>checkcc +cat <<'EOSC' >>trygcc case "$cc" in '') ;; *) $rm -f try try.* @@ -2171,19 +2391,50 @@ EOM fi fi case "$ans" in - [yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no ;; + [yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no; + if $test -f usethreads.cbu; then + $cat >&4 <checkcc +$startsh +EOS +cat <<'EOSC' >>checkcc +case "$cc" in +'') ;; +*) $rm -f try try.* + $cat >try.c <&4 <&4 + fi + $cat >&4 <&4 $lns blurfl sym if $test "X$issymlink" = X; then - sh -c "PATH= test -h sym" >/dev/null 2>&1 + case "$newsh" in + '') sh -c "PATH= test -h sym" >/dev/null 2>&1 ;; + *) $newsh -c "PATH= test -h sym" >/dev/null 2>&1 ;; + esac if test $? = 0; then issymlink="test -h" - fi - fi - if $test "X$issymlink" = X; then - if $test -h >/dev/null 2>&1; then - issymlink="$test -h" - echo "Your builtin 'test -h' may be broken, I'm using external '$test -h'." >&4 + else + echo "Your builtin 'test -h' may be broken." >&4 + case "$test" in + /*) ;; + *) pth=`echo $PATH | sed -e "s/$p_/ /g"` + for p in $pth + do + if test -f "$p/$test"; then + test="$p/$test" + break + fi + done + ;; + esac + case "$test" in + /*) + echo "Trying external '$test -h'." >&4 + issymlink="$test -h" + if $test ! -h sym >/dev/null 2>&1; then + echo "External '$test -h' is broken, too." >&4 + issymlink='' + fi + ;; + *) issymlink='' ;; + esac fi fi if $test "X$issymlink" = X; then if $test -L sym 2>/dev/null; then issymlink="$test -L" + echo "The builtin '$test -L' worked." >&4 fi fi if $test "X$issymlink" != X; then @@ -2245,7 +2519,7 @@ $define|true|[yY]*) exit 1 ;; *) case "$lns:$issymlink" in - *"ln -s:"*"test -"?) + *"ln"*" -s:"*"test -"?) echo "Creating the symbolic links..." >&4 echo "(First creating the subdirectories...)" >&4 cd .. @@ -2275,8 +2549,8 @@ $define|true|[yY]*) fi done # Sanity check 2. - if test ! -f t/base/commonsense.t; then - echo "Failed to create the symlinks. Aborting." >&4 + if test ! -f t/base/lex.t; then + echo "Failed to create the symlinks (t/base/lex.t missing). Aborting." >&4 exit 1 fi cd UU @@ -2289,6 +2563,250 @@ $define|true|[yY]*) ;; esac + +case "$usecrosscompile" in +$define|true|[yY]*) + $echo "Cross-compiling..." + croak='' + case "$cc" in + *-*-gcc) # A cross-compiling gcc, probably. + targetarch=`$echo $cc|$sed 's/-gcc$//'` + ar=$targetarch-ar + # leave out ld, choosing it is more complex + nm=$targetarch-nm + ranlib=$targetarch-ranlib + $echo 'extern int foo;' > try.c + set X `$cc -v -E try.c 2>&1 | $awk '/^#include &4 + for i in $*; do + j="`$echo $i|$sed 's,/include$,/lib,'`" + if $test -d $j; then + libpth="$libpth $j" + fi + done + libpth="`$echo $libpth|$sed 's/^ //'`" + echo "Guessing libpth '$libpth'." >&4 + fi + $rm -f try.c + ;; + esac + case "$targetarch" in + '') echo "Targetarch not defined." >&4; croak=y ;; + *) echo "Using targetarch $targetarch." >&4 ;; + esac + case "$incpth" in + '') echo "Incpth not defined." >&4; croak=y ;; + *) echo "Using incpth '$incpth'." >&4 ;; + esac + case "$libpth" in + '') echo "Libpth not defined." >&4; croak=y ;; + *) echo "Using libpth '$libpth'." >&4 ;; + esac + case "$usrinc" in + '') for i in $incpth; do + if $test -f $i/errno.h -a -f $i/stdio.h -a -f $i/time.h; then + usrinc=$i + echo "Guessing usrinc $usrinc." >&4 + break + fi + done + case "$usrinc" in + '') echo "Usrinc not defined." >&4; croak=y ;; + esac + ;; + *) echo "Using usrinc $usrinc." >&4 ;; + esac + case "$targethost" in + '') echo "Targethost not defined." >&4; croak=y ;; + *) echo "Using targethost $targethost." >&4 + esac + locincpth=' ' + loclibpth=' ' + case "$croak" in + y) echo "Cannot continue, aborting." >&4; exit 1 ;; + esac + case "$src" in + /*) run=$src/Cross/run + targetmkdir=$src/Cross/mkdir + to=$src/Cross/to + from=$src/Cross/from + ;; + *) pwd=`$test -f ../Configure & cd ..; pwd` + run=$pwd/Cross/run + targetmkdir=$pwd/Cross/mkdir + to=$pwd/Cross/to + from=$pwd/Cross/from + ;; + esac + case "$targetrun" in + '') targetrun=ssh ;; + esac + case "$targetto" in + '') targetto=scp ;; + esac + case "$targetfrom" in + '') targetfrom=scp ;; + esac + run=$run-$targetrun + to=$to-$targetto + from=$from-$targetfrom + case "$targetdir" in + '') targetdir=/tmp + echo "Guessing targetdir $targetdir." >&4 + ;; + esac + case "$targetuser" in + '') targetuser=root + echo "Guessing targetuser $targetuser." >&4 + ;; + esac + case "$targetfrom" in + scp) q=-q ;; + *) q='' ;; + esac + case "$targetrun" in + ssh|rsh) + cat >$run <&4 + exit 1 + ;; + esac + case "$targetmkdir" in + */Cross/mkdir) + cat >$targetmkdir <&4 + exit 1 + ;; + esac + case "$targetto" in + scp|rcp) + cat >$to <$to <&4 + exit 1 + ;; + esac + case "$targetfrom" in + scp|rcp) + cat >$from <$from <&4 + exit 1 + ;; + esac + if $test ! -f $run; then + echo "Target 'run' script '$run' not found." >&4 + else + $chmod a+rx $run + fi + if $test ! -f $to; then + echo "Target 'to' script '$to' not found." >&4 + else + $chmod a+rx $to + fi + if $test ! -f $from; then + echo "Target 'from' script '$from' not found." >&4 + else + $chmod a+rx $from + fi + if $test ! -f $run -o ! -f $to -o ! -f $from; then + exit 1 + fi + cat >&4 </dev/null`" in @@ -2439,6 +2957,7 @@ EOM $test -d /usr/apollo/bin && osname=apollo $test -f /etc/saf/_sactab && osname=svr4 $test -d /usr/include/minix && osname=minix + $test -f /system/gnu_library/bin/ar.pm && osname=vos if $test -d /MachTen -o -d /MachTen_Folder; then osname=machten if $test -x /sbin/version; then @@ -2560,6 +3079,9 @@ EOM ;; next*) osname=next ;; nonstop-ux) osname=nonstopux ;; + openbsd) osname=openbsd + osvers="$3" + ;; POSIX-BC | posix-bc ) osname=posix-bc osvers="$3" ;; @@ -2611,9 +3133,11 @@ EOM unixware) osname=svr5 osvers="$4" ;; - uts) osname=uts + uts) osname=uts osvers="$3" ;; + vos) osvers="$3" + ;; $2) case "$osname" in *isc*) ;; *freebsd*) ;; @@ -2683,6 +3207,14 @@ EOM fi fi + case "$targetarch" in + '') ;; + *) hostarch=$osname + osname=`echo $targetarch|sed 's,^[^-]*-,,'` + osvers='' + ;; + esac + : Now look for a hint file osname_osvers, unless one has been : specified already. case "$hintfile" in @@ -2757,7 +3289,7 @@ EOM elif $test -f $src/hints/$file.sh; then . $src/hints/$file.sh $cat $src/hints/$file.sh >> UU/config.sh - elif $test X$tans = X -o X$tans = Xnone ; then + elif $test X"$tans" = X -o X"$tans" = Xnone ; then : nothing else : Give one chance to correct a possible typo. @@ -2894,20 +3426,100 @@ $undef$define) . ./whoa; eval "$var=\$tu";; *) eval "$var=$val";; esac' +case "$usesocks" in +$define|true|[yY]*) dflt='y';; +*) dflt='n';; +esac +cat <. Versions 5.003_02 and later of $package allow +alternate IO mechanisms via the PerlIO abstraction layer, but the +stdio mechanism is still available if needed. The abstraction layer +can use AT&T's sfio (if you already have sfio installed) or regular stdio. +Using PerlIO with sfio may cause problems with some extension modules. + +If this doesn't make any sense to you, just accept the default '$dflt'. +EOM +rp='Use the PerlIO abstraction layer?' +. ./myread +case "$ans" in +y|Y) + val="$define" + ;; +*) + echo "Ok, doing things the stdio way." + val="$undef" + ;; +esac +set useperlio +eval $setvar + +case "$usesocks" in +$define|true|[yY]*) + case "$useperlio" in + $define|true|[yY]*) ;; + *) cat >&4 <&4 <&4 -$cat >gccvers.c <try.c < int main() { #ifdef __GNUC__ @@ -3159,8 +3794,8 @@ int main() { exit(0); } EOM -if $cc -o gccvers $ccflags $ldflags gccvers.c; then - gccversion=`./gccvers` +if $cc -o try $ccflags $ldflags try.c; then + gccversion=`$run ./try` case "$gccversion" in '') echo "You are not using GNU cc." ;; *) echo "You are using GNU cc $gccversion." @@ -3178,7 +3813,7 @@ else ;; esac fi -$rm -f gccvers* +$rm -f try try.* case "$gccversion" in 1*) cpp=`./loc gcc-cpp $cpp $pth` ;; esac @@ -3217,153 +3852,17 @@ case "$ccname" in '') ccname="$cc" ;; esac -: see how we invoke the C preprocessor -echo " " -echo "Now, how can we feed standard input to your C preprocessor..." >&4 -cat <<'EOT' >testcpp.c -#define ABC abc -#define XYZ xyz -ABC.XYZ -EOT -cd .. -if test ! -f cppstdin; then - if test "X$osname" = "Xaix" -a "X$gccversion" = X; then - # AIX cc -E doesn't show the absolute headerfile - # locations but we'll cheat by using the -M flag. - echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin - else - echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin - fi -else - echo "Keeping your $hint cppstdin wrapper." -fi -chmod 755 cppstdin -wrapper=`pwd`/cppstdin -ok='false' -cd UU - -if $test "X$cppstdin" != "X" && \ - $cppstdin $cppminus testcpp.out 2>&1 && \ - $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 -then - echo "You used to use $cppstdin $cppminus so we'll use that again." - case "$cpprun" in - '') echo "But let's see if we can live without a wrapper..." ;; - *) - if $cpprun $cpplast testcpp.out 2>&1 && \ - $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 - then - echo "(And we'll use $cpprun $cpplast to preprocess directly.)" - ok='true' - else - echo "(However, $cpprun $cpplast does not work, let's see...)" - fi - ;; - esac -else - case "$cppstdin" in - '') ;; - *) - echo "Good old $cppstdin $cppminus does not seem to be of any help..." - ;; - esac -fi - -if $ok; then - : nothing -elif echo 'Maybe "'"$cc"' -E" will work...'; \ - $cc -E testcpp.out 2>&1; \ - $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then - echo "Yup, it does." - x_cpp="$cc -E" - x_minus=''; -elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \ - $cc -E - testcpp.out 2>&1; \ - $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then - echo "Yup, it does." - x_cpp="$cc -E" - x_minus='-'; -elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \ - $cc -P testcpp.out 2>&1; \ - $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then - echo "Yipee, that works!" - x_cpp="$cc -P" - x_minus=''; -elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \ - $cc -P - testcpp.out 2>&1; \ - $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then - echo "At long last!" - x_cpp="$cc -P" - x_minus='-'; -elif echo 'No such luck, maybe "'$cpp'" will work...'; \ - $cpp testcpp.out 2>&1; \ - $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then - echo "It works!" - x_cpp="$cpp" - x_minus=''; -elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \ - $cpp - testcpp.out 2>&1; \ - $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then - echo "Hooray, it works! I was beginning to wonder." - x_cpp="$cpp" - x_minus='-'; -elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \ - $wrapper testcpp.out 2>&1; \ - $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then - x_cpp="$wrapper" - x_minus='' - echo "Eureka!" -else - dflt='' - rp="No dice. I can't find a C preprocessor. Name one:" - . ./myread - x_cpp="$ans" - x_minus='' - $x_cpp testcpp.out 2>&1 - if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then - echo "OK, that will do." >&4 - else -echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4 - exit 1 - fi -fi - -case "$ok" in -false) - cppstdin="$x_cpp" - cppminus="$x_minus" - cpprun="$x_cpp" - cpplast="$x_minus" - set X $x_cpp - shift - case "$1" in - "$cpp") - echo "Perhaps can we force $cc -E using a wrapper..." - if $wrapper testcpp.out 2>&1; \ - $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 - then - echo "Yup, we can." - cppstdin="$wrapper" - cppminus=''; - else - echo "Nope, we'll have to live without it..." - fi - ;; - esac - case "$cpprun" in - "$wrapper") - cpprun='' - cpplast='' - ;; - esac - ;; -esac - -case "$cppstdin" in -"$wrapper"|'cppstdin') ;; -*) $rm -f $wrapper;; +# gcc 3.1 complains about adding -Idirectories that it already knows about, +# so we will take those off from locincpth. +case "$gccversion" in +3*) + echo "main(){}">try.c + for incdir in `$cc -v -c try.c 2>&1 | \ + sed '1,/^#include <\.\.\.>/d;/^End of search list/,$d;s/^ //'` ; do + locincpth=`echo $locincpth | sed s!$incdir!!` + done + $rm -f try try.* esac -$rm -f testcpp.c testcpp.out : decide how portable to be. Allow command line overrides. case "$d_portable" in @@ -3431,7 +3930,9 @@ esac case "$fn" in *\(*) - expr $fn : '.*(\(.*\)).*' | $tr ',' $trnl >getfile.ok + : getfile will accept an answer from the comma-separated list + : enclosed in parentheses even if it does not meet other criteria. + expr "$fn" : '.*(\(.*\)).*' | $tr ',' $trnl >getfile.ok fn=`echo $fn | sed 's/(.*)//'` ;; esac @@ -3691,95 +4192,243 @@ y) fn=d/ ;; esac -: Set private lib path -case "$plibpth" in -'') if ./mips; then - plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib" - fi;; -esac -case "$libpth" in -' ') dlist='';; -'') dlist="$loclibpth $plibpth $glibpth";; -*) dlist="$libpth";; -esac - -: Now check and see which directories actually exist, avoiding duplicates -libpth='' -for xxx in $dlist -do - if $test -d $xxx; then - case " $libpth " in - *" $xxx "*) ;; - *) libpth="$libpth $xxx";; - esac - fi -done -$cat <<'EOM' - -Some systems have incompatible or broken versions of libraries. Among -the directories listed in the question below, please remove any you -know not to be holding relevant libraries, and add any that are needed. -Say "none" for none. - -EOM -case "$libpth" in -'') dflt='none';; -*) - set X $libpth - shift - dflt=${1+"$@"} - ;; -esac -rp="Directories to use for library searches?" -. ./myread -case "$ans" in -none) libpth=' ';; -*) libpth="$ans";; -esac - -: compute shared library extension -case "$so" in -'') - if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then - dflt='sl' +: see how we invoke the C preprocessor +echo " " +echo "Now, how can we feed standard input to your C preprocessor..." >&4 +cat <<'EOT' >testcpp.c +#define ABC abc +#define XYZ xyz +ABC.XYZ +EOT +cd .. +if test ! -f cppstdin; then + if test "X$osname" = "Xaix" -a "X$gccversion" = X; then + # AIX cc -E doesn't show the absolute headerfile + # locations but we'll cheat by using the -M flag. + echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin else - dflt='so' + echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin fi - ;; -*) dflt="$so";; -esac -$cat <testcpp.out 2>&1 && \ + $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 +then + echo "You used to use $cppstdin $cppminus so we'll use that again." + case "$cpprun" in + '') echo "But let's see if we can live without a wrapper..." ;; + *) + if $cpprun $cpplast testcpp.out 2>&1 && \ + $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 + then + echo "(And we'll use $cpprun $cpplast to preprocess directly.)" + ok='true' + else + echo "(However, $cpprun $cpplast does not work, let's see...)" + fi + ;; esac - ;; -esac -case "$_a" in -'') case "$lib_ext" in - '') _a='.a';; - *) _a="$lib_ext" ;; +else + case "$cppstdin" in + '') ;; + *) + echo "Good old $cppstdin $cppminus does not seem to be of any help..." + ;; esac - ;; -esac -case "$_o" in -'') case "$obj_ext" in - '') _o='.o';; +fi + +if $ok; then + : nothing +elif echo 'Maybe "'"$cc"' -E" will work...'; \ + $cc -E testcpp.out 2>&1; \ + $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then + echo "Yup, it does." + x_cpp="$cc -E" + x_minus=''; +elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \ + $cc -E - testcpp.out 2>&1; \ + $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then + echo "Yup, it does." + x_cpp="$cc -E" + x_minus='-'; +elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \ + $cc -P testcpp.out 2>&1; \ + $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then + echo "Yipee, that works!" + x_cpp="$cc -P" + x_minus=''; +elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \ + $cc -P - testcpp.out 2>&1; \ + $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then + echo "At long last!" + x_cpp="$cc -P" + x_minus='-'; +elif echo 'No such luck, maybe "'$cpp'" will work...'; \ + $cpp testcpp.out 2>&1; \ + $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then + echo "It works!" + x_cpp="$cpp" + x_minus=''; +elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \ + $cpp - testcpp.out 2>&1; \ + $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then + echo "Hooray, it works! I was beginning to wonder." + x_cpp="$cpp" + x_minus='-'; +elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \ + $wrapper testcpp.out 2>&1; \ + $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then + x_cpp="$wrapper" + x_minus='' + echo "Eureka!" +else + dflt='' + rp="No dice. I can't find a C preprocessor. Name one:" + . ./myread + x_cpp="$ans" + x_minus='' + $x_cpp testcpp.out 2>&1 + if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then + echo "OK, that will do." >&4 + else +echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4 + exit 1 + fi +fi + +case "$ok" in +false) + cppstdin="$x_cpp" + cppminus="$x_minus" + cpprun="$x_cpp" + cpplast="$x_minus" + set X $x_cpp + shift + case "$1" in + "$cpp") + echo "Perhaps can we force $cc -E using a wrapper..." + if $wrapper testcpp.out 2>&1; \ + $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 + then + echo "Yup, we can." + cppstdin="$wrapper" + cppminus=''; + else + echo "Nope, we'll have to live without it..." + fi + ;; + esac + case "$cpprun" in + "$wrapper") + cpprun='' + cpplast='' + ;; + esac + ;; +esac + +case "$cppstdin" in +"$wrapper"|'cppstdin') ;; +*) $rm -f $wrapper;; +esac +$rm -f testcpp.c testcpp.out + +: Set private lib path +case "$plibpth" in +'') if ./mips; then + plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib" + fi;; +esac +case "$libpth" in +' ') dlist='';; +'') dlist="$loclibpth $plibpth $glibpth";; +*) dlist="$libpth";; +esac + +: Now check and see which directories actually exist, avoiding duplicates +libpth='' +for xxx in $dlist +do + if $test -d $xxx; then + case " $libpth " in + *" $xxx "*) ;; + *) libpth="$libpth $xxx";; + esac + fi +done +$cat <<'EOM' + +Some systems have incompatible or broken versions of libraries. Among +the directories listed in the question below, please remove any you +know not to be holding relevant libraries, and add any that are needed. +Say "none" for none. + +EOM +case "$libpth" in +'') dflt='none';; +*) + set X $libpth + shift + dflt=${1+"$@"} + ;; +esac +rp="Directories to use for library searches?" +. ./myread +case "$ans" in +none) libpth=' ';; +*) libpth="$ans";; +esac + +: compute shared library extension +case "$so" in +'') + if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then + dflt='sl' + else + dflt='so' + fi + ;; +*) dflt="$so";; +esac +$cat <&4 @@ -3850,7 +4474,7 @@ for thislib in $libswanted; do for thisdir in $libspath; do xxx='' if $test ! -f "$xxx" -a "X$ignore_versioned_solibs" = "X"; then - xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|tail -1` + xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|sed -n '$p'` $test -f "$xxx" && eval $libscheck $test -f "$xxx" && libstyle=shared fi @@ -4188,15 +4812,15 @@ $cat >> try.msg <>try.msg 2>&1; then - if $sh -c './try' >>try.msg 2>&1; then - xxx=`./try` + if $sh -c "$run ./try" >>try.msg 2>&1; then + xxx=`$run ./try` case "$xxx" in "Ok") dflt=n ;; *) echo 'The program compiled OK, but produced no output.' >> try.msg @@ -4246,79 +4870,23 @@ n) echo "OK, that should do.";; esac $rm -f try try.* core -: define an is-a-typedef? function -typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@; -case "$inclist" in -"") inclist="sys/types.h";; -esac; -eval "varval=\$$var"; -case "$varval" in -"") - $rm -f temp.c; - for inc in $inclist; do - echo "#include <$inc>" >>temp.c; - done; - echo "#ifdef $type" >> temp.c; - echo "printf(\"We have $type\");" >> temp.c; - echo "#endif" >> temp.c; - $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null; - if $contains $type temp.E >/dev/null 2>&1; then - eval "$var=\$type"; - else - eval "$var=\$def"; - fi; - $rm -f temp.?;; -*) eval "$var=\$varval";; -esac' - -: define an is-a-typedef? function that prompts if the type is not available. -typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@; -case "$inclist" in -"") inclist="sys/types.h";; -esac; -eval "varval=\$$var"; -case "$varval" in -"") - $rm -f temp.c; - for inc in $inclist; do - echo "#include <$inc>" >>temp.c; - done; - echo "#ifdef $type" >> temp.c; - echo "printf(\"We have $type\");" >> temp.c; - echo "#endif" >> temp.c; - $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null; - echo " " ; - echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./"; - if $contains $type temp.E >/dev/null 2>&1; then - echo "$type found." >&4; - eval "$var=\$type"; - else - echo "$type NOT found." >&4; - dflt="$def"; - . ./myread ; - eval "$var=\$ans"; - fi; - $rm -f temp.?;; -*) eval "$var=\$varval";; -esac' - -: define a shorthand compile call -compile=' -mc_file=$1; -shift; -$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=' -mc_file=$1; -shift; -$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs;' +: define a shorthand compile call +compile=' +mc_file=$1; +shift; +$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=' +mc_file=$1; +shift; +$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs;' : check for lengths of integral types echo " " case "$intsize" in '') echo "Checking to see how big your integers are..." >&4 - $cat >intsize.c <<'EOCP' + $cat >try.c <<'EOCP' #include int main() { @@ -4328,9 +4896,9 @@ int main() exit(0); } EOCP - set intsize - if eval $compile_ok && ./intsize > /dev/null; then - eval `./intsize` + set try + if eval $compile_ok && $run ./try > /dev/null; then + eval `$run ./try` echo "Your integers are $intsize bytes long." echo "Your long integers are $longsize bytes long." echo "Your short integers are $shortsize bytes long." @@ -4357,492 +4925,186 @@ EOM fi ;; esac -$rm -f intsize intsize.* - -: see what type lseek is declared as in the kernel -rp="What is the type used for lseek's offset on this system?" -set off_t lseektype long stdio.h sys/types.h -eval $typedef_ask +$rm -f try try.* +: check for long long echo " " -echo "Checking to see how big your file offsets are..." >&4 -$cat >try.c < +echo "Checking to see if you have long long..." >&4 +echo 'int main() { long long x = 7; return 0; }' > try.c +set try +if eval $compile; then + val="$define" + echo "You have long long." +else + val="$undef" + echo "You do not have long long." +fi +$rm try.* +set d_longlong +eval $setvar + +: check for length of long long +case "${d_longlong}${longlongsize}" in +$define) + echo " " + echo "Checking to see how big your long longs are..." >&4 + $cat >try.c <<'EOCP' #include int main() { - printf("%d\n", (int)sizeof($lseektype)); - return(0); + printf("%d\n", (int)sizeof(long long)); + return(0); } EOCP -set try -if eval $compile_ok; then - lseeksize=`./try` - echo "Your file offsets are $lseeksize bytes long." -else - dflt=$longsize - echo " " - echo "(I can't seem to compile the test program. Guessing...)" - rp="What is the size of your file offsets (in bytes)?" - . ./myread - lseeksize="$ans" + set try + if eval $compile_ok; then + longlongsize=`$run ./try` + echo "Your long longs are $longlongsize bytes long." + else + dflt='8' + echo " " + echo "(I can't seem to compile the test program. Guessing...)" + rp="What is the size of a long long (in bytes)?" + . ./myread + longlongsize="$ans" + fi + if $test "X$longsize" = "X$longlongsize"; then + echo "(That isn't any different from an ordinary long.)" + fi + ;; +esac +$rm -f try.* try + +: determine filename position in cpp output +echo " " +echo "Computing filename position in cpp output for #include directives..." >&4 +case "$osname" in +vos) testaccess=-e ;; +*) testaccess=-r ;; +esac +echo '#include ' > foo.c +$cat >fieldn </dev/null | \ +$grep '^[ ]*#.*stdio\.h' | \ +while read cline; do + pos=1 + set \$cline + while $test \$# -gt 0; do + if $test $testaccess \`echo \$1 | $tr -d '"'\`; then + echo "\$pos" + exit 0 + fi + shift + pos=\`expr \$pos + 1\` + done +done +EOF +chmod +x fieldn +fieldn=`./fieldn` +$rm -f foo.c fieldn +case $fieldn in +'') pos='???';; +1) pos=first;; +2) pos=second;; +3) pos=third;; +*) pos="${fieldn}th";; +esac +echo "Your cpp writes the filename in the $pos field of the line." + +case "$osname" in +vos) cppfilter="tr '\\\\>' '/' |" ;; # path component separator is > +*) cppfilter='' ;; +esac +: locate header file +$cat >findhdr <" > foo\$\$.c +$cppstdin $cppminus $cppflags < foo\$\$.c 2>/dev/null | \ +$cppfilter $grep "^[ ]*#.*\$wanted" | \ +while read cline; do + name=\`echo \$cline | $awk "\$awkprg" | $tr -d '"'\` + case "\$name" in + *[/\\\\]\$wanted) echo "\$name"; exit 1;; + *[\\\\/]\$wanted) echo "\$name"; exit 1;; + *) exit 2;; + esac; +done; +# +# status = 0: grep returned 0 lines, case statement not executed +# status = 1: headerfile found +# status = 2: while loop executed, no headerfile found +# +status=\$? +$rm -f foo\$\$.c; +if test \$status -eq 1; then + exit 0; fi -$rm -f try.c try +exit 1 +EOF +chmod +x findhdr -: see what type file positions are declared as in the library -rp="What is the type for file position used by fsetpos()?" -set fpos_t fpostype long stdio.h sys/types.h -eval $typedef_ask +: define an alternate in-header-list? function +inhdr='echo " "; td=$define; tu=$undef; yyy=$@; +cont=true; xxf="echo \"<\$1> found.\" >&4"; +case $# in 2) xxnf="echo \"<\$1> NOT found.\" >&4";; +*) xxnf="echo \"<\$1> NOT found, ...\" >&4";; +esac; +case $# in 4) instead=instead;; *) instead="at last";; esac; +while $test "$cont"; do + xxx=`./findhdr $1` + var=$2; eval "was=\$$2"; + if $test "$xxx" && $test -r "$xxx"; + then eval $xxf; + eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td"; + cont=""; + else eval $xxnf; + eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi; + set $yyy; shift; shift; yyy=$@; + case $# in 0) cont="";; + 2) xxf="echo \"but I found <\$1> $instead.\" >&4"; + xxnf="echo \"and I did not find <\$1> either.\" >&4";; + *) xxf="echo \"but I found <\$1\> instead.\" >&4"; + xxnf="echo \"there is no <\$1>, ...\" >&4";; + esac; +done; +while $test "$yyy"; +do set $yyy; var=$2; eval "was=\$$2"; + eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; + set $yyy; shift; shift; yyy=$@; +done' +: see if inttypes.h is available +: we want a real compile instead of Inhdr because some systems +: have an inttypes.h which includes non-existent headers echo " " -case "$fpostype" in -*_t) zzz="$fpostype" ;; -*) zzz="fpos_t" ;; -esac -echo "Checking the size of $zzz..." >&4 -cat > try.c < -#include +$cat >try.c < int main() { - printf("%d\n", (int)sizeof($fpostype)); - exit(0); + static int32_t foo32 = 0x12345678; } EOCP set try -if eval $compile_ok; then - yyy=`./try` - case "$yyy" in - '') fpossize=4 - echo "(I can't execute the test program--guessing $fpossize.)" >&4 - ;; - *) fpossize=$yyy - echo "Your $zzz is $fpossize bytes long." - ;; - esac +if eval $compile; then + echo " found." >&4 + val="$define" else - dflt="$longsize" - echo " " >&4 - echo "(I can't compile the test program. Guessing...)" >&4 - rp="What is the size of your file positions (in bytes)?" - . ./myread - fpossize="$ans" + echo " NOT found." >&4 + val="$undef" fi - - - -# Backward compatibility (uselfs is deprecated). -case "$uselfs" in -"$define"|true|[yY]*) - cat <&4 - -*** Configure -Duselfs is deprecated, using -Duselargefiles instead. -EOM - uselargefiles="$define" - ;; -esac - -case "$lseeksize:$fpossize" in -8:8) cat <&4 - $cat >try.c < -#include -int main() -{ - printf("%d\n", (int)sizeof($lseektype)); - return(0); -} -EOCP - set try - if eval $compile_ok; then - lseeksize=`./try` - $echo "Your file offsets are now $lseeksize bytes long." - else - dflt="$lseeksize" - echo " " - echo "(I can't seem to compile the test program. Guessing...)" - rp="What is the size of your file offsets (in bytes)?" - . ./myread - lseeksize="$ans" - fi - case "$fpostype" in - *_t) zzz="$fpostype" ;; - *) zzz="fpos_t" ;; - esac - $echo $n "Rechecking the size of $zzz...$c" >&4 - $cat > try.c < -#include -int main() { - printf("%d\n", (int)sizeof($fpostype)); - exit(0); -} -EOCP - set try - if eval $compile_ok; then - yyy=`./try` - dflt="$lseeksize" - case "$yyy" in - '') echo " " - echo "(I can't execute the test program--guessing $fpossize.)" >&4 - ;; - *) fpossize=$yyy - echo " $fpossize bytes." >&4 - ;; - esac - else - dflt="$fpossize" - echo " " - echo "(I can't compile the test program. Guessing...)" >&4 - rp="What is the size of your file positions (in bytes)?" - . ./myread - fpossize="$ans" - fi - $rm -f try.c try - fi - ;; -esac - - -case "$usemorebits" in -"$define"|true|[yY]*) - use64bitint="$define" - uselongdouble="$define" - usemorebits="$define" - ;; -*) usemorebits="$undef" - ;; -esac - -: check for void type -echo " " -echo "Checking to see how well your C compiler groks the void type..." >&4 -case "$voidflags" in -'') - $cat >try.c <<'EOCP' -#if TRY & 1 -void sub() { -#else -sub() { -#endif - extern void moo(); /* function returning void */ - void (*goo)(); /* ptr to func returning void */ -#if TRY & 8 - void *hue; /* generic ptr */ -#endif -#if TRY & 2 - void (*foo[10])(); -#endif - -#if TRY & 4 - if(goo == moo) { - exit(0); - } -#endif - exit(0); -} -int main() { sub(); } -EOCP - if $cc $ccflags -c -DTRY=$defvoidused try.c >.out 2>&1 ; then - voidflags=$defvoidused - echo "Good. It appears to support void to the level $package wants.">&4 - if $contains warning .out >/dev/null 2>&1; then - echo "However, you might get some warnings that look like this:" - $cat .out - fi - else -echo "Hmm, your compiler has some difficulty with void. Checking further..." >&4 - if $cc $ccflags -c -DTRY=1 try.c >/dev/null 2>&1; then - echo "It supports 1..." - if $cc $ccflags -c -DTRY=3 try.c >/dev/null 2>&1; then - echo "It also supports 2..." - if $cc $ccflags -c -DTRY=7 try.c >/dev/null 2>&1; then - voidflags=7 - echo "And it supports 4 but not 8 definitely." - else - echo "It doesn't support 4..." - if $cc $ccflags -c -DTRY=11 try.c >/dev/null 2>&1; then - voidflags=11 - echo "But it supports 8." - else - voidflags=3 - echo "Neither does it support 8." - fi - fi - else - echo "It does not support 2..." - if $cc $ccflags -c -DTRY=13 try.c >/dev/null 2>&1; then - voidflags=13 - echo "But it supports 4 and 8." - else - if $cc $ccflags -c -DTRY=5 try.c >/dev/null 2>&1; then - voidflags=5 - echo "And it supports 4 but has not heard about 8." - else - echo "However it supports 8 but not 4." - fi - fi - fi - else - echo "There is no support at all for void." - voidflags=0 - fi - fi -esac -case "$voidflags" in -"$defvoidused") ;; -*) $cat >&4 <<'EOM' - Support flag bits are: - 1: basic void declarations. - 2: arrays of pointers to functions returning void. - 4: operations between pointers to and addresses of void functions. - 8: generic void pointers. -EOM - dflt="$voidflags"; - rp="Your void support flags add up to what?" - . ./myread - voidflags="$ans" - ;; -esac -$rm -f try.* .out - -: check for length of pointer -echo " " -case "$ptrsize" in -'') - echo "Checking to see how big your pointers are..." >&4 - if test "$voidflags" -gt 7; then - echo '#define VOID_PTR char *' > try.c - else - echo '#define VOID_PTR void *' > try.c - fi - $cat >>try.c <<'EOCP' -#include -int main() -{ - printf("%d\n", (int)sizeof(VOID_PTR)); - exit(0); -} -EOCP - set try - if eval $compile_ok; then - ptrsize=`./try` - echo "Your pointers are $ptrsize bytes long." - else - dflt='4' - echo "(I can't seem to compile the test program. Guessing...)" >&4 - rp="What is the size of a pointer (in bytes)?" - . ./myread - ptrsize="$ans" - fi - ;; -esac -$rm -f try.c try - -: check for long long -echo " " -echo "Checking to see if you have long long..." >&4 -echo 'int main() { long long x = 7; return 0; }' > try.c -set try -if eval $compile; then - val="$define" - echo "You have long long." -else - val="$undef" - echo "You do not have long long." -fi -$rm try.* -set d_longlong -eval $setvar - -: check for length of long long -case "${d_longlong}${longlongsize}" in -$define) - echo " " - echo "Checking to see how big your long longs are..." >&4 - $cat >try.c <<'EOCP' -#include -int main() -{ - printf("%d\n", (int)sizeof(long long)); - return(0); -} -EOCP - set try - if eval $compile_ok; then - longlongsize=`./try$exe_ext` - echo "Your long longs are $longlongsize bytes long." - else - dflt='8' - echo " " - echo "(I can't seem to compile the test program. Guessing...)" - rp="What is the size of a long long (in bytes)?" - . ./myread - longlongsize="$ans" - fi - if $test "X$longsize" = "X$longlongsize"; then - echo "(That isn't any different from an ordinary long.)" - fi - ;; -esac -$rm -f try.* try - -: determine filename position in cpp output -echo " " -echo "Computing filename position in cpp output for #include directives..." >&4 -echo '#include ' > foo.c -$cat >fieldn </dev/null | \ -$grep '^[ ]*#.*stdio\.h' | \ -while read cline; do - pos=1 - set \$cline - while $test \$# -gt 0; do - if $test -r \`echo \$1 | $tr -d '"'\`; then - echo "\$pos" - exit 0 - fi - shift - pos=\`expr \$pos + 1\` - done -done -EOF -chmod +x fieldn -fieldn=`./fieldn` -$rm -f foo.c fieldn -case $fieldn in -'') pos='???';; -1) pos=first;; -2) pos=second;; -3) pos=third;; -*) pos="${fieldn}th";; -esac -echo "Your cpp writes the filename in the $pos field of the line." - -: locate header file -$cat >findhdr <" > foo\$\$.c -$cppstdin $cppminus $cppflags < foo\$\$.c 2>/dev/null | \ -$grep "^[ ]*#.*\$wanted" | \ -while read cline; do - name=\`echo \$cline | $awk "\$awkprg" | $tr -d '"'\` - case "\$name" in - *[/\\\\]\$wanted) echo "\$name"; exit 1;; - *[\\\\/]\$wanted) echo "\$name"; exit 1;; - *) exit 2;; - esac; -done; -# -# status = 0: grep returned 0 lines, case statement not executed -# status = 1: headerfile found -# status = 2: while loop executed, no headerfile found -# -status=\$? -$rm -f foo\$\$.c; -if test \$status -eq 1; then - exit 0; -fi -exit 1 -EOF -chmod +x findhdr - -: define an alternate in-header-list? function -inhdr='echo " "; td=$define; tu=$undef; yyy=$@; -cont=true; xxf="echo \"<\$1> found.\" >&4"; -case $# in 2) xxnf="echo \"<\$1> NOT found.\" >&4";; -*) xxnf="echo \"<\$1> NOT found, ...\" >&4";; -esac; -case $# in 4) instead=instead;; *) instead="at last";; esac; -while $test "$cont"; do - xxx=`./findhdr $1` - var=$2; eval "was=\$$2"; - if $test "$xxx" && $test -r "$xxx"; - then eval $xxf; - eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td"; - cont=""; - else eval $xxnf; - eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi; - set $yyy; shift; shift; yyy=$@; - case $# in 0) cont="";; - 2) xxf="echo \"but I found <\$1> $instead.\" >&4"; - xxnf="echo \"and I did not find <\$1> either.\" >&4";; - *) xxf="echo \"but I found <\$1\> instead.\" >&4"; - xxnf="echo \"there is no <\$1>, ...\" >&4";; - esac; -done; -while $test "$yyy"; -do set $yyy; var=$2; eval "was=\$$2"; - eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; - set $yyy; shift; shift; yyy=$@; -done' - -: see if inttypes.h is available -: we want a real compile instead of Inhdr because some systems -: have an inttypes.h which includes non-existent headers -echo " " -$cat >try.c < -int main() { - static int32_t foo32 = 0x12345678; -} -EOCP -set try -if eval $compile; then - echo " found." >&4 - val="$define" -else - echo " NOT found." >&4 - val="$undef" -fi -$rm -f try.c try -set i_inttypes -eval $setvar +$rm -f try.c try +set i_inttypes +eval $setvar : check for int64_t echo " " @@ -5064,31 +5326,6 @@ EOM ;; esac -case "$use64bitall" in -"$define"|true|[yY]*) - case "$ptrsize" in - 4) cat <&4 - -*** You have chosen a maximally 64-bit build, but your pointers -*** are only 4 bytes wide, disabling maximal 64-bitness. - -EOM - use64bitall="$undef" - case "$use64bitint" in - "$define"|true|[yY]*) ;; - *) cat <&4 - -*** Downgrading from maximal 64-bitness to using 64-bit integers. - -EOM - use64bitint="$define" - ;; - esac - ;; - esac - ;; -esac - case "$use64bitint" in "$define"|true|[yY]*) : Look for a hint-file generated 'call-back-unit'. If the @@ -5127,26 +5364,43 @@ esac echo " " echo "Checking for GNU C Library..." >&4 -cat >gnulibc.c <try.c <<'EOCP' +/* Find out version of GNU C library. __GLIBC__ and __GLIBC_MINOR__ + alone are insufficient to distinguish different versions, such as + 2.0.6 and 2.0.7. The function gnu_get_libc_version() appeared in + libc version 2.1.0. A. Dougherty, June 3, 2002. +*/ #include -int main() +int main(void) { #ifdef __GLIBC__ - exit(0); +# ifdef __GLIBC_MINOR__ +# if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1 +# include + printf("%s\n", gnu_get_libc_version()); +# else + printf("%d.%d\n", __GLIBC__, __GLIBC_MINOR__); +# endif +# else + printf("%d\n", __GLIBC__); +# endif + return 0; #else - exit(1); + return 1; #endif } -EOM -set gnulibc -if eval $compile_ok && ./gnulibc; then +EOCP +set try +if eval $compile_ok && $run ./try > glibc.ver; then val="$define" - echo "You are using the GNU C Library" + gnulibc_version=`$cat glibc.ver` + echo "You are using the GNU C Library version $gnulibc_version" else val="$undef" + gnulibc_version='' echo "You are not using the GNU C Library" fi -$rm -f gnulibc* +$rm -f try try.* glibc.ver set d_gnulibc eval $setvar @@ -5252,7 +5506,6 @@ case "$libc" in esac ;; esac -libnames=''; case "$libs" in '') ;; *) for thislib in $libs; do @@ -5400,7 +5653,7 @@ done >libc.tmp $echo $n ".$c" $grep fprintf libc.tmp > libc.ptf xscan='eval "libc.list"; $echo $n ".$c" >&4' -xrun='eval "libc.list"; echo "done" >&4' +xrun='eval "libc.list"; echo "done." >&4' xxx='[ADTSIW]' if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx *_[_.]*//p' -e 's/^.* $xxx *//p'";\ eval $xscan;\ @@ -5514,7 +5767,7 @@ nm_extract="$com" 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 @@ -5587,63 +5840,6 @@ esac' set sqrtl d_sqrtl eval $inlibc -case "$ccflags" in -*-DUSE_LONG_DOUBLE*|*-DUSE_MORE_BITS*) uselongdouble="$define" ;; -esac - -case "$uselongdouble" in -$define|true|[yY]*) dflt='y';; -*) dflt='n';; -esac -cat <&4 - -*** You requested the use of long doubles but you do not seem to have -*** the mathematic functions for long doubles. I'm disabling the use -*** of long doubles. - -EOM - uselongdouble=$undef - ;; -esac - : check for length of double echo " " case "$doublesize" in @@ -5659,7 +5855,7 @@ int main() EOCP set try if eval $compile_ok; then - doublesize=`./try` + doublesize=`$run ./try` echo "Your double is $doublesize bytes long." else dflt='8' @@ -5703,7 +5899,7 @@ EOCP set try set try if eval $compile; then - longdblsize=`./try$exe_ext` + longdblsize=`$run ./try` echo "Your long doubles are $longdblsize bytes long." else dflt='8' @@ -5720,51 +5916,253 @@ EOCP esac $rm -f try.* try -case "$useperlio" in -$define|true|[yY]*|'') dflt='y';; +echo " " + +if $test X"$d_longdbl" = X"$define"; then + +echo "Checking how to print long doubles..." >&4 + +if $test X"$sPRIfldbl" = X -a X"$doublesize" = X"$longdblsize"; then + $cat >try.c <<'EOCP' +#include +#include +int main() { + double d = 123.456; + printf("%.3f\n", d); +} +EOCP + set try + if eval $compile; then + yyy=`$run ./try` + case "$yyy" in + 123.456) + sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"'; + sPRIFUldbl='"F"'; sPRIGUldbl='"G"'; sPRIEUldbl='"E"'; + echo "We will use %f." + ;; + esac + fi +fi + +if $test X"$sPRIfldbl" = X; then + $cat >try.c <<'EOCP' +#include +#include +int main() { + long double d = 123.456; + printf("%.3Lf\n", d); +} +EOCP + set try + if eval $compile; then + yyy=`$run ./try` + case "$yyy" in + 123.456) + sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"'; + sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"'; + echo "We will use %Lf." + ;; + esac + fi +fi + +if $test X"$sPRIfldbl" = X; then + $cat >try.c <<'EOCP' +#include +#include +int main() { + long double d = 123.456; + printf("%.3llf\n", d); +} +EOCP + set try + if eval $compile; then + yyy=`$run ./try` + case "$yyy" in + 123.456) + sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"'; + sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"'; + echo "We will use %llf." + ;; + esac + fi +fi + +if $test X"$sPRIfldbl" = X; then + $cat >try.c <<'EOCP' +#include +#include +int main() { + long double d = 123.456; + printf("%.3lf\n", d); +} +EOCP + set try + if eval $compile; then + yyy=`$run ./try` + case "$yyy" in + 123.456) + sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"'; + sPRIFUldbl='"lF"'; sPRIGUldbl='"lG"'; sPRIEUldbl='"lE"'; + echo "We will use %lf." + ;; + esac + fi +fi + +if $test X"$sPRIfldbl" = X; then + echo "Cannot figure out how to print long doubles." >&4 +else + sSCNfldbl=$sPRIfldbl # expect consistency +fi + +$rm -f try 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_SCNfldbl="$undef"; + ;; +*) d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define"; + d_PRIFUldbl="$define"; d_PRIGUldbl="$define"; d_PRIEUldbl="$define"; + d_SCNfldbl="$define"; + ;; +esac + +: see if modfl exists +set modfl d_modfl +eval $inlibc + +d_modfl_pow32_bug="$undef" + +case "$d_longdbl$d_modfl" in +$define$define) + $cat <try.c < +#include +int main() { + long double nv = 4294967303.15; + long double v, w; + v = modfl(nv, &w); +#ifdef __GLIBC__ + printf("glibc"); +#endif + printf(" %"$sPRIfldbl" %"$sPRIfldbl" %"$sPRIfldbl"\n", nv, v, w); + return 0; +} +EOCP + case "$osname:$gccversion" in + aix:) saveccflags="$ccflags" + ccflags="$ccflags -qlongdouble" ;; # to avoid core dump + esac + set try + if eval $compile; then + foo=`$run ./try` + case "$foo" in + *" 4294967303.150000 1.150000 4294967302.000000") + echo >&4 "Your modfl() is broken for large values." + d_modfl_pow32_bug="$define" + case "$foo" in + glibc) echo >&4 "You should upgrade your glibc to at least 2.2.2 to get a fixed modfl()." + ;; + esac + ;; + *" 4294967303.150000 0.150000 4294967303.000000") + echo >&4 "Your modfl() seems okay for large values." + ;; + *) echo >&4 "I don't understand your modfl() at all." + d_modfl="$undef" + ;; + esac + $rm -f try.* try core core.try.* + else + echo "I cannot figure out whether your modfl() is okay, assuming it isn't." + d_modfl="$undef" + fi + case "$osname:$gccversion" in + aix:) ccflags="$saveccflags" ;; # restore + esac + ;; +esac + +case "$ccflags" in +*-DUSE_LONG_DOUBLE*|*-DUSE_MORE_BITS*) uselongdouble="$define" ;; +esac + +case "$uselongdouble" in +$define|true|[yY]*) dflt='y';; *) dflt='n';; esac cat <. Versions 5.003_02 and later of $package allow -alternate IO mechanisms via the PerlIO abstraction layer, but the -stdio mechanism is still available if needed. The abstraction layer -can use AT&T's sfio (if you already have sfio installed) or regular stdio. -Using PerlIO with sfio may cause problems with some extension modules. +Perl can be built to take advantage of long doubles which +(if available) may give more accuracy and range for floating point numbers. If this doesn't make any sense to you, just accept the default '$dflt'. EOM -rp='Use the PerlIO abstraction layer?' +rp='Try to use long doubles if available?' . ./myread case "$ans" in -y|Y) - val="$define" +y|Y) val="$define" ;; +*) val="$undef" ;; +esac +set uselongdouble +eval $setvar + +case "$uselongdouble" in +true|[yY]*) uselongdouble="$define" ;; +esac + +case "$uselongdouble" in +$define) +: Look for a hint-file generated 'call-back-unit'. If the +: user has specified that long doubles should be used, +: we may need to set or change some other defaults. + if $test -f uselongdouble.cbu; then + echo "Your platform has some specific hints for long doubles, using them..." + . ./uselongdouble.cbu + else + $cat <&4 <&4 -You are using the SOCKS proxy protocol library which means that you -should also use the PerlIO layer. You may be headed for trouble. +*** You requested the use of long doubles but you do not seem to have +*** the mathematic functions for long doubles. +*** ($message) +*** I'm disabling the use of long doubles. EOM - ;; - esac - ;; -esac - + uselongdouble=$undef +fi + : determine the architecture name echo " " if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then @@ -5787,6 +6185,10 @@ case "$myarchname" in archname='' ;; esac +case "$targetarch" in +'') ;; +*) archname=`echo $targetarch|sed 's,^[^-]*-,,'` ;; +esac myarchname="$tarch" case "$archname" in '') dflt="$tarch";; @@ -5847,7 +6249,7 @@ $define) echo "Long doubles selected." >&4 case "$longdblsize" in $doublesize) - "...but long doubles are equal to doubles, not changing architecture name." >&4 + echo "...but long doubles are equal to doubles, not changing architecture name." >&4 ;; *) case "$archname" in @@ -5913,12 +6315,17 @@ esac prefix="$ans" prefixexp="$ansexp" +case "$afsroot" in +'') afsroot=/afs ;; +*) afsroot=$afsroot ;; +esac + : is AFS running? echo " " case "$afs" in $define|true) afs=true ;; $undef|false) afs=false ;; -*) if test -d /afs; then +*) if test -d $afsroot; then afs=true else afs=false @@ -5990,7 +6397,6 @@ prefixit='case "$3" in esac;; esac' - : get the patchlevel echo " " echo "Getting the current patchlevel..." >&4 @@ -6001,6 +6407,7 @@ if $test -r $rsrc/patchlevel.h;then 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=`grep ',"DEVEL[0-9][0-9]*"' $rsrc/patchlevel.h|sed 's/[^0-9]//g'` else revision=0 patchlevel=0 @@ -6008,8 +6415,23 @@ else api_revision=0 api_version=0 api_subversion=0 + perl_patchlevel=0 + $echo "(You do not have patchlevel.h. Eek.)" fi -$echo "(You have $package version $patchlevel subversion $subversion.)" +if $test -r $rsrc/.patch ; then + if $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. @@ -6120,45 +6542,6 @@ else installarchlib="$archlibexp" fi - -: Binary compatibility with 5.005 is not possible for builds -: with advanced features -case "$usethreads$usemultiplicity" in -*define*) - bincompat5005="$undef" - d_bincompat5005="$undef" - ;; -*) $cat <& 4 + echo "No need to emulate SUID scripts since they are secure here." >&4 ;; *) $cat <&4 +case "$voidflags" in +'') + $cat >try.c <<'EOCP' +#if TRY & 1 +void sub() { +#else +sub() { +#endif + extern void moo(); /* function returning void */ + void (*goo)(); /* ptr to func returning void */ +#if TRY & 8 + void *hue; /* generic ptr */ +#endif +#if TRY & 2 + void (*foo[10])(); +#endif + +#if TRY & 4 + if(goo == moo) { + exit(0); + } +#endif + exit(0); +} +int main() { sub(); } +EOCP + if $cc $ccflags -c -DTRY=$defvoidused try.c >.out 2>&1 ; then + voidflags=$defvoidused + echo "Good. It appears to support void to the level $package wants.">&4 + if $contains warning .out >/dev/null 2>&1; then + echo "However, you might get some warnings that look like this:" + $cat .out + fi + else +echo "Hmm, your compiler has some difficulty with void. Checking further..." >&4 + if $cc $ccflags -c -DTRY=1 try.c >/dev/null 2>&1; then + echo "It supports 1..." + if $cc $ccflags -c -DTRY=3 try.c >/dev/null 2>&1; then + echo "It also supports 2..." + if $cc $ccflags -c -DTRY=7 try.c >/dev/null 2>&1; then + voidflags=7 + echo "And it supports 4 but not 8 definitely." + else + echo "It doesn't support 4..." + if $cc $ccflags -c -DTRY=11 try.c >/dev/null 2>&1; then + voidflags=11 + echo "But it supports 8." + else + voidflags=3 + echo "Neither does it support 8." + fi + fi + else + echo "It does not support 2..." + if $cc $ccflags -c -DTRY=13 try.c >/dev/null 2>&1; then + voidflags=13 + echo "But it supports 4 and 8." + else + if $cc $ccflags -c -DTRY=5 try.c >/dev/null 2>&1; then + voidflags=5 + echo "And it supports 4 but has not heard about 8." + else + echo "However it supports 8 but not 4." + fi + fi + fi + else + echo "There is no support at all for void." + voidflags=0 + fi + fi +esac +case "$voidflags" in +"$defvoidused") ;; +*) $cat >&4 <<'EOM' + Support flag bits are: + 1: basic void declarations. + 2: arrays of pointers to functions returning void. + 4: operations between pointers to and addresses of void functions. + 8: generic void pointers. +EOM + dflt="$voidflags"; + rp="Your void support flags add up to what?" + . ./myread + voidflags="$ans" + ;; +esac +$rm -f try.* .out + +: check for length of pointer +echo " " +case "$ptrsize" in +'') + echo "Checking to see how big your pointers are..." >&4 + if test "$voidflags" -gt 7; then + echo '#define VOID_PTR char *' > try.c + else + echo '#define VOID_PTR void *' > try.c + fi + $cat >>try.c <<'EOCP' +#include +int main() +{ + printf("%d\n", (int)sizeof(VOID_PTR)); + exit(0); +} +EOCP + set try + if eval $compile_ok; then + ptrsize=`$run ./try` + echo "Your pointers are $ptrsize bytes long." + else + dflt='4' + echo "(I can't seem to compile the test program. Guessing...)" >&4 + rp="What is the size of a pointer (in bytes)?" + . ./myread + ptrsize="$ans" + fi + ;; +esac +$rm -f try.c try +case "$use64bitall" in +"$define"|true|[yY]*) + case "$ptrsize" in + 4) cat <&4 + +*** You have chosen a maximally 64-bit build, but your pointers +*** are only 4 bytes wide, disabling maximal 64-bitness. + +EOM + use64bitall="$undef" + case "$use64bitint" in + "$define"|true|[yY]*) ;; + *) cat <&4 + +*** Downgrading from maximal 64-bitness to using 64-bit integers. + +EOM + use64bitint="$define" + ;; + esac + ;; + esac + ;; +esac + + : determine which malloc to compile in echo " " case "$usemymalloc" in @@ -6676,16 +7209,68 @@ else installbin="$binexp" fi +echo " " +case "$extras" in +'') dflt='n';; +*) dflt='y';; +esac +cat < ../extras.lst + val="'$extras'" + ;; +esac +set extras +eval $setvar +echo " " + : Find perl5.005 or later. echo "Looking for a previously installed perl5.005 or later... " case "$perl5" in -'') for tdir in `echo "$binexp:$PATH" | $sed "s/$path_sep/ /g"`; do +'') for tdir in `echo "$binexp$path_sep$PATH" | $sed "s/$path_sep/ /g"`; do : Check if this perl is recent and can load a simple module - if $test -x $tdir/perl && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then + if $test -x $tdir/perl$exe_ext && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then perl5=$tdir/perl break; - elif $test -x $tdir/perl5 && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then - perl5=$tdir/perl + elif $test -x $tdir/perl5$exe_ext && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then + perl5=$tdir/perl5 break; fi done @@ -6750,26 +7335,22 @@ else { EOPL chmod +x getverlist case "$inc_version_list" in -'') if test -x "$perl5"; then +'') if test -x "$perl5$exe_ext"; then dflt=`$perl5 getverlist` else dflt='none' fi ;; $undef) dflt='none' ;; -*) dflt="$inc_version_list" ;; +*) eval dflt=\"$inc_version_list\" ;; esac case "$dflt" in ''|' ') dflt=none ;; esac case "$dflt" in -5.005) case "$bincompat5005" in - $define|true|[yY]*) ;; - *) dflt=none ;; - esac - ;; +5.005) dflt=none ;; esac -$cat <<'EOM' +$cat </dev/null 2>&1 && ./a.out; then + if $cc $ccflags $ldflags try.c >/dev/null 2>&1 && $run ./a.out; then cat <&4 +: see what type lseek is declared as in the kernel +rp="What is the type used for lseek's offset on this system?" +set off_t lseektype long stdio.h sys/types.h +eval $typedef_ask -if $test X"$sPRIfldbl" = X -a X"$doublesize" = X"$longdblsize"; then - $cat >try.c <<'EOCP' +echo " " +echo "Checking to see how big your file offsets are..." >&4 +$cat >try.c < #include -int main() { - double d = 123.456; - printf("%.3f\n", d); +int main() +{ + printf("%d\n", (int)sizeof($lseektype)); + return(0); } EOCP - set try - if eval $compile; then - yyy=`./try$exe_ext` - case "$yyy" in - 123.456) - sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"'; - sPRIFUldbl='"F"'; sPRIGUldbl='"G"'; sPRIEUldbl='"E"'; - echo "We will use %f." - ;; - esac - fi +set try +if eval $compile_ok; then + lseeksize=`$run ./try` + echo "Your file offsets are $lseeksize bytes long." +else + dflt=$longsize + echo " " + echo "(I can't seem to compile the test program. Guessing...)" + rp="What is the size of your file offsets (in bytes)?" + . ./myread + lseeksize="$ans" fi +$rm -f try.c try -if $test X"$sPRIfldbl" = X; then - $cat >try.c <<'EOCP' +: see what type file positions are declared as in the library +rp="What is the type for file position used by fsetpos()?" +set fpos_t fpostype long stdio.h sys/types.h +eval $typedef_ask + +echo " " +case "$fpostype" in +*_t) zzz="$fpostype" ;; +*) zzz="fpos_t" ;; +esac +echo "Checking the size of $zzz..." >&4 +cat > try.c < #include int main() { - long double d = 123.456; - printf("%.3llf\n", d); + printf("%d\n", (int)sizeof($fpostype)); + exit(0); } EOCP - set try - if eval $compile; then - yyy=`./try$exe_ext` - case "$yyy" in - 123.456) - sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"'; - sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"'; - echo "We will use %llf." - ;; - esac - fi +set try +if eval $compile_ok; then + yyy=`$run ./try` + case "$yyy" in + '') fpossize=4 + echo "(I can't execute the test program--guessing $fpossize.)" >&4 + ;; + *) fpossize=$yyy + echo "Your $zzz is $fpossize bytes long." + ;; + esac +else + dflt="$longsize" + echo " " >&4 + echo "(I can't compile the test program. Guessing...)" >&4 + rp="What is the size of your file positions (in bytes)?" + . ./myread + fpossize="$ans" fi -if $test X"$sPRIfldbl" = X; then - $cat >try.c <<'EOCP' + + +# Backward compatibility (uselfs is deprecated). +case "$uselfs" in +"$define"|true|[yY]*) + cat <&4 + +*** Configure -Duselfs is deprecated, using -Duselargefiles instead. +EOM + uselargefiles="$define" + ;; +esac + +case "$lseeksize:$fpossize" in +8:8) cat <&4 + $cat >try.c < #include -int main() { - long double d = 123.456; - printf("%.3Lf\n", d); +int main() +{ + printf("%d\n", (int)sizeof($lseektype)); + return(0); } EOCP - set try - if eval $compile; then - yyy=`./try$exe_ext` - case "$yyy" in - 123.456) - sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"'; - sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"'; - echo "We will use %Lf." - ;; + set try + if eval $compile_ok; then + lseeksize=`$run ./try` + $echo "Your file offsets are now $lseeksize bytes long." + else + dflt="$lseeksize" + echo " " + echo "(I can't seem to compile the test program. Guessing...)" + rp="What is the size of your file offsets (in bytes)?" + . ./myread + lseeksize="$ans" + fi + case "$fpostype" in + *_t) zzz="$fpostype" ;; + *) zzz="fpos_t" ;; esac - fi -fi - -if $test X"$sPRIfldbl" = X; then - $cat >try.c <<'EOCP' + $echo $n "Rechecking the size of $zzz...$c" >&4 + $cat > try.c < #include int main() { - long double d = 123.456; - printf("%.3lf\n", d); + printf("%d\n", (int)sizeof($fpostype)); + exit(0); } EOCP - set try - if eval $compile; then - yyy=`./try$exe_ext` - case "$yyy" in - 123.456) - sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"'; - sPRIFUldbl='"lF"'; sPRIGUldbl='"lG"'; sPRIEUldbl='"lE"'; - echo "We will use %lf." - ;; - esac + set try + if eval $compile_ok; then + yyy=`$run ./try` + dflt="$lseeksize" + case "$yyy" in + '') echo " " + echo "(I can't execute the test program--guessing $fpossize.)" >&4 + ;; + *) fpossize=$yyy + echo " $fpossize bytes." >&4 + ;; + esac + else + dflt="$fpossize" + echo " " + echo "(I can't compile the test program. Guessing...)" >&4 + rp="What is the size of your file positions (in bytes)?" + . ./myread + fpossize="$ans" + fi + $rm -f try.c try fi -fi + ;; +esac -if $test X"$sPRIfldbl" = X; then - echo "Cannot figure out how to print long doubles." >&4 +case "$vendorprefix" in +'') d_vendorbin="$undef" + vendorbin='' + vendorbinexp='' + ;; +*) d_vendorbin="$define" + : determine where vendor-supplied executables go. + case "$vendorbin" in + '') dflt=$vendorprefix/bin ;; + *) dflt="$vendorbin" ;; + esac + fn=d~+ + rp='Pathname for the vendor-supplied executables directory?' + . ./getfile + vendorbin="$ans" + vendorbinexp="$ansexp" + ;; +esac +: Change installation prefix, if necessary. +if $test X"$prefix" != X"$installprefix"; then + installvendorbin=`echo $vendorbinexp | $sed "s#^$prefix#$installprefix#"` else - sSCNfldbl=$sPRIfldbl # expect consistency + installvendorbin="$vendorbinexp" fi -$rm -f try try.* +: see if qgcvt exists +set qgcvt d_qgcvt +eval $inlibc -fi # d_longdbl +: Check how to convert floats to strings. -case "$sPRIfldbl" in -'') 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_SCNfldbl="$define"; - ;; -esac +if test "X$d_Gconvert" = X; then -: Check how to convert floats to strings. echo " " echo "Checking for an efficient way to convert floats to strings." echo " " > try.c @@ -8115,9 +8833,13 @@ char *myname = "qgcvt"; #define DOUBLETYPE long double #endif #ifdef TRY_sprintf -#if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && defined(HAS_PRIgldbl) +#if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) +#ifdef HAS_PRIgldbl #define Gconvert(x,n,t,b) sprintf((b),"%.*"$sPRIgldbl,(n),(x)) #else +#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(double)(x)) +#endif +#else #define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x)) #endif char *myname = "sprintf"; @@ -8160,6 +8882,21 @@ int main() Gconvert((DOUBLETYPE)0.1, 8, 0, buf); checkit("0.1", buf); + Gconvert((DOUBLETYPE)0.01, 8, 0, buf); + checkit("0.01", buf); + + Gconvert((DOUBLETYPE)0.001, 8, 0, buf); + checkit("0.001", buf); + + Gconvert((DOUBLETYPE)0.0001, 8, 0, buf); + checkit("0.0001", buf); + + Gconvert((DOUBLETYPE)0.00009, 8, 0, buf); + if (strlen(buf) > 5) + checkit("9e-005", buf); /* for Microsoft ?? */ + else + checkit("9e-05", buf); + Gconvert((DOUBLETYPE)1.0, 8, 0, buf); checkit("1", buf); @@ -8198,24 +8935,65 @@ int main() Gconvert((DOUBLETYPE)123.456, 8, 0, buf); checkit("123.456", buf); + /* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */ + Gconvert((DOUBLETYPE)1e34, 8, 0, buf); + /* 34 should be enough to scare even long double + * places into using the e notation. */ + if (strlen(buf) > 5) + checkit("1e+034", buf); /* for Microsoft */ + else + checkit("1e+34", buf); + + /* For Perl, if you add additional tests here, also add them to + * t/base/num.t for benefit of platforms not using Configure or + * overriding d_Gconvert */ + exit(0); } EOP -case "$d_Gconvert" in -gconvert*) xxx_list='gconvert gcvt sprintf' ;; -gcvt*) xxx_list='gcvt gconvert sprintf' ;; -sprintf*) xxx_list='sprintf gconvert gcvt' ;; -*) xxx_list='gconvert gcvt sprintf' ;; -esac - -case "$d_longdbl$uselongdouble$d_PRIgldbl" in -"$define$define$define") - # for long doubles prefer first qgcvt, then sprintf - xxx_list="`echo $xxx_list|sed s/sprintf//`" - xxx_list="sprintf $xxx_list" - case "$d_qgcvt" in - "$define") xxx_list="qgcvt $xxx_list" ;; - esac +: first add preferred functions to our list +xxx_list="" +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 +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 +done + +case "$d_longdbl$uselongdouble" in +"$define$define") + : again, add prefered functions to our list first + xxx_ld_list="" + for xxx_convert in $gconvert_ld_preference; do + case $xxx_convert in + qgcvt|gcvt|gconvert|sprintf) xxx_ld_list="$xxx_ld_list $xxx_convert" ;; + *) echo "Discarding unrecognized gconvert_ld_preference $xxx_convert" ;; + esac + done + : then add qgcvt, sprintf--then, in xxx_list order, gconvert and gcvt + for xxx_convert in qgcvt sprintf $xxx_list; do + case "$xxx_ld_list" in + $xxx_convert*|*" $xxx_convert"*) ;; + *) xxx_ld_list="$xxx_ld_list $xxx_convert" ;; + esac + done + : if sprintf cannot do long doubles, move it to the end + if test "$d_PRIgldbl" != "$define"; then + xxx_ld_list="`echo $xxx_ld_list|sed s/sprintf//` sprintf" + fi + : if no qgcvt, remove it + if test "$d_qgcvt" != "$define"; then + xxx_ld_list="`echo $xxx_ld_list|sed s/qgcvt//`" + fi + : use the ld_list + xxx_list="$xxx_ld_list" ;; esac @@ -8225,17 +9003,24 @@ for xxx_convert in $xxx_list; do set try -DTRY_$xxx_convert if eval $compile; then echo "$xxx_convert() found." >&4 - if ./try; then + if $run ./try; then echo "I'll use $xxx_convert to convert floats into a string." >&4 break; else echo "...But $xxx_convert didn't work as I expected." + xxx_convert='' fi else echo "$xxx_convert NOT found." >&4 fi done - + +if test X$xxx_convert = X; then + echo "*** WHOA THERE!!! ***" >&4 + echo "None of ($xxx_list) seemed to work properly. I'll use sprintf." >&4 + xxx_convert=sprintf +fi + case "$xxx_convert" in gconvert) d_Gconvert='gconvert((x),(n),(t),(b))' ;; gcvt) d_Gconvert='gcvt((x),(n),(b))' ;; @@ -8243,11 +9028,15 @@ qgcvt) d_Gconvert='qgcvt((x),(n),(b))' ;; *) case "$uselongdouble$d_longdbl$d_PRIgldbl" in "$define$define$define") d_Gconvert="sprintf((b),\"%.*\"$sPRIgldbl,(n),(x))" ;; + "$define$define$undef") + d_Gconvert='sprintf((b),"%.*g",(n),(double)(x))' ;; *) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;; esac ;; esac +fi + : see if _fwalk exists set fwalk d__fwalk eval $inlibc @@ -8298,15 +9087,287 @@ EOCP fi ;; esac -$rm -f access* - -: see if accessx exists -set accessx d_accessx -eval $inlibc +$rm -f access* + +: see if accessx exists +set accessx d_accessx +eval $inlibc + +: see if alarm exists +set alarm d_alarm +eval $inlibc + +: see if POSIX threads are available +set pthread.h i_pthread +eval $inhdr + +: define a fucntion to check prototypes +$cat > protochk <> protochk <<'EOSH' + +$rm -f try.c +foo="$1" +shift +while test $# -ge 2; do + case "$1" in + $define) echo "#include <$2>" >> try.c ;; + literal) echo "$2" >> try.c ;; + esac + # Extra magic for the benefit of systems that need pthread.h + # to be included early to correctly detect threadsafe functions. + # Such functions must guarantee themselves, though, that the usethreads + # and i_pthread have been defined, before calling protochk. + if test "$usethreads" = "$define" -a "$i_pthread" = "$define" -a "$pthread_h_first" = "$define" -a "$pthread_h_done" = ""; then + echo "#include " >> try.c + pthread_h_done=yes + fi + shift 2 +done +test "$prototype" = "$define" && echo '#define CAN_PROTOTYPE' >> try.c +cat >> try.c <<'EOCP' +#ifdef CAN_PROTOTYPE +#define _(args) args +#else +#define _(args) () +#endif +EOCP +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] +exit $status +EOSH +chmod +x protochk +$eunicefix protochk + +hasproto='varname=$1; func=$2; shift; shift; +while $test $# -ge 2; do + case "$1" in + $define) echo "#include <$2>";; + esac ; + shift 2; +done > try.c; +$cppstdin $cppflags $cppminus < try.c > tryout.c 2>/dev/null; +if $contains "$func.*(" tryout.c >/dev/null 2>&1; then + echo "$func() prototype found."; + val="$define"; +else + echo "$func() prototype NOT found."; + val="$undef"; +fi; +set $varname; +eval $setvar; +$rm -f try.c tryout.c' + +: see if sys/types.h has to be included +set sys/types.h i_systypes +eval $inhdr + +: see if sys/select.h has to be included +set sys/select.h i_sysselct +eval $inhdr + +hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift; +while $test $# -ge 2; do + case "$1" in + $define) echo "#include <$2>";; + esac ; + shift 2; +done > try.c; +echo "int main () { struct $struct foo; char* bar; bar = (char*)foo.$field; }" >> try.c; +set try; +if eval $compile; then + val="$define"; +else + val="$undef"; +fi; +set $varname; +eval $setvar; +$rm -f try.c try.o' + +: see if we should include time.h, sys/time.h, or both +echo " " +if test "X$timeincl" = X; then + echo "Testing to see if we should include , or both." >&4 + $echo $n "I'm now running the test program...$c" + $cat >try.c <<'EOCP' +#include +#ifdef I_TIME +#include +#endif +#ifdef I_SYSTIME +#ifdef SYSTIMEKERNEL +#define KERNEL +#endif +#include +#endif +#ifdef I_SYSSELECT +#include +#endif +int main() +{ + struct tm foo; +#ifdef S_TIMEVAL + struct timeval bar; +#endif +#ifdef S_TIMEZONE + struct timezone tzp; +#endif + if (foo.tm_sec == foo.tm_sec) + exit(0); +#ifdef S_TIMEVAL + if (bar.tv_sec == bar.tv_sec) + exit(0); +#endif + exit(1); +} +EOCP + flags='' + for s_timezone in '-DS_TIMEZONE' ''; do + sysselect='' + for s_timeval in '-DS_TIMEVAL' ''; do + for i_systimek in '' '-DSYSTIMEKERNEL'; do + for i_time in '' '-DI_TIME'; do + for i_systime in '-DI_SYSTIME' ''; do + case "$flags" in + '') $echo $n ".$c" + set try $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone + if eval $compile; then + set X $i_time $i_systime $i_systimek $sysselect $s_timeval + shift + flags="$*" + echo " " + $echo $n "Succeeded with $flags$c" + fi + ;; + esac + done + done + done + done + done + timeincl='' + echo " " + case "$flags" in + *SYSTIMEKERNEL*) i_systimek="$define" + timeincl=`./findhdr sys/time.h` + echo "We'll include with KERNEL defined." >&4;; + *) i_systimek="$undef";; + esac + case "$flags" in + *I_TIME*) i_time="$define" + timeincl=`./findhdr time.h`" $timeincl" + echo "We'll include ." >&4;; + *) i_time="$undef";; + esac + case "$flags" in + *I_SYSTIME*) i_systime="$define" + timeincl=`./findhdr sys/time.h`" $timeincl" + echo "We'll include ." >&4;; + *) i_systime="$undef";; + esac + $rm -f try.c try +fi +: see if struct tm knows about tm_zone +case "$i_systime$i_time" in +*$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 + eval $hasfield + ;; +*) val="$undef" + set d_tm_tm_zone + eval $setvar + ;; +esac +case "$d_tm_tm_zone" in +"$define") echo "Yes, it does." ;; +*) echo "No, it doesn't." ;; +esac +: see if struct tm knows about tm_gmtoff +case "$i_systime$i_time" in +*$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 + eval $hasfield + ;; +*) val="$undef" + set d_tm_tm_gmtoff + eval $setvar + ;; +esac +case "$d_tm_tm_gmtoff" in +"$define") echo "Yes, it does." ;; +*) echo "No, it doesn't." ;; +esac -: see if alarm exists -set alarm d_alarm +: see if asctime_r exists +set asctime_r d_asctime_r eval $inlibc +case "$d_asctime_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h" + case "$d_asctime_r_proto:$usethreads" in + ":define") d_asctime_r_proto=define + set d_asctime_r_proto asctime_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_asctime_r_proto" 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 ;; + 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 ;; + esac + case "$asctime_r_proto" in + ''|0) try='int asctime_r(const struct tm*, char*);' + ./protochk "extern $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 ;; + esac + case "$asctime_r_proto" in + ''|0) d_asctime_r=undef + asctime_r_proto=0 + echo "Disabling asctime_r, cannot determine prototype." >&4 ;; + * ) case "$asctime_r_proto" in + REENTRANT_PROTO*) ;; + *) asctime_r_proto="REENTRANT_PROTO_$asctime_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "asctime_r has no prototype, not using it." >&4 ;; + esac + d_asctime_r=undef + asctime_r_proto=0 + ;; + esac + ;; +*) asctime_r_proto=0 + ;; +esac : see if atolf exists set atolf d_atolf @@ -8359,7 +9420,7 @@ case "$d_getpgrp" in "$define") echo " " echo "Checking to see which flavor of getpgrp is in use..." - $cat >set.c <try.c < #ifdef I_UNISTD @@ -8381,10 +9442,10 @@ int main() exit(1); } EOP - if $cc -o set -DTRY_BSD_PGRP $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then + if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then echo "You have to use getpgrp(pid) instead of getpgrp()." >&4 val="$define" - elif $cc -o set $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then + elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then echo "You have to use getpgrp() instead of getpgrp(pid)." >&4 val="$undef" else @@ -8411,7 +9472,7 @@ EOP esac set d_bsdgetpgrp eval $setvar -$rm -f set set.c +$rm -f try try.* : see if setpgrp exists set setpgrp d_setpgrp @@ -8421,7 +9482,7 @@ case "$d_setpgrp" in "$define") echo " " echo "Checking to see which flavor of setpgrp is in use..." - $cat >set.c <try.c < #ifdef I_UNISTD @@ -8443,10 +9504,10 @@ int main() exit(1); } EOP - if $cc -o set -DTRY_BSD_PGRP $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then + if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4 val="$define" - elif $cc -o set $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then + elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4 val="$undef" else @@ -8473,7 +9534,7 @@ EOP esac set d_bsdsetpgrp eval $setvar -$rm -f set set.c +$rm -f try try.* : see if bzero exists set bzero d_bzero eval $inlibc @@ -8563,7 +9624,7 @@ int main() EOCP set try if eval $compile_ok; then - ./try + $run ./try yyy=$? else echo "(I can't seem to compile the test program--assuming it can't)" @@ -8659,7 +9720,7 @@ int main() EOCP set try if eval $compile_ok; then - ./try + $run ./try castflags=$? else echo "(I can't seem to compile the test program--assuming it can't)" @@ -8682,7 +9743,7 @@ echo " " if set vprintf val -f d_vprintf; eval $csym; $val; then echo 'vprintf() found.' >&4 val="$define" - $cat >vprintf.c <<'EOF' + $cat >try.c <<'EOF' #include int main() { xxx("foo"); } @@ -8697,8 +9758,8 @@ va_dcl exit((unsigned long)vsprintf(buf,"%s",args) > 10L); } EOF - set vprintf - if eval $compile && ./vprintf; then + set try + if eval $compile && $run ./try; then echo "Your vsprintf() returns (int)." >&4 val2="$undef" else @@ -8710,6 +9771,7 @@ else val="$undef" val2="$undef" fi +$rm -f try try.* set d_vprintf eval $setvar val=$val2 @@ -8728,6 +9790,10 @@ eval $inlibc set chsize d_chsize eval $inlibc +: see if class exists +set class d_class +eval $inlibc + hasstruct='varname=$1; struct=$2; shift; shift; while $test $# -ge 2; do case "$1" in @@ -8746,28 +9812,6 @@ set $varname; eval $setvar; $rm -f try.c try.o' -: see if sys/types.h has to be included -set sys/types.h i_systypes -eval $inhdr - -hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift; -while $test $# -ge 2; do - case "$1" in - $define) echo "#include <$2>";; - esac ; - shift 2; -done > try.c; -echo "int main () { struct $struct foo; char* bar; bar = (char*)foo.$field; }" >> try.c; -set try; -if eval $compile; then - val="$define"; -else - val="$undef"; -fi; -set $varname; -eval $setvar; -$rm -f try.c try.o' - socketlib='' sockethdr='' : see whether socket exists @@ -8807,7 +9851,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 @@ -8833,7 +9877,7 @@ eval $inlibc echo " " -echo "Checking the availability of certain socket constants..." >& 4 +echo "Checking the availability of certain socket constants..." >&4 for ENUM in MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS; do enum=`$echo $ENUM|./tr '[A-Z]' '[a-z]'` $cat >try.c <&4 - val="$define" - cryptlib='' -else - cryptlib=`./loc Slibcrypt$_a "" $xlibpth` - if $test -z "$cryptlib"; then - cryptlib=`./loc Mlibcrypt$_a "" $xlibpth` - else - cryptlib=-lcrypt - fi - if $test -z "$cryptlib"; then - cryptlib=`./loc Llibcrypt$_a "" $xlibpth` - else - cryptlib=-lcrypt - fi - if $test -z "$cryptlib"; then - cryptlib=`./loc libcrypt$_a "" $libpth` - else - cryptlib=-lcrypt - fi - if $test -z "$cryptlib"; then - echo 'crypt() NOT found.' >&4 - val="$undef" - else +set crypt d_crypt +eval $inlibc +case "$d_crypt" in +$define) cryptlib='' ;; +*) if set crypt val -f d_crypt; eval $csym; $val; then + echo 'crypt() found.' >&4 val="$define" + cryptlib='' + else + cryptlib=`./loc Slibcrypt$_a "" $xlibpth` + if $test -z "$cryptlib"; then + cryptlib=`./loc Mlibcrypt$_a "" $xlibpth` + else + cryptlib=-lcrypt + fi + if $test -z "$cryptlib"; then + cryptlib=`./loc Llibcrypt$_a "" $xlibpth` + else + cryptlib=-lcrypt + fi + if $test -z "$cryptlib"; then + cryptlib=`./loc libcrypt$_a "" $libpth` + else + cryptlib=-lcrypt + fi + if $test -z "$cryptlib"; then + echo 'crypt() NOT found.' >&4 + val="$undef" + else + val="$define" + fi fi -fi -set d_crypt -eval $setvar + set d_crypt + eval $setvar + ;; +esac + +: see if this is a crypt.h system +set crypt.h i_crypt +eval $inhdr + +: see if crypt_r exists +set crypt_r d_crypt_r +eval $inlibc +case "$d_crypt_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_crypt crypt.h" + case "$d_crypt_r_proto:$usethreads" in + ":define") d_crypt_r_proto=define + set d_crypt_r_proto crypt_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_crypt_r_proto" 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 ;; + 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 ;; + esac + case "$crypt_r_proto" in + ''|0) d_crypt_r=undef + crypt_r_proto=0 + echo "Disabling crypt_r, cannot determine prototype." >&4 ;; + * ) case "$crypt_r_proto" in + REENTRANT_PROTO*) ;; + *) crypt_r_proto="REENTRANT_PROTO_$crypt_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "crypt_r has no prototype, not using it." >&4 ;; + esac + d_crypt_r=undef + crypt_r_proto=0 + ;; + esac + ;; +*) crypt_r_proto=0 + ;; +esac : get csh whereabouts case "$csh" in @@ -8932,6 +10031,100 @@ case "$full_csh" in '') full_csh=$csh ;; esac +: see if ctermid_r exists +set ctermid_r d_ctermid_r +eval $inlibc +case "$d_ctermid_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h " + case "$d_ctermid_r_proto:$usethreads" in + ":define") d_ctermid_r_proto=define + set d_ctermid_r_proto ctermid_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_ctermid_r_proto" in + define) + case "$ctermid_r_proto" in + ''|0) try='char* ctermid_r(char*);' + ./protochk "extern $try" $hdrs && ctermid_r_proto=B_B ;; + esac + case "$ctermid_r_proto" in + ''|0) d_ctermid_r=undef + ctermid_r_proto=0 + echo "Disabling ctermid_r, cannot determine prototype." >&4 ;; + * ) case "$ctermid_r_proto" in + REENTRANT_PROTO*) ;; + *) ctermid_r_proto="REENTRANT_PROTO_$ctermid_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "ctermid_r has no prototype, not using it." >&4 ;; + esac + d_ctermid_r=undef + ctermid_r_proto=0 + ;; + esac + ;; +*) ctermid_r_proto=0 + ;; +esac + +: see if ctime_r exists +set ctime_r d_ctime_r +eval $inlibc +case "$d_ctime_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h" + case "$d_ctime_r_proto:$usethreads" in + ":define") d_ctime_r_proto=define + set d_ctime_r_proto ctime_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_ctime_r_proto" 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 ;; + 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 ;; + esac + case "$ctime_r_proto" in + ''|0) try='int ctime_r(const time_t*, char*);' + ./protochk "extern $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 ;; + esac + case "$ctime_r_proto" in + ''|0) d_ctime_r=undef + ctime_r_proto=0 + echo "Disabling ctime_r, cannot determine prototype." >&4 ;; + * ) case "$ctime_r_proto" in + REENTRANT_PROTO*) ;; + *) ctime_r_proto="REENTRANT_PROTO_$ctime_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "ctime_r has no prototype, not using it." >&4 ;; + esac + d_ctime_r=undef + ctime_r_proto=0 + ;; + esac + ;; +*) ctime_r_proto=0 + ;; +esac + : see if cuserid exists set cuserid d_cuserid eval $inlibc @@ -8971,6 +10164,41 @@ $rm -f dbl_dig.? set d_dbl_dig eval $setvar +: see if dbm.h is available +: see if dbmclose exists +set dbmclose d_dbmclose +eval $inlibc + +case "$d_dbmclose" in +$define) + set dbm.h i_dbm + eval $inhdr + case "$i_dbm" in + $define) + val="$undef" + set i_rpcsvcdbm + eval $setvar + ;; + *) set rpcsvc/dbm.h i_rpcsvcdbm + eval $inhdr + ;; + esac + ;; +*) echo "We won't be including " + val="$undef" + set i_dbm + eval $setvar + val="$undef" + set i_rpcsvcdbm + eval $setvar + ;; +esac + +: see if prototype for dbminit is available +echo " " +set d_dbminitproto dbminit $i_dbm dbm.h +eval $hasproto + : see if difftime exists set difftime d_difftime eval $inlibc @@ -9043,6 +10271,63 @@ set d_dirnamlen eval $setvar $rm -f try.c +: see if this is an sysdir system +set sys/dir.h i_sysdir +eval $inhdr + +: see if this is an sysndir system +set sys/ndir.h i_sysndir +eval $inhdr + +: Look for dirfd +echo " " +$cat >dirfd.c < +#$i_dirent I_DIRENT /**/ +#$i_sysdir I_SYS_DIR /**/ +#$i_sysndir I_SYS_NDIR /**/ +#$i_systypes I_SYS_TYPES /**/ +#if defined(I_SYS_TYPES) +#include +#endif +#if defined(I_DIRENT) +#include +#if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */ +#include +#endif +#else +#ifdef I_SYS_NDIR +#include +#else +#ifdef I_SYS_DIR +#ifdef hp9000s500 +#include /* may be wrong in the future */ +#else +#include +#endif +#endif +#endif +#endif +int main() { + DIR *dirp = opendir("."); + if (dirfd(dirp) >= 0) + exit(0); + else + exit(1); +} +EOM +set dirfd +if eval $compile; then + val="$define" +fi +case "$val" in +$define) echo "dirfd() found." >&4 ;; +*) echo "dirfd() NOT found." >&4 ;; +esac +set d_dirfd +eval $setvar +$rm -f dirfd* + : see if dlerror exists xxx_runnm="$runnm" runnm=false @@ -9092,7 +10377,7 @@ $cat >fred.c< #$i_dlfcn I_DLFCN #ifdef I_DLFCN -#include /* the dynamic linker include file for Sunos/Solaris */ +#include /* the dynamic linker include file for SunOS/Solaris */ #else #include #include @@ -9137,8 +10422,8 @@ EOM 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; then - xxx=`./fred` + $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1 && $to dyna.$dlext; then + xxx=`$run ./fred` case $xxx in 1) echo "Test program failed using dlopen." >&4 echo "Perhaps you should not use dynamic loading." >&4;; @@ -9155,29 +10440,51 @@ EOM ;; esac -$rm -f fred fred.? dyna.$dlext dyna.? tmp-dyna.? +$rm -f fred fred.* dyna.$dlext dyna.* tmp-dyna.* set d_dlsymun eval $setvar -hasproto='varname=$1; func=$2; shift; shift; -while $test $# -ge 2; do - case "$1" in - $define) echo "#include <$2>";; - esac ; - shift 2; -done > try.c; -$cppstdin $cppflags $cppminus < try.c > tryout.c 2>/dev/null; -if $contains "$func.*(" tryout.c >/dev/null 2>&1; then - echo "$func() prototype found."; - val="$define"; -else - echo "$func() prototype NOT found."; - val="$undef"; -fi; -set $varname; -eval $setvar; -$rm -f try.c tryout.c' +: see if drand48_r exists +set drand48_r d_drand48_r +eval $inlibc +case "$d_drand48_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h" + case "$d_drand48_r_proto:$usethreads" in + ":define") d_drand48_r_proto=define + set d_drand48_r_proto drand48_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_drand48_r_proto" 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 ;; + esac + case "$drand48_r_proto" in + ''|0) d_drand48_r=undef + drand48_r_proto=0 + echo "Disabling drand48_r, cannot determine prototype." >&4 ;; + * ) case "$drand48_r_proto" in + REENTRANT_PROTO*) ;; + *) drand48_r_proto="REENTRANT_PROTO_$drand48_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "drand48_r has no prototype, not using it." >&4 ;; + esac + d_drand48_r=undef + drand48_r_proto=0 + ;; + esac + ;; +*) drand48_r_proto=0 + ;; +esac : see if prototype for drand48 is available echo " " @@ -9196,29 +10503,416 @@ eval $inlibc set endgrent d_endgrent eval $inlibc +: see if this is an grp system +set grp.h i_grp +eval $inhdr + +case "$i_grp" in +$define) + xxx=`./findhdr grp.h` + $cppstdin $cppflags $cppminus < $xxx >$$.h + + if $contains 'gr_passwd' $$.h >/dev/null 2>&1; then + val="$define" + else + val="$undef" + fi + set d_grpasswd + eval $setvar + + $rm -f $$.h + ;; +*) + val="$undef"; + set d_grpasswd; eval $setvar + ;; +esac + +: see if endgrent_r exists +set endgrent_r d_endgrent_r +eval $inlibc +case "$d_endgrent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h" + case "$d_endgrent_r_proto:$usethreads" in + ":define") d_endgrent_r_proto=define + set d_endgrent_r_proto endgrent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_endgrent_r_proto" in + define) + case "$endgrent_r_proto" in + ''|0) try='int endgrent_r(FILE**);' + ./protochk "extern $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 ;; + esac + case "$endgrent_r_proto" in + ''|0) d_endgrent_r=undef + endgrent_r_proto=0 + echo "Disabling endgrent_r, cannot determine prototype." >&4 ;; + * ) case "$endgrent_r_proto" in + REENTRANT_PROTO*) ;; + *) endgrent_r_proto="REENTRANT_PROTO_$endgrent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "endgrent_r has no prototype, not using it." >&4 ;; + esac + d_endgrent_r=undef + endgrent_r_proto=0 + ;; + esac + ;; +*) endgrent_r_proto=0 + ;; +esac + : see if endhostent exists set endhostent d_endhent eval $inlibc +: see if this is a netdb.h system +set netdb.h i_netdb +eval $inhdr + +: see if endhostent_r exists +set endhostent_r d_endhostent_r +eval $inlibc +case "$d_endhostent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_endhostent_r_proto:$usethreads" in + ":define") d_endhostent_r_proto=define + set d_endhostent_r_proto endhostent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_endhostent_r_proto" in + define) + case "$endhostent_r_proto" in + ''|0) try='int endhostent_r(struct hostent_data*);' + ./protochk "extern $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 ;; + esac + case "$endhostent_r_proto" in + ''|0) d_endhostent_r=undef + endhostent_r_proto=0 + echo "Disabling endhostent_r, cannot determine prototype." >&4 ;; + * ) case "$endhostent_r_proto" in + REENTRANT_PROTO*) ;; + *) endhostent_r_proto="REENTRANT_PROTO_$endhostent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "endhostent_r has no prototype, not using it." >&4 ;; + esac + d_endhostent_r=undef + endhostent_r_proto=0 + ;; + esac + ;; +*) endhostent_r_proto=0 + ;; +esac + : see if endnetent exists set endnetent d_endnent eval $inlibc +: see if endnetent_r exists +set endnetent_r d_endnetent_r +eval $inlibc +case "$d_endnetent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_endnetent_r_proto:$usethreads" in + ":define") d_endnetent_r_proto=define + set d_endnetent_r_proto endnetent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_endnetent_r_proto" in + define) + case "$endnetent_r_proto" in + ''|0) try='int endnetent_r(struct netent_data*);' + ./protochk "extern $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 ;; + esac + case "$endnetent_r_proto" in + ''|0) d_endnetent_r=undef + endnetent_r_proto=0 + echo "Disabling endnetent_r, cannot determine prototype." >&4 ;; + * ) case "$endnetent_r_proto" in + REENTRANT_PROTO*) ;; + *) endnetent_r_proto="REENTRANT_PROTO_$endnetent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "endnetent_r has no prototype, not using it." >&4 ;; + esac + d_endnetent_r=undef + endnetent_r_proto=0 + ;; + esac + ;; +*) endnetent_r_proto=0 + ;; +esac + : see if endprotoent exists set endprotoent d_endpent eval $inlibc +: see if endprotoent_r exists +set endprotoent_r d_endprotoent_r +eval $inlibc +case "$d_endprotoent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_endprotoent_r_proto:$usethreads" in + ":define") d_endprotoent_r_proto=define + set d_endprotoent_r_proto endprotoent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_endprotoent_r_proto" in + define) + case "$endprotoent_r_proto" in + ''|0) try='int endprotoent_r(struct protoent_data*);' + ./protochk "extern $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 ;; + esac + case "$endprotoent_r_proto" in + ''|0) d_endprotoent_r=undef + endprotoent_r_proto=0 + echo "Disabling endprotoent_r, cannot determine prototype." >&4 ;; + * ) case "$endprotoent_r_proto" in + REENTRANT_PROTO*) ;; + *) endprotoent_r_proto="REENTRANT_PROTO_$endprotoent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "endprotoent_r has no prototype, not using it." >&4 ;; + esac + d_endprotoent_r=undef + endprotoent_r_proto=0 + ;; + esac + ;; +*) endprotoent_r_proto=0 + ;; +esac + : see if endpwent exists set endpwent d_endpwent eval $inlibc +: see if this is a pwd.h system +set pwd.h i_pwd +eval $inhdr + +case "$i_pwd" in +$define) + xxx=`./findhdr pwd.h` + $cppstdin $cppflags $cppminus < $xxx >$$.h + + if $contains 'pw_quota' $$.h >/dev/null 2>&1; then + val="$define" + else + val="$undef" + fi + set d_pwquota + eval $setvar + + if $contains 'pw_age' $$.h >/dev/null 2>&1; then + val="$define" + else + val="$undef" + fi + set d_pwage + eval $setvar + + if $contains 'pw_change' $$.h >/dev/null 2>&1; then + val="$define" + else + val="$undef" + fi + set d_pwchange + eval $setvar + + if $contains 'pw_class' $$.h >/dev/null 2>&1; then + val="$define" + else + val="$undef" + fi + set d_pwclass + eval $setvar + + if $contains 'pw_expire' $$.h >/dev/null 2>&1; then + val="$define" + else + val="$undef" + fi + set d_pwexpire + eval $setvar + + if $contains 'pw_comment' $$.h >/dev/null 2>&1; then + val="$define" + else + val="$undef" + fi + set d_pwcomment + eval $setvar + + if $contains 'pw_gecos' $$.h >/dev/null 2>&1; then + val="$define" + else + val="$undef" + fi + set d_pwgecos + eval $setvar + + if $contains 'pw_passwd' $$.h >/dev/null 2>&1; then + val="$define" + else + val="$undef" + fi + set d_pwpasswd + eval $setvar + + $rm -f $$.h + ;; +*) + val="$undef"; + set d_pwquota; eval $setvar + set d_pwage; eval $setvar + set d_pwchange; eval $setvar + set d_pwclass; eval $setvar + set d_pwexpire; eval $setvar + set d_pwcomment; eval $setvar + set d_pwgecos; eval $setvar + set d_pwpasswd; eval $setvar + ;; +esac + +: see if endpwent_r exists +set endpwent_r d_endpwent_r +eval $inlibc +case "$d_endpwent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h" + case "$d_endpwent_r_proto:$usethreads" in + ":define") d_endpwent_r_proto=define + set d_endpwent_r_proto endpwent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_endpwent_r_proto" in + define) + case "$endpwent_r_proto" in + ''|0) try='int endpwent_r(FILE**);' + ./protochk "extern $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 ;; + esac + case "$endpwent_r_proto" in + ''|0) d_endpwent_r=undef + endpwent_r_proto=0 + echo "Disabling endpwent_r, cannot determine prototype." >&4 ;; + * ) case "$endpwent_r_proto" in + REENTRANT_PROTO*) ;; + *) endpwent_r_proto="REENTRANT_PROTO_$endpwent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "endpwent_r has no prototype, not using it." >&4 ;; + esac + d_endpwent_r=undef + endpwent_r_proto=0 + ;; + esac + ;; +*) endpwent_r_proto=0 + ;; +esac + : see if endservent exists set endservent d_endsent eval $inlibc +: see if endservent_r exists +set endservent_r d_endservent_r +eval $inlibc +case "$d_endservent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_endservent_r_proto:$usethreads" in + ":define") d_endservent_r_proto=define + set d_endservent_r_proto endservent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_endservent_r_proto" in + define) + case "$endservent_r_proto" in + ''|0) try='int endservent_r(struct servent_data*);' + ./protochk "extern $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 ;; + esac + case "$endservent_r_proto" in + ''|0) d_endservent_r=undef + endservent_r_proto=0 + echo "Disabling endservent_r, cannot determine prototype." >&4 ;; + * ) case "$endservent_r_proto" in + REENTRANT_PROTO*) ;; + *) endservent_r_proto="REENTRANT_PROTO_$endservent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "endservent_r has no prototype, not using it." >&4 ;; + esac + d_endservent_r=undef + endservent_r_proto=0 + ;; + esac + ;; +*) endservent_r_proto=0 + ;; +esac + : Locate the flags for 'open()' echo " " -$cat >open3.c <<'EOCP' +$cat >try.c <<'EOCP' #include #ifdef I_FCNTL #include @@ -9237,10 +10931,10 @@ int main() { EOCP : check sys/file.h first to get FREAD on Sun if $test `./findhdr sys/file.h` && \ - set open3 -DI_SYS_FILE && eval $compile; then + set try -DI_SYS_FILE && eval $compile; then h_sysfile=true; echo " defines the O_* constants..." >&4 - if ./open3; then + if $run ./try; then echo "and you have the 3 argument form of open()." >&4 val="$define" else @@ -9248,10 +10942,10 @@ if $test `./findhdr sys/file.h` && \ val="$undef" fi elif $test `./findhdr fcntl.h` && \ - set open3 -DI_FCNTL && eval $compile; then + set try -DI_FCNTL && eval $compile; then h_fcntl=true; echo " defines the O_* constants..." >&4 - if ./open3; then + if $run ./try; then echo "and you have the 3 argument form of open()." >&4 val="$define" else @@ -9264,7 +10958,7 @@ else fi set d_open3 eval $setvar -$rm -f open3* +$rm -f try try.* : see which of string.h or strings.h is needed echo " " @@ -9278,15 +10972,68 @@ else if $test "$strings" && $test -r "$strings"; then echo "Using instead of ." >&4 else - echo "No string header found -- You'll surely have problems." >&4 + 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 + +: see if this is a sys/file.h system +val='' +set sys/file.h val +eval $inhdr + +: do we need to include sys/file.h ? +case "$val" in +"$define") + echo " " + if $h_sysfile; then + val="$define" + echo "We'll be including ." >&4 + else + val="$undef" + echo "We won't be including ." >&4 + fi + ;; +*) + h_sysfile=false + ;; +esac +set i_sysfile +eval $setvar + +: see if fcntl.h is there +val='' +set fcntl.h val +eval $inhdr + +: see if we can include fcntl.h +case "$val" in +"$define") + echo " " + if $h_fcntl; then + val="$define" + echo "We'll be including ." >&4 + else + val="$undef" + if $h_sysfile; then + echo "We don't need to include if we include ." >&4 + else + echo "We won't be including ." >&4 + fi fi -fi -set i_string -eval $setvar -case "$i_string" in -"$undef") strings=`./findhdr strings.h`;; -*) strings=`./findhdr string.h`;; + ;; +*) + h_fcntl=false + val="$undef" + ;; esac +set i_fcntl +eval $setvar : check for non-blocking I/O stuff case "$h_sysfile" in @@ -9303,8 +11050,13 @@ echo "Figuring out the flag used by open() for non-blocking I/O..." >&4 case "$o_nonblock" in '') $cat head.c > try.c - $cat >>try.c <<'EOCP' + $cat >>try.c < +#include +#$i_fcntl I_FCNTL +#ifdef I_FCNTL +#include +#endif int main() { #ifdef O_NONBLOCK printf("O_NONBLOCK\n"); @@ -9323,7 +11075,7 @@ int main() { EOCP set try if eval $compile_ok; then - o_nonblock=`./try` + o_nonblock=`$run ./try` case "$o_nonblock" in '') echo "I can't figure it out, assuming O_NONBLOCK will do.";; *) echo "Seems like we can use $o_nonblock.";; @@ -9346,6 +11098,11 @@ case "$eagain" in #include #include #include +#include +#$i_fcntl I_FCNTL +#ifdef I_FCNTL +#include +#endif #define MY_O_NONBLOCK $o_nonblock #ifndef errno /* XXX need better Configure test */ extern int errno; @@ -9406,7 +11163,7 @@ int main() ret = read(pd[0], buf, 1); /* Should read EOF */ alarm(0); sprintf(string, "%d\n", ret); - write(3, string, strlen(string)); + write(4, string, strlen(string)); exit(0); } @@ -9420,7 +11177,7 @@ EOCP set try if eval $compile_ok; then echo "$startsh" >mtry - echo "./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry + echo "$run ./try >try.out 2>try.ret 4>try.err || exit 4" >>mtry chmod +x mtry ./mtry >/dev/null 2>&1 case $? in @@ -9482,6 +11239,10 @@ EOCP esac $rm -f try try.* .out core head.c mtry +: see if fchdir exists +set fchdir d_fchdir +eval $inlibc + : see if fchmod exists set fchmod d_fchmod eval $inlibc @@ -9496,10 +11257,12 @@ eval $inlibc echo " " : See if fcntl-based locking works. -$cat >try.c <<'EOCP' +$cat >try.c < #include #include +#include +$signal_t blech(x) int x; { exit(3); } int main() { #if defined(F_SETLK) && defined(F_SETLKW) struct flock flock; @@ -9508,6 +11271,8 @@ int main() { flock.l_type = F_RDLCK; flock.l_whence = SEEK_SET; flock.l_start = flock.l_len = 0; + signal(SIGALRM, blech); + alarm(10); retval = fcntl(fd, F_SETLK, &flock); close(fd); (retval < 0 ? exit(2) : exit(0)); @@ -9521,12 +11286,24 @@ case "$d_fcntl" in "$define") set try if eval $compile_ok; then - if ./try; then + if $run ./try; then echo "Yes, it seems to work." val="$define" else echo "Nope, it didn't work." val="$undef" + case "$?" in + 3) $cat >&4 <, or both." >&4 - $echo $n "I'm now running the test program...$c" - $cat >try.c <<'EOCP' -#include -#ifdef I_TIME -#include -#endif -#ifdef I_SYSTIME -#ifdef SYSTIMEKERNEL -#define KERNEL -#endif -#include -#endif -#ifdef I_SYSSELECT -#include -#endif -int main() -{ - struct tm foo; -#ifdef S_TIMEVAL - struct timeval bar; -#endif -#ifdef S_TIMEZONE - struct timezone tzp; -#endif - if (foo.tm_sec == foo.tm_sec) - exit(0); -#ifdef S_TIMEVAL - if (bar.tv_sec == bar.tv_sec) - exit(0); -#endif - exit(1); -} -EOCP - flags='' - for s_timezone in '-DS_TIMEZONE' ''; do - sysselect='' - for s_timeval in '-DS_TIMEVAL' ''; do - for i_systimek in '' '-DSYSTIMEKERNEL'; do - for i_time in '' '-DI_TIME'; do - for i_systime in '-DI_SYSTIME' ''; do - case "$flags" in - '') $echo $n ".$c" - set try $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone - if eval $compile; then - set X $i_time $i_systime $i_systimek $sysselect $s_timeval - shift - flags="$*" - echo " " - $echo $n "Succeeded with $flags$c" - fi - ;; - esac - done - done - done - done - done - timeincl='' - echo " " - case "$flags" in - *SYSTIMEKERNEL*) i_systimek="$define" - timeincl=`./findhdr sys/time.h` - echo "We'll include with KERNEL defined." >&4;; - *) i_systimek="$undef";; - esac - case "$flags" in - *I_TIME*) i_time="$define" - timeincl=`./findhdr time.h`" $timeincl" - echo "We'll include ." >&4;; - *) i_time="$undef";; - esac - case "$flags" in - *I_SYSTIME*) i_systime="$define" - timeincl=`./findhdr sys/time.h`" $timeincl" - echo "We'll include ." >&4;; - *) i_systime="$undef";; - esac - $rm -f try.c try -fi - : check for fd_set items $cat <fd_set.c <try.c <&4 - if ./fd_set; then + if $run ./try; then echo "and you have the normal fd_set macros (just as I'd expect)." >&4 d_fd_macros="$define" else @@ -9681,12 +11370,12 @@ else $cat <<'EOM' Hmm, your compiler has some difficulty with fd_set. Checking further... EOM - set fd_set + set try if eval $compile; then d_fds_bits="$undef" d_fd_set="$define" echo "Well, your system has some sort of fd_set available..." >&4 - if ./fd_set; then + if $run ./try; then echo "and you have the normal fd_set macros." >&4 d_fd_macros="$define" else @@ -9702,20 +11391,37 @@ EOM d_fd_macros="$undef" fi fi -$rm -f fd_set* +$rm -f try try.* : see if fgetpos exists set fgetpos d_fgetpos eval $inlibc +: see if finite exists +set finite d_finite +eval $inlibc + +: see if finitel exists +set finitel d_finitel +eval $inlibc + : see if flock exists set flock d_flock eval $inlibc +: see if prototype for flock is available +echo " " +set d_flockproto flock $i_sysfile sys/file.h +eval $hasproto + : see if fork exists set fork d_fork eval $inlibc +: see if fp_class exists +set fp_class d_fp_class +eval $inlibc + : see if pathconf exists set pathconf d_pathconf eval $inlibc @@ -9724,6 +11430,18 @@ eval $inlibc set fpathconf d_fpathconf eval $inlibc +: see if fpclass exists +set fpclass d_fpclass +eval $inlibc + +: see if fpclassify exists +set fpclassify d_fpclassify +eval $inlibc + +: see if fpclassl exists +set fpclassl d_fpclassl +eval $inlibc + : check for fpos64_t echo " " @@ -9823,6 +11541,177 @@ eval $inlibc set getgrent d_getgrent eval $inlibc +: see if getgrent_r exists +set getgrent_r d_getgrent_r +eval $inlibc +case "$d_getgrent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h" + case "$d_getgrent_r_proto:$usethreads" in + ":define") d_getgrent_r_proto=define + set d_getgrent_r_proto getgrent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getgrent_r_proto" 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 ;; + 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 ;; + 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 ;; + 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 ;; + esac + case "$getgrent_r_proto" in + ''|0) try='int getgrent_r(struct group*, char*, int);' + ./protochk "extern $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 ;; + esac + case "$getgrent_r_proto" in + ''|0) d_getgrent_r=undef + getgrent_r_proto=0 + echo "Disabling getgrent_r, cannot determine prototype." >&4 ;; + * ) case "$getgrent_r_proto" in + REENTRANT_PROTO*) ;; + *) getgrent_r_proto="REENTRANT_PROTO_$getgrent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getgrent_r has no prototype, not using it." >&4 ;; + esac + d_getgrent_r=undef + getgrent_r_proto=0 + ;; + esac + ;; +*) getgrent_r_proto=0 + ;; +esac + +: see if getgrgid_r exists +set getgrgid_r d_getgrgid_r +eval $inlibc +case "$d_getgrgid_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h" + case "$d_getgrgid_r_proto:$usethreads" in + ":define") d_getgrgid_r_proto=define + set d_getgrgid_r_proto getgrgid_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getgrgid_r_proto" 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 ;; + 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 ;; + 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 ;; + 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 ;; + esac + case "$getgrgid_r_proto" in + ''|0) d_getgrgid_r=undef + getgrgid_r_proto=0 + echo "Disabling getgrgid_r, cannot determine prototype." >&4 ;; + * ) case "$getgrgid_r_proto" in + REENTRANT_PROTO*) ;; + *) getgrgid_r_proto="REENTRANT_PROTO_$getgrgid_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getgrgid_r has no prototype, not using it." >&4 ;; + esac + d_getgrgid_r=undef + getgrgid_r_proto=0 + ;; + esac + ;; +*) getgrgid_r_proto=0 + ;; +esac + +: see if getgrnam_r exists +set getgrnam_r d_getgrnam_r +eval $inlibc +case "$d_getgrnam_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h" + case "$d_getgrnam_r_proto:$usethreads" in + ":define") d_getgrnam_r_proto=define + set d_getgrnam_r_proto getgrnam_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getgrnam_r_proto" 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 ;; + 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 ;; + 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 ;; + 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 ;; + 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 ;; + esac + case "$getgrnam_r_proto" in + ''|0) d_getgrnam_r=undef + getgrnam_r_proto=0 + echo "Disabling getgrnam_r, cannot determine prototype." >&4 ;; + * ) case "$getgrnam_r_proto" in + REENTRANT_PROTO*) ;; + *) getgrnam_r_proto="REENTRANT_PROTO_$getgrnam_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getgrnam_r has no prototype, not using it." >&4 ;; + esac + d_getgrnam_r=undef + getgrnam_r_proto=0 + ;; + esac + ;; +*) getgrnam_r_proto=0 + ;; +esac + : see if gethostbyaddr exists set gethostbyaddr d_gethbyaddr eval $inlibc @@ -9905,25 +11794,208 @@ case "$phostname" in esac ;; esac -case "$d_uname$d_gethname" in -*define*) ;; -*) - case "$phostname" in - '') - echo "There will be no way for $package to get your hostname." >&4;; - *) - echo "I'll use 'popen("'"'$aphostname'", "r")'"' to get your hostname." >&4 +case "$d_uname$d_gethname" in +*define*) ;; +*) + case "$phostname" in + '') + echo "There will be no way for $package to get your hostname." >&4;; + *) + echo "I'll use 'popen("'"'$aphostname'", "r")'"' to get your hostname." >&4 + ;; + esac;; +esac +case "$d_phostname" in +'') d_phostname="$undef";; +esac + +: see if gethostbyaddr_r exists +set gethostbyaddr_r d_gethostbyaddr_r +eval $inlibc +case "$d_gethostbyaddr_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_gethostbyaddr_r_proto:$usethreads" in + ":define") d_gethostbyaddr_r_proto=define + set d_gethostbyaddr_r_proto gethostbyaddr_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_gethostbyaddr_r_proto" in + define) + case "$gethostbyaddr_r_proto" in + ''|0) try='int gethostbyaddr_r(const char*, size_t, int, struct hostent*, char*, size_t, struct hostent**, int*);' + ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_CWISBWRE ;; + esac + case "$gethostbyaddr_r_proto" in + ''|0) try='struct hostent* gethostbyaddr_r(const char*, size_t, int, struct hostent*, char*, size_t, int, int*);' + ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_CWISBWIE ;; + esac + case "$gethostbyaddr_r_proto" in + ''|0) try='struct hostent* gethostbyaddr_r(const char*, size_t, int, struct hostent*, char*, int, int*);' + ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_CWISBIE ;; + esac + case "$gethostbyaddr_r_proto" in + ''|0) try='struct hostent* gethostbyaddr_r(const void*, size_t, int, struct hostent*, char*, int, int*);' + ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_TWISBIE ;; + esac + case "$gethostbyaddr_r_proto" in + ''|0) try='struct hostent* gethostbyaddr_r(const char*, int, int, struct hostent*, char*, int, int*);' + ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_CIISBIE ;; + esac + case "$gethostbyaddr_r_proto" in + ''|0) try='struct hostent* gethostbyaddr_r(const char*, struct hostent*, char*, int, int*);' + ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_CSBIE ;; + esac + case "$gethostbyaddr_r_proto" in + ''|0) try='struct hostent* gethostbyaddr_r(const void*, struct hostent*, char*, int, int*);' + ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=S_TSBIE ;; + esac + case "$gethostbyaddr_r_proto" in + ''|0) try='int gethostbyaddr_r(const char*, size_t, int, struct hostent*, struct hostent_data*);' + ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_CWISD ;; + esac + case "$gethostbyaddr_r_proto" in + ''|0) try='int gethostbyaddr_r(const char*, int, int, struct hostent*, struct hostent_data*);' + ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_CIISD ;; + esac + case "$gethostbyaddr_r_proto" in + ''|0) try='int gethostbyaddr_r(const char*, int, int);' + ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_CII ;; + esac + case "$gethostbyaddr_r_proto" in + ''|0) d_gethostbyaddr_r=undef + gethostbyaddr_r_proto=0 + echo "Disabling gethostbyaddr_r, cannot determine prototype." >&4 ;; + * ) case "$gethostbyaddr_r_proto" in + REENTRANT_PROTO*) ;; + *) gethostbyaddr_r_proto="REENTRANT_PROTO_$gethostbyaddr_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "gethostbyaddr_r has no prototype, not using it." >&4 ;; + esac + d_gethostbyaddr_r=undef + gethostbyaddr_r_proto=0 + ;; + esac + ;; +*) gethostbyaddr_r_proto=0 + ;; +esac + +: see if gethostbyname_r exists +set gethostbyname_r d_gethostbyname_r +eval $inlibc +case "$d_gethostbyname_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_gethostbyname_r_proto:$usethreads" in + ":define") d_gethostbyname_r_proto=define + set d_gethostbyname_r_proto gethostbyname_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_gethostbyname_r_proto" in + define) + case "$gethostbyname_r_proto" in + ''|0) try='int gethostbyname_r(const char*, struct hostent*, char*, size_t, struct hostent**, int*);' + ./protochk "extern $try" $hdrs && gethostbyname_r_proto=I_CSBWRE ;; + esac + case "$gethostbyname_r_proto" in + ''|0) try='struct hostent* gethostbyname_r(const char*, struct hostent*, char*, int, int*);' + ./protochk "extern $try" $hdrs && gethostbyname_r_proto=S_CSBIE ;; + esac + case "$gethostbyname_r_proto" in + ''|0) try='int gethostbyname_r(const char*, struct hostent*, struct hostent_data*);' + ./protochk "extern $try" $hdrs && gethostbyname_r_proto=I_CSD ;; + esac + case "$gethostbyname_r_proto" in + ''|0) d_gethostbyname_r=undef + gethostbyname_r_proto=0 + echo "Disabling gethostbyname_r, cannot determine prototype." >&4 ;; + * ) case "$gethostbyname_r_proto" in + REENTRANT_PROTO*) ;; + *) gethostbyname_r_proto="REENTRANT_PROTO_$gethostbyname_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "gethostbyname_r has no prototype, not using it." >&4 ;; + esac + d_gethostbyname_r=undef + gethostbyname_r_proto=0 + ;; + esac + ;; +*) gethostbyname_r_proto=0 + ;; +esac + +: see if gethostent_r exists +set gethostent_r d_gethostent_r +eval $inlibc +case "$d_gethostent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_gethostent_r_proto:$usethreads" in + ":define") d_gethostent_r_proto=define + set d_gethostent_r_proto gethostent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_gethostent_r_proto" in + define) + case "$gethostent_r_proto" in + ''|0) try='int gethostent_r(struct hostent*, char*, size_t, struct hostent**, int*);' + ./protochk "extern $try" $hdrs && gethostent_r_proto=I_SBWRE ;; + esac + case "$gethostent_r_proto" in + ''|0) try='int gethostent_r(struct hostent*, char*, int, int*);' + ./protochk "extern $try" $hdrs && gethostent_r_proto=I_SBIE ;; + esac + case "$gethostent_r_proto" in + ''|0) try='struct hostent* gethostent_r(struct hostent*, char*, int, int*);' + ./protochk "extern $try" $hdrs && gethostent_r_proto=S_SBIE ;; + esac + case "$gethostent_r_proto" in + ''|0) try='struct hostent* gethostent_r(struct hostent*, char*, int);' + ./protochk "extern $try" $hdrs && gethostent_r_proto=S_SBI ;; + esac + case "$gethostent_r_proto" in + ''|0) try='int gethostent_r(struct hostent*, char*, int);' + ./protochk "extern $try" $hdrs && gethostent_r_proto=I_SBI ;; + esac + case "$gethostent_r_proto" in + ''|0) try='int gethostent_r(struct hostent*, struct hostent_data*);' + ./protochk "extern $try" $hdrs && gethostent_r_proto=I_SD ;; + esac + case "$gethostent_r_proto" in + ''|0) d_gethostent_r=undef + gethostent_r_proto=0 + echo "Disabling gethostent_r, cannot determine prototype." >&4 ;; + * ) case "$gethostent_r_proto" in + REENTRANT_PROTO*) ;; + *) gethostent_r_proto="REENTRANT_PROTO_$gethostent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "gethostent_r has no prototype, not using it." >&4 ;; + esac + d_gethostent_r=undef + gethostent_r_proto=0 ;; - esac;; -esac -case "$d_phostname" in -'') d_phostname="$undef";; + esac + ;; +*) gethostent_r_proto=0 + ;; esac -: see if this is a netdb.h system -set netdb.h i_netdb -eval $inhdr - : see if prototypes for various gethostxxx netdb.h functions are available echo " " set d_gethostprotos gethostent $i_netdb netdb.h @@ -9937,6 +12009,59 @@ eval $inlibc set getlogin d_getlogin eval $inlibc +: see if getlogin_r exists +set getlogin_r d_getlogin_r +eval $inlibc +case "$d_getlogin_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_unistd unistd.h" + case "$d_getlogin_r_proto:$usethreads" in + ":define") d_getlogin_r_proto=define + set d_getlogin_r_proto getlogin_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getlogin_r_proto" in + define) + case "$getlogin_r_proto" in + ''|0) try='int getlogin_r(char*, size_t);' + ./protochk "extern $try" $hdrs && getlogin_r_proto=I_BW ;; + esac + case "$getlogin_r_proto" in + ''|0) try='int getlogin_r(char*, int);' + ./protochk "extern $try" $hdrs && getlogin_r_proto=I_BI ;; + esac + case "$getlogin_r_proto" in + ''|0) try='char* getlogin_r(char*, size_t);' + ./protochk "extern $try" $hdrs && getlogin_r_proto=B_BW ;; + esac + case "$getlogin_r_proto" in + ''|0) try='char* getlogin_r(char*, int);' + ./protochk "extern $try" $hdrs && getlogin_r_proto=B_BI ;; + esac + case "$getlogin_r_proto" in + ''|0) d_getlogin_r=undef + getlogin_r_proto=0 + echo "Disabling getlogin_r, cannot determine prototype." >&4 ;; + * ) case "$getlogin_r_proto" in + REENTRANT_PROTO*) ;; + *) getlogin_r_proto="REENTRANT_PROTO_$getlogin_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getlogin_r has no prototype, not using it." >&4 ;; + esac + d_getlogin_r=undef + getlogin_r_proto=0 + ;; + esac + ;; +*) getlogin_r_proto=0 + ;; +esac + : see if getmnt exists set getmnt d_getmnt eval $inlibc @@ -9957,6 +12082,185 @@ eval $inlibc set getnetent d_getnent eval $inlibc +: see if getnetbyaddr_r exists +set getnetbyaddr_r d_getnetbyaddr_r +eval $inlibc +case "$d_getnetbyaddr_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_getnetbyaddr_r_proto:$usethreads" in + ":define") d_getnetbyaddr_r_proto=define + set d_getnetbyaddr_r_proto getnetbyaddr_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getnetbyaddr_r_proto" in + define) + case "$getnetbyaddr_r_proto" in + ''|0) try='int getnetbyaddr_r(unsigned long, int, struct netent*, char*, size_t, struct netent**, int*);' + ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_UISBWRE ;; + esac + case "$getnetbyaddr_r_proto" in + ''|0) try='int getnetbyaddr_r(long, int, struct netent*, char*, int);' + ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_LISBI ;; + esac + case "$getnetbyaddr_r_proto" in + ''|0) try='struct netent* getnetbyaddr_r(in_addr_t, int, struct netent*, char*, int);' + ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=S_TISBI ;; + esac + case "$getnetbyaddr_r_proto" in + ''|0) try='struct netent* getnetbyaddr_r(long, int, struct netent*, char*, int);' + ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=S_LISBI ;; + esac + case "$getnetbyaddr_r_proto" in + ''|0) try='int getnetbyaddr_r(in_addr_t, int, struct netent*, struct netent_data*);' + ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_TISD ;; + esac + case "$getnetbyaddr_r_proto" in + ''|0) try='int getnetbyaddr_r(long, int, struct netent*, struct netent_data*);' + ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_LISD ;; + esac + case "$getnetbyaddr_r_proto" in + ''|0) try='int getnetbyaddr_r(int, int, struct netent*, struct netent_data*);' + ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_IISD ;; + esac + case "$getnetbyaddr_r_proto" in + ''|0) d_getnetbyaddr_r=undef + getnetbyaddr_r_proto=0 + echo "Disabling getnetbyaddr_r, cannot determine prototype." >&4 ;; + * ) case "$getnetbyaddr_r_proto" in + REENTRANT_PROTO*) ;; + *) getnetbyaddr_r_proto="REENTRANT_PROTO_$getnetbyaddr_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getnetbyaddr_r has no prototype, not using it." >&4 ;; + esac + d_getnetbyaddr_r=undef + getnetbyaddr_r_proto=0 + ;; + esac + ;; +*) getnetbyaddr_r_proto=0 + ;; +esac + +: see if getnetbyname_r exists +set getnetbyname_r d_getnetbyname_r +eval $inlibc +case "$d_getnetbyname_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_getnetbyname_r_proto:$usethreads" in + ":define") d_getnetbyname_r_proto=define + set d_getnetbyname_r_proto getnetbyname_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getnetbyname_r_proto" in + define) + case "$getnetbyname_r_proto" in + ''|0) try='int getnetbyname_r(const char*, struct netent*, char*, size_t, struct netent**, int*);' + ./protochk "extern $try" $hdrs && getnetbyname_r_proto=I_CSBWRE ;; + esac + case "$getnetbyname_r_proto" in + ''|0) try='int getnetbyname_r(const char*, struct netent*, char*, int);' + ./protochk "extern $try" $hdrs && getnetbyname_r_proto=I_CSBI ;; + esac + case "$getnetbyname_r_proto" in + ''|0) try='struct netent* getnetbyname_r(const char*, struct netent*, char*, int);' + ./protochk "extern $try" $hdrs && getnetbyname_r_proto=S_CSBI ;; + esac + case "$getnetbyname_r_proto" in + ''|0) try='int getnetbyname_r(const char*, struct netent*, struct netent_data*);' + ./protochk "extern $try" $hdrs && getnetbyname_r_proto=I_CSD ;; + esac + case "$getnetbyname_r_proto" in + ''|0) d_getnetbyname_r=undef + getnetbyname_r_proto=0 + echo "Disabling getnetbyname_r, cannot determine prototype." >&4 ;; + * ) case "$getnetbyname_r_proto" in + REENTRANT_PROTO*) ;; + *) getnetbyname_r_proto="REENTRANT_PROTO_$getnetbyname_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getnetbyname_r has no prototype, not using it." >&4 ;; + esac + d_getnetbyname_r=undef + getnetbyname_r_proto=0 + ;; + esac + ;; +*) getnetbyname_r_proto=0 + ;; +esac + +: see if getnetent_r exists +set getnetent_r d_getnetent_r +eval $inlibc +case "$d_getnetent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_getnetent_r_proto:$usethreads" in + ":define") d_getnetent_r_proto=define + set d_getnetent_r_proto getnetent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getnetent_r_proto" in + define) + case "$getnetent_r_proto" in + ''|0) try='int getnetent_r(struct netent*, char*, size_t, struct netent**, int*);' + ./protochk "extern $try" $hdrs && getnetent_r_proto=I_SBWRE ;; + esac + case "$getnetent_r_proto" in + ''|0) try='int getnetent_r(struct netent*, char*, int, int*);' + ./protochk "extern $try" $hdrs && getnetent_r_proto=I_SBIE ;; + esac + case "$getnetent_r_proto" in + ''|0) try='struct netent* getnetent_r(struct netent*, char*, int, int*);' + ./protochk "extern $try" $hdrs && getnetent_r_proto=S_SBIE ;; + esac + case "$getnetent_r_proto" in + ''|0) try='struct netent* getnetent_r(struct netent*, char*, int);' + ./protochk "extern $try" $hdrs && getnetent_r_proto=S_SBI ;; + esac + case "$getnetent_r_proto" in + ''|0) try='int getnetent_r(struct netent*, char*, int);' + ./protochk "extern $try" $hdrs && getnetent_r_proto=I_SBI ;; + esac + case "$getnetent_r_proto" in + ''|0) try='int getnetent_r(struct netent*, struct netent_data*);' + ./protochk "extern $try" $hdrs && getnetent_r_proto=I_SD ;; + esac + case "$getnetent_r_proto" in + ''|0) d_getnetent_r=undef + getnetent_r_proto=0 + echo "Disabling getnetent_r, cannot determine prototype." >&4 ;; + * ) case "$getnetent_r_proto" in + REENTRANT_PROTO*) ;; + *) getnetent_r_proto="REENTRANT_PROTO_$getnetent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getnetent_r has no prototype, not using it." >&4 ;; + esac + d_getnetent_r=undef + getnetent_r_proto=0 + ;; + esac + ;; +*) getnetent_r_proto=0 + ;; +esac + : see if prototypes for various getnetxxx netdb.h functions are available echo " " set d_getnetprotos getnetent $i_netdb netdb.h @@ -9995,6 +12299,157 @@ eval $inlibc set getpriority d_getprior eval $inlibc +: see if getprotobyname_r exists +set getprotobyname_r d_getprotobyname_r +eval $inlibc +case "$d_getprotobyname_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_getprotobyname_r_proto:$usethreads" in + ":define") d_getprotobyname_r_proto=define + set d_getprotobyname_r_proto getprotobyname_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getprotobyname_r_proto" in + define) + case "$getprotobyname_r_proto" in + ''|0) try='int getprotobyname_r(const char*, struct protoent*, char*, size_t, struct protoent**);' + ./protochk "extern $try" $hdrs && getprotobyname_r_proto=I_CSBWR ;; + esac + case "$getprotobyname_r_proto" in + ''|0) try='struct protoent* getprotobyname_r(const char*, struct protoent*, char*, int);' + ./protochk "extern $try" $hdrs && getprotobyname_r_proto=S_CSBI ;; + esac + case "$getprotobyname_r_proto" in + ''|0) try='int getprotobyname_r(const char*, struct protoent*, struct protoent_data*);' + ./protochk "extern $try" $hdrs && getprotobyname_r_proto=I_CSD ;; + esac + case "$getprotobyname_r_proto" in + ''|0) d_getprotobyname_r=undef + getprotobyname_r_proto=0 + echo "Disabling getprotobyname_r, cannot determine prototype." >&4 ;; + * ) case "$getprotobyname_r_proto" in + REENTRANT_PROTO*) ;; + *) getprotobyname_r_proto="REENTRANT_PROTO_$getprotobyname_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getprotobyname_r has no prototype, not using it." >&4 ;; + esac + d_getprotobyname_r=undef + getprotobyname_r_proto=0 + ;; + esac + ;; +*) getprotobyname_r_proto=0 + ;; +esac + +: see if getprotobynumber_r exists +set getprotobynumber_r d_getprotobynumber_r +eval $inlibc +case "$d_getprotobynumber_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_getprotobynumber_r_proto:$usethreads" in + ":define") d_getprotobynumber_r_proto=define + set d_getprotobynumber_r_proto getprotobynumber_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getprotobynumber_r_proto" in + define) + case "$getprotobynumber_r_proto" in + ''|0) try='int getprotobynumber_r(int, struct protoent*, char*, size_t, struct protoent**);' + ./protochk "extern $try" $hdrs && getprotobynumber_r_proto=I_ISBWR ;; + esac + case "$getprotobynumber_r_proto" in + ''|0) try='struct protoent* getprotobynumber_r(int, struct protoent*, char*, int);' + ./protochk "extern $try" $hdrs && getprotobynumber_r_proto=S_ISBI ;; + esac + case "$getprotobynumber_r_proto" in + ''|0) try='int getprotobynumber_r(int, struct protoent*, struct protoent_data*);' + ./protochk "extern $try" $hdrs && getprotobynumber_r_proto=I_ISD ;; + esac + case "$getprotobynumber_r_proto" in + ''|0) d_getprotobynumber_r=undef + getprotobynumber_r_proto=0 + echo "Disabling getprotobynumber_r, cannot determine prototype." >&4 ;; + * ) case "$getprotobynumber_r_proto" in + REENTRANT_PROTO*) ;; + *) getprotobynumber_r_proto="REENTRANT_PROTO_$getprotobynumber_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getprotobynumber_r has no prototype, not using it." >&4 ;; + esac + d_getprotobynumber_r=undef + getprotobynumber_r_proto=0 + ;; + esac + ;; +*) getprotobynumber_r_proto=0 + ;; +esac + +: see if getprotoent_r exists +set getprotoent_r d_getprotoent_r +eval $inlibc +case "$d_getprotoent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_getprotoent_r_proto:$usethreads" in + ":define") d_getprotoent_r_proto=define + set d_getprotoent_r_proto getprotoent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getprotoent_r_proto" in + define) + case "$getprotoent_r_proto" in + ''|0) try='int getprotoent_r(struct protoent*, char*, size_t, struct protoent**);' + ./protochk "extern $try" $hdrs && getprotoent_r_proto=I_SBWR ;; + esac + case "$getprotoent_r_proto" in + ''|0) try='int getprotoent_r(struct protoent*, char*, int);' + ./protochk "extern $try" $hdrs && getprotoent_r_proto=I_SBI ;; + esac + case "$getprotoent_r_proto" in + ''|0) try='struct protoent* getprotoent_r(struct protoent*, char*, int);' + ./protochk "extern $try" $hdrs && getprotoent_r_proto=S_SBI ;; + esac + case "$getprotoent_r_proto" in + ''|0) try='int getprotoent_r(struct protoent*, struct protoent_data*);' + ./protochk "extern $try" $hdrs && getprotoent_r_proto=I_SD ;; + esac + case "$getprotoent_r_proto" in + ''|0) d_getprotoent_r=undef + getprotoent_r_proto=0 + echo "Disabling getprotoent_r, cannot determine prototype." >&4 ;; + * ) case "$getprotoent_r_proto" in + REENTRANT_PROTO*) ;; + *) getprotoent_r_proto="REENTRANT_PROTO_$getprotoent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getprotoent_r has no prototype, not using it." >&4 ;; + esac + d_getprotoent_r=undef + getprotoent_r_proto=0 + ;; + esac + ;; +*) getprotoent_r_proto=0 + ;; +esac + : see if prototypes for various getprotoxxx netdb.h functions are available echo " " set d_getprotoprotos getprotoent $i_netdb netdb.h @@ -10008,6 +12463,173 @@ eval $inlibc set getpwent d_getpwent eval $inlibc +: see if getpwent_r exists +set getpwent_r d_getpwent_r +eval $inlibc +case "$d_getpwent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h" + case "$d_getpwent_r_proto:$usethreads" in + ":define") d_getpwent_r_proto=define + set d_getpwent_r_proto getpwent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getpwent_r_proto" in + define) + case "$getpwent_r_proto" in + ''|0) try='int getpwent_r(struct passwd*, char*, size_t, struct passwd**);' + ./protochk "extern $try" $hdrs && getpwent_r_proto=I_SBWR ;; + esac + case "$getpwent_r_proto" in + ''|0) try='int getpwent_r(struct passwd*, char*, int, struct passwd**);' + ./protochk "extern $try" $hdrs && getpwent_r_proto=I_SBIR ;; + esac + case "$getpwent_r_proto" in + ''|0) try='struct passwd* getpwent_r(struct passwd*, char*, size_t);' + ./protochk "extern $try" $hdrs && getpwent_r_proto=S_SBW ;; + esac + case "$getpwent_r_proto" in + ''|0) try='struct passwd* getpwent_r(struct passwd*, char*, int);' + ./protochk "extern $try" $hdrs && getpwent_r_proto=S_SBI ;; + esac + case "$getpwent_r_proto" in + ''|0) try='int getpwent_r(struct passwd*, char*, int);' + ./protochk "extern $try" $hdrs && getpwent_r_proto=I_SBI ;; + esac + case "$getpwent_r_proto" in + ''|0) try='int getpwent_r(struct passwd*, char*, int, FILE**);' + ./protochk "extern $try" $hdrs && getpwent_r_proto=I_SBIH ;; + esac + case "$getpwent_r_proto" in + ''|0) d_getpwent_r=undef + getpwent_r_proto=0 + echo "Disabling getpwent_r, cannot determine prototype." >&4 ;; + * ) case "$getpwent_r_proto" in + REENTRANT_PROTO*) ;; + *) getpwent_r_proto="REENTRANT_PROTO_$getpwent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getpwent_r has no prototype, not using it." >&4 ;; + esac + d_getpwent_r=undef + getpwent_r_proto=0 + ;; + esac + ;; +*) getpwent_r_proto=0 + ;; +esac + +: see if getpwnam_r exists +set getpwnam_r d_getpwnam_r +eval $inlibc +case "$d_getpwnam_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h" + case "$d_getpwnam_r_proto:$usethreads" in + ":define") d_getpwnam_r_proto=define + set d_getpwnam_r_proto getpwnam_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getpwnam_r_proto" in + define) + case "$getpwnam_r_proto" in + ''|0) try='int getpwnam_r(const char*, struct passwd*, char*, size_t, struct passwd**);' + ./protochk "extern $try" $hdrs && getpwnam_r_proto=I_CSBWR ;; + esac + case "$getpwnam_r_proto" in + ''|0) try='int getpwnam_r(const char*, struct passwd*, char*, int, struct passwd**);' + ./protochk "extern $try" $hdrs && getpwnam_r_proto=I_CSBIR ;; + esac + case "$getpwnam_r_proto" in + ''|0) try='struct passwd* getpwnam_r(const char*, struct passwd*, char*, int);' + ./protochk "extern $try" $hdrs && getpwnam_r_proto=S_CSBI ;; + esac + case "$getpwnam_r_proto" in + ''|0) try='int getpwnam_r(const char*, struct passwd*, char*, int);' + ./protochk "extern $try" $hdrs && getpwnam_r_proto=I_CSBI ;; + esac + case "$getpwnam_r_proto" in + ''|0) d_getpwnam_r=undef + getpwnam_r_proto=0 + echo "Disabling getpwnam_r, cannot determine prototype." >&4 ;; + * ) case "$getpwnam_r_proto" in + REENTRANT_PROTO*) ;; + *) getpwnam_r_proto="REENTRANT_PROTO_$getpwnam_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getpwnam_r has no prototype, not using it." >&4 ;; + esac + d_getpwnam_r=undef + getpwnam_r_proto=0 + ;; + esac + ;; +*) getpwnam_r_proto=0 + ;; +esac + +: see if getpwuid_r exists +set getpwuid_r d_getpwuid_r +eval $inlibc +case "$d_getpwuid_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h" + case "$d_getpwuid_r_proto:$usethreads" in + ":define") d_getpwuid_r_proto=define + set d_getpwuid_r_proto getpwuid_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getpwuid_r_proto" in + define) + case "$getpwuid_r_proto" in + ''|0) try='int getpwuid_r(uid_t, struct passwd*, char*, size_t, struct passwd**);' + ./protochk "extern $try" $hdrs && getpwuid_r_proto=I_TSBWR ;; + esac + case "$getpwuid_r_proto" in + ''|0) try='int getpwuid_r(uid_t, struct passwd*, char*, int, struct passwd**);' + ./protochk "extern $try" $hdrs && getpwuid_r_proto=I_TSBIR ;; + esac + case "$getpwuid_r_proto" in + ''|0) try='int getpwuid_r(uid_t, struct passwd*, char*, int);' + ./protochk "extern $try" $hdrs && getpwuid_r_proto=I_TSBI ;; + esac + case "$getpwuid_r_proto" in + ''|0) try='struct passwd* getpwuid_r(uid_t, struct passwd*, char*, int);' + ./protochk "extern $try" $hdrs && getpwuid_r_proto=S_TSBI ;; + esac + case "$getpwuid_r_proto" in + ''|0) d_getpwuid_r=undef + getpwuid_r_proto=0 + echo "Disabling getpwuid_r, cannot determine prototype." >&4 ;; + * ) case "$getpwuid_r_proto" in + REENTRANT_PROTO*) ;; + *) getpwuid_r_proto="REENTRANT_PROTO_$getpwuid_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getpwuid_r has no prototype, not using it." >&4 ;; + esac + d_getpwuid_r=undef + getpwuid_r_proto=0 + ;; + esac + ;; +*) getpwuid_r_proto=0 + ;; +esac + : see if getservbyname exists set getservbyname d_getsbyname @@ -10021,6 +12643,157 @@ eval $inlibc set getservent d_getsent eval $inlibc +: see if getservbyname_r exists +set getservbyname_r d_getservbyname_r +eval $inlibc +case "$d_getservbyname_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_getservbyname_r_proto:$usethreads" in + ":define") d_getservbyname_r_proto=define + set d_getservbyname_r_proto getservbyname_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getservbyname_r_proto" in + define) + case "$getservbyname_r_proto" in + ''|0) try='int getservbyname_r(const char*, const char*, struct servent*, char*, size_t, struct servent**);' + ./protochk "extern $try" $hdrs && getservbyname_r_proto=I_CCSBWR ;; + esac + case "$getservbyname_r_proto" in + ''|0) try='struct servent* getservbyname_r(const char*, const char*, struct servent*, char*, int);' + ./protochk "extern $try" $hdrs && getservbyname_r_proto=S_CCSBI ;; + esac + case "$getservbyname_r_proto" in + ''|0) try='int getservbyname_r(const char*, const char*, struct servent*, struct servent_data*);' + ./protochk "extern $try" $hdrs && getservbyname_r_proto=I_CCSD ;; + esac + case "$getservbyname_r_proto" in + ''|0) d_getservbyname_r=undef + getservbyname_r_proto=0 + echo "Disabling getservbyname_r, cannot determine prototype." >&4 ;; + * ) case "$getservbyname_r_proto" in + REENTRANT_PROTO*) ;; + *) getservbyname_r_proto="REENTRANT_PROTO_$getservbyname_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getservbyname_r has no prototype, not using it." >&4 ;; + esac + d_getservbyname_r=undef + getservbyname_r_proto=0 + ;; + esac + ;; +*) getservbyname_r_proto=0 + ;; +esac + +: see if getservbyport_r exists +set getservbyport_r d_getservbyport_r +eval $inlibc +case "$d_getservbyport_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_getservbyport_r_proto:$usethreads" in + ":define") d_getservbyport_r_proto=define + set d_getservbyport_r_proto getservbyport_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getservbyport_r_proto" in + define) + case "$getservbyport_r_proto" in + ''|0) try='int getservbyport_r(int, const char*, struct servent*, char*, size_t, struct servent**);' + ./protochk "extern $try" $hdrs && getservbyport_r_proto=I_ICSBWR ;; + esac + case "$getservbyport_r_proto" in + ''|0) try='struct servent* getservbyport_r(int, const char*, struct servent*, char*, int);' + ./protochk "extern $try" $hdrs && getservbyport_r_proto=S_ICSBI ;; + esac + case "$getservbyport_r_proto" in + ''|0) try='int getservbyport_r(int, const char*, struct servent*, struct servent_data*);' + ./protochk "extern $try" $hdrs && getservbyport_r_proto=I_ICSD ;; + esac + case "$getservbyport_r_proto" in + ''|0) d_getservbyport_r=undef + getservbyport_r_proto=0 + echo "Disabling getservbyport_r, cannot determine prototype." >&4 ;; + * ) case "$getservbyport_r_proto" in + REENTRANT_PROTO*) ;; + *) getservbyport_r_proto="REENTRANT_PROTO_$getservbyport_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getservbyport_r has no prototype, not using it." >&4 ;; + esac + d_getservbyport_r=undef + getservbyport_r_proto=0 + ;; + esac + ;; +*) getservbyport_r_proto=0 + ;; +esac + +: see if getservent_r exists +set getservent_r d_getservent_r +eval $inlibc +case "$d_getservent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_getservent_r_proto:$usethreads" in + ":define") d_getservent_r_proto=define + set d_getservent_r_proto getservent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getservent_r_proto" in + define) + case "$getservent_r_proto" in + ''|0) try='int getservent_r(struct servent*, char*, size_t, struct servent**);' + ./protochk "extern $try" $hdrs && getservent_r_proto=I_SBWR ;; + esac + case "$getservent_r_proto" in + ''|0) try='int getservent_r(struct servent*, char*, int);' + ./protochk "extern $try" $hdrs && getservent_r_proto=I_SBI ;; + esac + case "$getservent_r_proto" in + ''|0) try='struct servent* getservent_r(struct servent*, char*, int);' + ./protochk "extern $try" $hdrs && getservent_r_proto=S_SBI ;; + esac + case "$getservent_r_proto" in + ''|0) try='int getservent_r(struct servent*, struct servent_data*);' + ./protochk "extern $try" $hdrs && getservent_r_proto=I_SD ;; + esac + case "$getservent_r_proto" in + ''|0) d_getservent_r=undef + getservent_r_proto=0 + echo "Disabling getservent_r, cannot determine prototype." >&4 ;; + * ) case "$getservent_r_proto" in + REENTRANT_PROTO*) ;; + *) getservent_r_proto="REENTRANT_PROTO_$getservent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getservent_r has no prototype, not using it." >&4 ;; + esac + d_getservent_r=undef + getservent_r_proto=0 + ;; + esac + ;; +*) getservent_r_proto=0 + ;; +esac + : see if prototypes for various getservxxx netdb.h functions are available echo " " set d_getservprotos getservent $i_netdb netdb.h @@ -10030,6 +12803,55 @@ eval $hasproto set getspnam d_getspnam eval $inlibc +: see if this is a shadow.h system +set shadow.h i_shadow +eval $inhdr + +: see if getspnam_r exists +set getspnam_r d_getspnam_r +eval $inlibc +case "$d_getspnam_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_shadow shadow.h" + case "$d_getspnam_r_proto:$usethreads" in + ":define") d_getspnam_r_proto=define + set d_getspnam_r_proto getspnam_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_getspnam_r_proto" in + define) + case "$getspnam_r_proto" in + ''|0) try='int getspnam_r(const char*, struct spwd*, char*, size_t, struct spwd**);' + ./protochk "extern $try" $hdrs && getspnam_r_proto=I_CSBWR ;; + esac + case "$getspnam_r_proto" in + ''|0) try='struct spwd* getspnam_r(const char*, struct spwd*, char*, int);' + ./protochk "extern $try" $hdrs && getspnam_r_proto=S_CSBI ;; + esac + case "$getspnam_r_proto" in + ''|0) d_getspnam_r=undef + getspnam_r_proto=0 + echo "Disabling getspnam_r, cannot determine prototype." >&4 ;; + * ) case "$getspnam_r_proto" in + REENTRANT_PROTO*) ;; + *) getspnam_r_proto="REENTRANT_PROTO_$getspnam_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "getspnam_r has no prototype, not using it." >&4 ;; + esac + d_getspnam_r=undef + getspnam_r_proto=0 + ;; + esac + ;; +*) getspnam_r_proto=0 + ;; +esac + : see if gettimeofday or ftime exists set gettimeofday d_gettimeod eval $inlibc @@ -10049,28 +12871,48 @@ case "$d_gettimeod$d_ftime" in ;; esac -: see if this is an grp system -set grp.h i_grp -eval $inhdr - -case "$i_grp" in -$define) - xxx=`./findhdr grp.h` - $cppstdin $cppflags $cppminus < $xxx >$$.h - - if $contains 'gr_passwd' $$.h >/dev/null 2>&1; then - val="$define" - else - val="$undef" - fi - set d_grpasswd - eval $setvar - - $rm -f $$.h +: see if gmtime_r exists +set gmtime_r d_gmtime_r +eval $inlibc +case "$d_gmtime_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h" + case "$d_gmtime_r_proto:$usethreads" in + ":define") d_gmtime_r_proto=define + set d_gmtime_r_proto gmtime_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_gmtime_r_proto" in + define) + case "$gmtime_r_proto" in + ''|0) try='struct tm* gmtime_r(const time_t*, struct tm*);' + ./protochk "extern $try" $hdrs && gmtime_r_proto=S_TS ;; + esac + case "$gmtime_r_proto" in + ''|0) try='int gmtime_r(const time_t*, struct tm*);' + ./protochk "extern $try" $hdrs && gmtime_r_proto=I_TS ;; + esac + case "$gmtime_r_proto" in + ''|0) d_gmtime_r=undef + gmtime_r_proto=0 + echo "Disabling gmtime_r, cannot determine prototype." >&4 ;; + * ) case "$gmtime_r_proto" in + REENTRANT_PROTO*) ;; + *) gmtime_r_proto="REENTRANT_PROTO_$gmtime_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac ;; -*) - val="$undef"; - set d_grpasswd; eval $setvar + *) case "$usethreads" in + define) echo "gmtime_r has no prototype, not using it." >&4 ;; + esac + d_gmtime_r=undef + gmtime_r_proto=0 + ;; + esac + ;; +*) gmtime_r_proto=0 ;; esac @@ -10124,10 +12966,6 @@ esac set d_htonl eval $setvar -: see if iconv exists -set iconv d_iconv -eval $inlibc - : index or strchr echo " " if set index val -f; eval $csym; $val; then @@ -10190,6 +13028,14 @@ set d_isascii eval $setvar $rm -f isascii* +: see if isfinite exists +set isfinite d_isfinite +eval $inlibc + +: see if isinf exists +set isinf d_isinf +eval $inlibc + : see if isnan exists set isnan d_isnan eval $inlibc @@ -10265,6 +13111,51 @@ eval $setvar set link d_link eval $inlibc +: see if localtime_r exists +set localtime_r d_localtime_r +eval $inlibc +case "$d_localtime_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h" + case "$d_localtime_r_proto:$usethreads" in + ":define") d_localtime_r_proto=define + set d_localtime_r_proto localtime_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_localtime_r_proto" 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 ;; + 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 ;; + esac + case "$localtime_r_proto" in + ''|0) d_localtime_r=undef + localtime_r_proto=0 + echo "Disabling localtime_r, cannot determine prototype." >&4 ;; + * ) case "$localtime_r_proto" in + REENTRANT_PROTO*) ;; + *) localtime_r_proto="REENTRANT_PROTO_$localtime_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "localtime_r has no prototype, not using it." >&4 ;; + esac + d_localtime_r=undef + localtime_r_proto=0 + ;; + esac + ;; +*) localtime_r_proto=0 + ;; +esac + : see if localeconv exists set localeconv d_locconv eval $inlibc @@ -10369,10 +13260,6 @@ esac -: see if modfl exists -set modfl d_modfl -eval $inlibc - : see if mprotect exists set mprotect d_mprotect eval $inlibc @@ -10452,6 +13339,14 @@ eval $inlibc set nice d_nice eval $inlibc +: see if this is a langinfo.h system +set langinfo.h i_langinfo +eval $inhdr + +: see if nl_langinfo exists +set nl_langinfo d_nl_langinfo +eval $inlibc + : check for length of character echo " " case "$charsize" in @@ -10467,7 +13362,7 @@ int main() EOCP set try if eval $compile_ok; then - dflt=`./try` + dflt=`$run ./try` else dflt='1' echo "(I can't seem to compile the test program. Guessing...)" @@ -10583,7 +13478,7 @@ esac case "$i8type" in '') set try -DINT8 if eval $compile; then - case "`./try$exe_ext`" in + case "`$run ./try`" in int8_t) i8type=int8_t u8type=uint8_t i8size=1 @@ -10616,7 +13511,7 @@ esac case "$i16type" in '') set try -DINT16 if eval $compile; then - case "`./try$exe_ext`" in + case "`$run ./try`" in int16_t) i16type=int16_t u16type=uint16_t @@ -10658,7 +13553,7 @@ esac case "$i32type" in '') set try -DINT32 if eval $compile; then - case "`./try$exe_ext`" in + case "`$run ./try`" in int32_t) i32type=int32_t u32type=uint32_t @@ -10737,18 +13632,18 @@ set try d_nv_preserves_uv="$undef" if eval $compile; then - d_nv_preserves_uv_bits="`./try$exe_ext`" + nv_preserves_uv_bits="`$run ./try`" fi -case "$d_nv_preserves_uv_bits" in +case "$nv_preserves_uv_bits" in \-[1-9]*) - d_nv_preserves_uv_bits=`expr 0 - $d_nv_preserves_uv_bits` - $echo "Your NVs can preserve all $d_nv_preserves_uv_bits bits of your UVs." 2>&1 + 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" ;; -[1-9]*) $echo "Your NVs can preserve only $d_nv_preserves_uv_bits bits of your UVs." 2>&1 +[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 - d_nv_preserves_uv_bits="$undef" ;; + nv_preserves_uv_bits="$undef" ;; esac $rm -f try.* try @@ -10777,13 +13672,6 @@ $rm -f try.* try set d_off64_t eval $setvar -: see if POSIX threads are available -set pthread.h i_pthread -eval $inhdr - - - - : how to create joinable pthreads if test "X$usethreads" = "X$define" -a "X$i_pthread" = "X$define"; then echo " " @@ -10852,6 +13740,65 @@ eval $inlibc set poll d_poll eval $inlibc +: see if readlink exists +set readlink d_readlink +eval $inlibc + +echo " " +procselfexe='' +val="$undef" +case "$d_readlink" in +"$define") + if $issymlink /proc/self/exe ; then + $ls -l /proc/self/exe > reflect + if $contains /`basename $ls` reflect >/dev/null 2>&1; then + echo "You have Linux-like /proc/self/exe." + procselfexe='"/proc/self/exe"' + val="$define" + fi + fi + if $issymlink /proc/curproc/file ; then + $ls -l /proc/curproc/file > reflect + if $contains /`basename $ls` reflect >/dev/null 2>&1; then + echo "You have BSD-like /proc/curproc/file." + procselfexe='"/proc/curproc/file"' + val="$define" + fi + fi + ;; +esac +$rm -f reflect +set d_procselfexe +eval $setvar + +: see whether the pthread_atfork exists +$cat >try.c < +#include +int main() { +#ifdef PTHREAD_ATFORK + pthread_atfork(NULL,NULL,NULL); +#endif +} +EOP + +: see if pthread_atfork exists +set try -DPTHREAD_ATFORK +if eval $compile; then + val="$define" +else + val="$undef" +fi +case "$usethreads" in +$define) + case "$val" in + $define) echo 'pthread_atfork found.' >&4 ;; + *) echo 'pthread_atfork NOT found.' >&4 ;; + esac +esac +set d_pthread_atfork +eval $setvar + : see whether the various POSIXish _yields exist $cat >try.c <$$.h - - if $contains 'pw_quota' $$.h >/dev/null 2>&1; then - val="$define" - else - val="$undef" - fi - set d_pwquota - eval $setvar - - if $contains 'pw_age' $$.h >/dev/null 2>&1; then - val="$define" - else - val="$undef" - fi - set d_pwage - eval $setvar - - if $contains 'pw_change' $$.h >/dev/null 2>&1; then - val="$define" - else - val="$undef" - fi - set d_pwchange - eval $setvar - - if $contains 'pw_class' $$.h >/dev/null 2>&1; then - val="$define" - else - val="$undef" - fi - set d_pwclass - eval $setvar - - if $contains 'pw_expire' $$.h >/dev/null 2>&1; then - val="$define" - else - val="$undef" - fi - set d_pwexpire - eval $setvar - - if $contains 'pw_comment' $$.h >/dev/null 2>&1; then - val="$define" - else - val="$undef" - fi - set d_pwcomment - eval $setvar - - if $contains 'pw_gecos' $$.h >/dev/null 2>&1; then - val="$define" - else - val="$undef" - fi - set d_pwgecos - eval $setvar - - if $contains 'pw_passwd' $$.h >/dev/null 2>&1; then - val="$define" - else - val="$undef" - fi - set d_pwpasswd - eval $setvar - - $rm -f $$.h +: see if random_r exists +set random_r d_random_r +eval $inlibc +case "$d_random_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h" + case "$d_random_r_proto:$usethreads" in + ":define") d_random_r_proto=define + set d_random_r_proto random_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_random_r_proto" in + define) + case "$random_r_proto" in + ''|0) try='int random_r(int*, struct random_data*);' + ./protochk "extern $try" $hdrs && random_r_proto=I_TS ;; + esac + case "$random_r_proto" in + ''|0) d_random_r=undef + random_r_proto=0 + echo "Disabling random_r, cannot determine prototype." >&4 ;; + * ) case "$random_r_proto" in + REENTRANT_PROTO*) ;; + *) random_r_proto="REENTRANT_PROTO_$random_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac ;; -*) - val="$undef"; - set d_pwquota; eval $setvar - set d_pwage; eval $setvar - set d_pwchange; eval $setvar - set d_pwclass; eval $setvar - set d_pwexpire; eval $setvar - set d_pwcomment; eval $setvar - set d_pwgecos; eval $setvar - set d_pwpasswd; eval $setvar + *) case "$usethreads" in + define) echo "random_r has no prototype, not using it." >&4 ;; + esac + d_random_r=undef + random_r_proto=0 + ;; + esac + ;; +*) random_r_proto=0 ;; esac @@ -11022,9 +13922,95 @@ eval $inlibc set rewinddir d_rewinddir eval $inlibc -: see if readlink exists -set readlink d_readlink +: see if readdir64_r exists +set readdir64_r d_readdir64_r +eval $inlibc +case "$d_readdir64_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_dirent dirent.h" + case "$d_readdir64_r_proto:$usethreads" in + ":define") d_readdir64_r_proto=define + set d_readdir64_r_proto readdir64_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_readdir64_r_proto" 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 ;; + esac + case "$readdir64_r_proto" in + ''|0) try='int readdir64_r(DIR*, struct dirent64*);' + ./protochk "extern $try" $hdrs && readdir64_r_proto=I_TS ;; + esac + case "$readdir64_r_proto" in + ''|0) d_readdir64_r=undef + readdir64_r_proto=0 + echo "Disabling readdir64_r, cannot determine prototype." >&4 ;; + * ) case "$readdir64_r_proto" in + REENTRANT_PROTO*) ;; + *) readdir64_r_proto="REENTRANT_PROTO_$readdir64_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "readdir64_r has no prototype, not using it." >&4 ;; + esac + d_readdir64_r=undef + readdir64_r_proto=0 + ;; + esac + ;; +*) readdir64_r_proto=0 + ;; +esac + +: see if readdir_r exists +set readdir_r d_readdir_r eval $inlibc +case "$d_readdir_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_dirent dirent.h" + case "$d_readdir_r_proto:$usethreads" in + ":define") d_readdir_r_proto=define + set d_readdir_r_proto readdir_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_readdir_r_proto" 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 ;; + esac + case "$readdir_r_proto" in + ''|0) try='int readdir_r(DIR*, struct dirent*);' + ./protochk "extern $try" $hdrs && readdir_r_proto=I_TS ;; + esac + case "$readdir_r_proto" in + ''|0) d_readdir_r=undef + readdir_r_proto=0 + echo "Disabling readdir_r, cannot determine prototype." >&4 ;; + * ) case "$readdir_r_proto" in + REENTRANT_PROTO*) ;; + *) readdir_r_proto="REENTRANT_PROTO_$readdir_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "readdir_r has no prototype, not using it." >&4 ;; + esac + d_readdir_r=undef + readdir_r_proto=0 + ;; + esac + ;; +*) readdir_r_proto=0 + ;; +esac : see if readv exists set readv d_readv @@ -11067,12 +14053,14 @@ set i_memory eval $setvar : can bcopy handle overlapping blocks? +echo " " val="$undef" -case "$d_bcopy" in -"$define") - echo " " - echo "Checking to see if your bcopy() can do overlapping copies..." >&4 - $cat >try.c <&4 + $cat >try.c <= 0; align--) { @@ -11119,36 +14109,34 @@ for (align = 7; align >= 0; align--) { exit(0); } EOCP - set try - if eval $compile_ok; then - if ./try 2>/dev/null; then - echo "Yes, it can." - val="$define" + set try + if eval $compile_ok; then + if ./try 2>/dev/null; then + echo "Yes, it can." + val="$define" + else + echo "It can't, sorry." + fi else - echo "It can't, sorry." - case "$d_memmove" in - "$define") echo "But that's Ok since you have memmove()." ;; - esac + echo "(I can't compile the test program, so we'll assume not...)" fi - else - echo "(I can't compile the test program, so we'll assume not...)" - case "$d_memmove" in - "$define") echo "But that's Ok since you have memmove()." ;; - esac - fi + ;; + esac + $rm -f try.* try core ;; esac -$rm -f try.* try core set d_safebcpy eval $setvar : can memcpy handle overlapping blocks? +echo " " val="$undef" -case "$d_memcpy" in -"$define") - echo " " - echo "Checking to see if your memcpy() can do overlapping copies..." >&4 - $cat >try.c <&4 + $cat >try.c <= 0; align--) { exit(0); } EOCP - set try - if eval $compile_ok; then - if ./try 2>/dev/null; then - echo "Yes, it can." - val="$define" + set try + if eval $compile_ok; then + if ./try 2>/dev/null; then + echo "Yes, it can." + val="$define" + else + echo "It can't, sorry." + fi else - echo "It can't, sorry." - case "$d_memmove" in - "$define") echo "But that's Ok since you have memmove()." ;; - esac + echo "(I can't compile the test program, so we'll assume not...)" fi - else - echo "(I can't compile the test program, so we'll assume not...)" - case "$d_memmove" in - "$define") echo "But that's Ok since you have memmove()." ;; - esac - fi + ;; + esac + $rm -f try.* try core ;; esac -$rm -f try.* try core set d_safemcpy eval $setvar @@ -11259,7 +14243,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 @@ -11428,7 +14412,7 @@ END val="$undef" set try if eval $compile; then - xxx=`./try` + xxx=`$run ./try` case "$xxx" in semun) val="$define" ;; esac @@ -11486,7 +14470,7 @@ END val="$undef" set try if eval $compile; then - xxx=`./try` + xxx=`$run ./try` case "$xxx" in semid_ds) val="$define" ;; esac @@ -11532,10 +14516,100 @@ eval $inlibc set setgrent d_setgrent eval $inlibc +: see if setgrent_r exists +set setgrent_r d_setgrent_r +eval $inlibc +case "$d_setgrent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h" + case "$d_setgrent_r_proto:$usethreads" in + ":define") d_setgrent_r_proto=define + set d_setgrent_r_proto setgrent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_setgrent_r_proto" in + define) + case "$setgrent_r_proto" in + ''|0) try='int setgrent_r(FILE**);' + ./protochk "extern $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 ;; + esac + case "$setgrent_r_proto" in + ''|0) d_setgrent_r=undef + setgrent_r_proto=0 + echo "Disabling setgrent_r, cannot determine prototype." >&4 ;; + * ) case "$setgrent_r_proto" in + REENTRANT_PROTO*) ;; + *) setgrent_r_proto="REENTRANT_PROTO_$setgrent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "setgrent_r has no prototype, not using it." >&4 ;; + esac + d_setgrent_r=undef + setgrent_r_proto=0 + ;; + esac + ;; +*) setgrent_r_proto=0 + ;; +esac + : see if sethostent exists set sethostent d_sethent eval $inlibc +: see if sethostent_r exists +set sethostent_r d_sethostent_r +eval $inlibc +case "$d_sethostent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_sethostent_r_proto:$usethreads" in + ":define") d_sethostent_r_proto=define + set d_sethostent_r_proto sethostent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_sethostent_r_proto" 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 ;; + esac + case "$sethostent_r_proto" in + ''|0) try='void sethostent_r(int, struct hostent_data*);' + ./protochk "extern $try" $hdrs && sethostent_r_proto=V_ID ;; + esac + case "$sethostent_r_proto" in + ''|0) d_sethostent_r=undef + sethostent_r_proto=0 + echo "Disabling sethostent_r, cannot determine prototype." >&4 ;; + * ) case "$sethostent_r_proto" in + REENTRANT_PROTO*) ;; + *) sethostent_r_proto="REENTRANT_PROTO_$sethostent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "sethostent_r has no prototype, not using it." >&4 ;; + esac + d_sethostent_r=undef + sethostent_r_proto=0 + ;; + esac + ;; +*) sethostent_r_proto=0 + ;; +esac + : see if setitimer exists set setitimer d_setitimer eval $inlibc @@ -11548,10 +14622,100 @@ eval $inlibc set setlocale d_setlocale eval $inlibc +: see if locale.h is available +set locale.h i_locale +eval $inhdr + +: see if setlocale_r exists +set setlocale_r d_setlocale_r +eval $inlibc +case "$d_setlocale_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_locale locale.h" + case "$d_setlocale_r_proto:$usethreads" in + ":define") d_setlocale_r_proto=define + set d_setlocale_r_proto setlocale_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_setlocale_r_proto" 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 ;; + esac + case "$setlocale_r_proto" in + ''|0) d_setlocale_r=undef + setlocale_r_proto=0 + echo "Disabling setlocale_r, cannot determine prototype." >&4 ;; + * ) case "$setlocale_r_proto" in + REENTRANT_PROTO*) ;; + *) setlocale_r_proto="REENTRANT_PROTO_$setlocale_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "setlocale_r has no prototype, not using it." >&4 ;; + esac + d_setlocale_r=undef + setlocale_r_proto=0 + ;; + esac + ;; +*) setlocale_r_proto=0 + ;; +esac + : see if setnetent exists set setnetent d_setnent eval $inlibc +: see if setnetent_r exists +set setnetent_r d_setnetent_r +eval $inlibc +case "$d_setnetent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_setnetent_r_proto:$usethreads" in + ":define") d_setnetent_r_proto=define + set d_setnetent_r_proto setnetent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_setnetent_r_proto" 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 ;; + esac + case "$setnetent_r_proto" in + ''|0) try='void setnetent_r(int, struct netent_data*);' + ./protochk "extern $try" $hdrs && setnetent_r_proto=V_ID ;; + esac + case "$setnetent_r_proto" in + ''|0) d_setnetent_r=undef + setnetent_r_proto=0 + echo "Disabling setnetent_r, cannot determine prototype." >&4 ;; + * ) case "$setnetent_r_proto" in + REENTRANT_PROTO*) ;; + *) setnetent_r_proto="REENTRANT_PROTO_$setnetent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "setnetent_r has no prototype, not using it." >&4 ;; + esac + d_setnetent_r=undef + setnetent_r_proto=0 + ;; + esac + ;; +*) setnetent_r_proto=0 + ;; +esac + : see if setprotoent exists set setprotoent d_setpent eval $inlibc @@ -11572,10 +14736,100 @@ eval $inlibc set setproctitle d_setproctitle eval $inlibc +: see if setprotoent_r exists +set setprotoent_r d_setprotoent_r +eval $inlibc +case "$d_setprotoent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_setprotoent_r_proto:$usethreads" in + ":define") d_setprotoent_r_proto=define + set d_setprotoent_r_proto setprotoent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_setprotoent_r_proto" 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 ;; + esac + case "$setprotoent_r_proto" in + ''|0) try='void setprotoent_r(int, struct protoent_data*);' + ./protochk "extern $try" $hdrs && setprotoent_r_proto=V_ID ;; + esac + case "$setprotoent_r_proto" in + ''|0) d_setprotoent_r=undef + setprotoent_r_proto=0 + echo "Disabling setprotoent_r, cannot determine prototype." >&4 ;; + * ) case "$setprotoent_r_proto" in + REENTRANT_PROTO*) ;; + *) setprotoent_r_proto="REENTRANT_PROTO_$setprotoent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "setprotoent_r has no prototype, not using it." >&4 ;; + esac + d_setprotoent_r=undef + setprotoent_r_proto=0 + ;; + esac + ;; +*) setprotoent_r_proto=0 + ;; +esac + : see if setpwent exists set setpwent d_setpwent eval $inlibc +: see if setpwent_r exists +set setpwent_r d_setpwent_r +eval $inlibc +case "$d_setpwent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h" + case "$d_setpwent_r_proto:$usethreads" in + ":define") d_setpwent_r_proto=define + set d_setpwent_r_proto setpwent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_setpwent_r_proto" in + define) + case "$setpwent_r_proto" in + ''|0) try='int setpwent_r(FILE**);' + ./protochk "extern $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 ;; + esac + case "$setpwent_r_proto" in + ''|0) d_setpwent_r=undef + setpwent_r_proto=0 + echo "Disabling setpwent_r, cannot determine prototype." >&4 ;; + * ) case "$setpwent_r_proto" in + REENTRANT_PROTO*) ;; + *) setpwent_r_proto="REENTRANT_PROTO_$setpwent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "setpwent_r has no prototype, not using it." >&4 ;; + esac + d_setpwent_r=undef + setpwent_r_proto=0 + ;; + esac + ;; +*) setpwent_r_proto=0 + ;; +esac + : see if setregid exists set setregid d_setregid eval $inlibc @@ -11600,6 +14854,51 @@ eval $inlibc set setservent d_setsent eval $inlibc +: see if setservent_r exists +set setservent_r d_setservent_r +eval $inlibc +case "$d_setservent_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h" + case "$d_setservent_r_proto:$usethreads" in + ":define") d_setservent_r_proto=define + set d_setservent_r_proto setservent_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_setservent_r_proto" 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 ;; + esac + case "$setservent_r_proto" in + ''|0) try='void setservent_r(int, struct servent_data*);' + ./protochk "extern $try" $hdrs && setservent_r_proto=V_ID ;; + esac + case "$setservent_r_proto" in + ''|0) d_setservent_r=undef + setservent_r_proto=0 + echo "Disabling setservent_r, cannot determine prototype." >&4 ;; + * ) case "$setservent_r_proto" in + REENTRANT_PROTO*) ;; + *) setservent_r_proto="REENTRANT_PROTO_$setservent_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "setservent_r has no prototype, not using it." >&4 ;; + esac + d_setservent_r=undef + setservent_r_proto=0 + ;; + esac + ;; +*) setservent_r_proto=0 + ;; +esac + : see if setsid exists set setsid d_setsid eval $inlibc @@ -11668,10 +14967,15 @@ esac case "$d_sfio" in $define) ;; *) : Remove sfio from list of libraries to use - set `echo X $libs | $sed -e 's/-lsfio / /' -e 's/-lsfio$//'` - shift - libs="$*" - echo "libs = $libs" >&4 + case "$libs" in + *-lsfio*) + echo "Removing unneeded -lsfio from library list" >&4 + set `echo X $libs | $sed -e 's/-lsfio / /' -e 's/-lsfio$//'` + shift + libs="$*" + echo "libs = $libs" >&4 + ;; + esac ;; esac @@ -11811,7 +15115,7 @@ int main() EOP set try if eval $compile; then - if ./try >/dev/null 2>&1; then + if $run ./try >/dev/null 2>&1; then echo "POSIX sigsetjmp found." >&4 val="$define" else @@ -11841,10 +15145,107 @@ $rm -f try.c try set sockatmark d_sockatmark eval $inlibc +: see if prototype for sockatmark is available +echo " " +set d_sockatmarkproto sockatmark $d_socket sys/socket.h +eval $hasproto + : see if socks5_init exists set socks5_init d_socks5_init eval $inlibc +: see if srand48_r exists +set srand48_r d_srand48_r +eval $inlibc +case "$d_srand48_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h" + case "$d_srand48_r_proto:$usethreads" in + ":define") d_srand48_r_proto=define + set d_srand48_r_proto srand48_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_srand48_r_proto" 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 ;; + esac + case "$srand48_r_proto" in + ''|0) d_srand48_r=undef + srand48_r_proto=0 + echo "Disabling srand48_r, cannot determine prototype." >&4 ;; + * ) case "$srand48_r_proto" in + REENTRANT_PROTO*) ;; + *) srand48_r_proto="REENTRANT_PROTO_$srand48_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "srand48_r has no prototype, not using it." >&4 ;; + esac + d_srand48_r=undef + srand48_r_proto=0 + ;; + esac + ;; +*) srand48_r_proto=0 + ;; +esac + +: see if srandom_r exists +set srandom_r d_srandom_r +eval $inlibc +case "$d_srandom_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h" + case "$d_srandom_r_proto:$usethreads" in + ":define") d_srandom_r_proto=define + set d_srandom_r_proto srandom_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_srandom_r_proto" 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 ;; + esac + case "$srandom_r_proto" in + ''|0) d_srandom_r=undef + srandom_r_proto=0 + echo "Disabling srandom_r, cannot determine prototype." >&4 ;; + * ) case "$srandom_r_proto" in + REENTRANT_PROTO*) ;; + *) srandom_r_proto="REENTRANT_PROTO_$srandom_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "srandom_r has no prototype, not using it." >&4 ;; + esac + d_srandom_r=undef + srandom_r_proto=0 + ;; + esac + ;; +*) srandom_r_proto=0 + ;; +esac + +: see if prototype for setresgid is available +echo " " +set d_sresgproto setresgid $i_unistd unistd.h +eval $hasproto + +: see if prototype for setresuid is available +echo " " +set d_sresuproto setresuid $i_unistd unistd.h +eval $hasproto + : see if sys/stat.h is available set sys/stat.h i_sysstat eval $inhdr @@ -11979,8 +15380,8 @@ int main() { EOP val="$undef" set try -if eval $compile; then - if ./try; then +if eval $compile && $to try.c; then + if $run ./try; then echo "Your stdio acts pretty std." val="$define" else @@ -11990,6 +15391,26 @@ else echo "Your stdio doesn't appear very std." fi $rm -f try.c try + +# glibc 2.2.90 and above apparently change stdio streams so Perl's +# direct buffer manipulation no longer works. The Configure tests +# should be changed to correctly detect this, but until then, +# the following check should at least let perl compile and run. +# (This quick fix should be updated before 5.8.1.) +# To be defensive, reject all unknown versions, and all versions > 2.2.9. +# A. Dougherty, June 3, 2002. +case "$d_gnulibc" in +$define) + case "$gnulibc_version" in + 2.[01]*) ;; + 2.2) ;; + 2.2.[0-9]) ;; + *) echo "But I will not snoop inside glibc $gnulibc_version stdio buffers." + val="$undef" + ;; + esac + ;; +esac set d_stdstdio eval $setvar @@ -12076,8 +15497,8 @@ int main() { } EOP set try - if eval $compile; then - case `./try$exe_ext` in + if eval $compile && $to try.c; then + case `$run ./try` in Pass_changed) echo "Increasing ptr in your stdio decreases cnt by the same amount. Good." >&4 d_stdio_ptr_lval_sets_cnt="$define" ;; @@ -12116,8 +15537,8 @@ int main() { } EOP set try - if eval $compile; then - if ./try; then + if eval $compile && $to try.c; then + if $run ./try; then echo "And its _base field acts std." val="$define" else @@ -12147,7 +15568,7 @@ EOCP do set try -DSTDIO_STREAM_ARRAY=$s if eval $compile; then - case "`./try$exe_ext`" in + case "`$run ./try`" in yes) stdio_stream_array=$s; break ;; esac fi @@ -12234,6 +15655,55 @@ if test "X$d_strerror" = X -o "X$d_syserrlst" = X; then fi fi +: see if strerror_r exists +set strerror_r d_strerror_r +eval $inlibc +case "$d_strerror_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_string string.h" + case "$d_strerror_r_proto:$usethreads" in + ":define") d_strerror_r_proto=define + set d_strerror_r_proto strerror_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_strerror_r_proto" in + define) + case "$strerror_r_proto" in + ''|0) try='int strerror_r(int, char*, size_t);' + ./protochk "extern $try" $hdrs && strerror_r_proto=I_IBW ;; + esac + case "$strerror_r_proto" in + ''|0) try='int strerror_r(int, char*, int);' + ./protochk "extern $try" $hdrs && strerror_r_proto=I_IBI ;; + esac + case "$strerror_r_proto" in + ''|0) try='char* strerror_r(int, char*, size_t);' + ./protochk "extern $try" $hdrs && strerror_r_proto=B_IBW ;; + esac + case "$strerror_r_proto" in + ''|0) d_strerror_r=undef + strerror_r_proto=0 + echo "Disabling strerror_r, cannot determine prototype." >&4 ;; + * ) case "$strerror_r_proto" in + REENTRANT_PROTO*) ;; + *) strerror_r_proto="REENTRANT_PROTO_$strerror_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "strerror_r has no prototype, not using it." >&4 ;; + esac + d_strerror_r=undef + strerror_r_proto=0 + ;; + esac + ;; +*) strerror_r_proto=0 + ;; +esac + : see if strftime exists set strftime d_strftime eval $inlibc @@ -12293,7 +15763,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try` + yyy=`$run ./try` case "$yyy" in ok) echo "Your strtoll() seems to be working okay." ;; *) cat <&4 @@ -12378,7 +15848,7 @@ EOCP EOCP set try if eval $compile; then - case "`./try`" in + case "`$run ./try`" in ok) echo "Your strtoul() seems to be working okay." ;; *) cat <&4 Your strtoul() doesn't seem to be working okay. @@ -12432,7 +15902,7 @@ int main() { EOCP set try if eval $compile; then - case "`./try`" in + case "`$run ./try`" in ok) echo "Your strtoull() seems to be working okay." ;; *) cat <&4 Your strtoull() doesn't seem to be working okay. @@ -12484,7 +15954,7 @@ int main() { EOCP set try if eval $compile; then - case "`./try`" in + case "`$run ./try`" in ok) echo "Your strtouq() seems to be working okay." ;; *) cat <&4 Your strtouq() doesn't seem to be working okay. @@ -12508,6 +15978,11 @@ eval $inlibc set syscall d_syscall eval $inlibc +: see if prototype for syscall is available +echo " " +set d_syscallproto syscall $i_unistd unistd.h +eval $hasproto + : see if sysconf exists set sysconf d_sysconf eval $inlibc @@ -12529,6 +16004,24 @@ echo " " set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h eval $hasproto +: see if time exists +echo " " +if test "X$d_time" = X -o X"$timetype" = X; then + if set time val -f d_time; eval $csym; $val; then + echo 'time() found.' >&4 + val="$define" + rp="What is the type returned by time() on this system?" + set time_t timetype long stdio.h sys/types.h + eval $typedef_ask + else + echo 'time() not found, hope that will do.' >&4 + val="$undef" + timetype='int'; + fi + set d_time + eval $setvar +fi + : see if this is a sys/times.h system set sys/times.h i_systimes eval $inhdr @@ -12551,10 +16044,100 @@ else clocktype='int' fi +: see if tmpnam_r exists +set tmpnam_r d_tmpnam_r +eval $inlibc +case "$d_tmpnam_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h " + case "$d_tmpnam_r_proto:$usethreads" in + ":define") d_tmpnam_r_proto=define + set d_tmpnam_r_proto tmpnam_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_tmpnam_r_proto" in + define) + case "$tmpnam_r_proto" in + ''|0) try='char* tmpnam_r(char*);' + ./protochk "extern $try" $hdrs && tmpnam_r_proto=B_B ;; + esac + case "$tmpnam_r_proto" in + ''|0) d_tmpnam_r=undef + tmpnam_r_proto=0 + echo "Disabling tmpnam_r, cannot determine prototype." >&4 ;; + * ) case "$tmpnam_r_proto" in + REENTRANT_PROTO*) ;; + *) tmpnam_r_proto="REENTRANT_PROTO_$tmpnam_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "tmpnam_r has no prototype, not using it." >&4 ;; + esac + d_tmpnam_r=undef + tmpnam_r_proto=0 + ;; + esac + ;; +*) tmpnam_r_proto=0 + ;; +esac + : see if truncate exists set truncate d_truncate eval $inlibc +: see if ttyname_r exists +set ttyname_r d_ttyname_r +eval $inlibc +case "$d_ttyname_r" in +"$define") + hdrs="$i_systypes sys/types.h define stdio.h $i_unistd unistd.h" + case "$d_ttyname_r_proto:$usethreads" in + ":define") d_ttyname_r_proto=define + set d_ttyname_r_proto ttyname_r $hdrs + eval $hasproto ;; + *) ;; + esac + case "$d_ttyname_r_proto" 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 ;; + esac + case "$ttyname_r_proto" in + ''|0) try='int ttyname_r(int, char*, int);' + ./protochk "extern $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 ;; + esac + case "$ttyname_r_proto" in + ''|0) d_ttyname_r=undef + ttyname_r_proto=0 + echo "Disabling ttyname_r, cannot determine prototype." >&4 ;; + * ) case "$ttyname_r_proto" in + REENTRANT_PROTO*) ;; + *) ttyname_r_proto="REENTRANT_PROTO_$ttyname_r_proto" ;; + esac + echo "Prototype: $try" ;; + esac + ;; + *) case "$usethreads" in + define) echo "ttyname_r has no prototype, not using it." >&4 ;; + esac + d_ttyname_r=undef + ttyname_r_proto=0 + ;; + esac + ;; +*) ttyname_r_proto=0 + ;; +esac + : see if tzname[] exists echo " " if set tzname val -a d_tzname; eval $csym; $val; then @@ -12567,10 +16150,6 @@ fi set d_tzname eval $setvar -case "$crosscompile" in -''|[nN]*) crosscompile="$undef" ;; -esac - case "$osname" in next|rhapsody|darwin) multiarch="$define" ;; esac @@ -12578,16 +16157,16 @@ case "$multiarch" in ''|[nN]*) multiarch="$undef" ;; esac -: check for ordering of bytes in a long +: check for ordering of bytes in a UV echo " " -case "$crosscompile$multiarch" in +case "$usecrosscompile$multiarch" in *$define*) $cat <try.c <<'EOCP' + $cat >try.c < +#include +typedef $uvtype UV; int main() { int i; union { - unsigned long l; - char c[sizeof(long)]; + UV l; + char c[$uvsize]; } u; - if (sizeof(long) > 4) - u.l = (0x08070605L << 32) | 0x04030201L; + if ($uvsize > 4) + u.l = (((UV)0x08070605) << 32) | (UV)0x04030201; else - u.l = 0x04030201L; - for (i = 0; i < sizeof(long); i++) + u.l = (UV)0x04030201; + for (i = 0; i < $uvsize; i++) printf("%c", u.c[i]+'0'); printf("\n"); exit(0); @@ -12624,7 +16205,7 @@ EOCP xxx_prompt=y set try if eval $compile && ./try > /dev/null; then - dflt=`./try` + dflt=`$run ./try` case "$dflt" in [1-4][1-4][1-4][1-4]|12345678|87654321) echo "(The test program ran ok.)" @@ -12642,7 +16223,7 @@ EOM fi case "$xxx_prompt" in y) - rp="What is the order of bytes in a long?" + rp="What is the order of bytes in $uvtype?" . ./myread byteorder="$ans" ;; @@ -12660,13 +16241,19 @@ $cat <try.c <try.c < #define U32 $u32type -#define BYTEORDER $byteorder +#define BYTEORDER 0x$byteorder +#define U8 $u8type +#include +#ifdef SIGBUS +$signal_t bletch(s) int s; { exit(4); } +#endif int main() { #if BYTEORDER == 0x1234 || BYTEORDER == 0x4321 - U8 buf[] = "\0\0\0\1\0\0\0\0"; + U8 buf[8]; U32 *up; int i; @@ -12677,6 +16264,19 @@ int main() { fflush(stdout); +#ifdef SIGBUS + signal(SIGBUS, bletch); +#endif + + buf[0] = 0; + buf[1] = 0; + buf[2] = 0; + buf[3] = 1; + buf[5] = 0; + buf[6] = 0; + buf[7] = 0; + buf[8] = 1; + for (i = 0; i < 4; i++) { up = (U32*)(buf + i); if (! ((*up == 1 << (8*i)) || /* big-endian */ @@ -12709,8 +16309,8 @@ int main() { EOCP set try if eval $compile_ok; then - echo "(This test may dump core.)" >&4 - ./try >&2 >/dev/null + echo "(Testing for character data alignment may crash the test. That's okay.)" >&4 + $run ./try 2>&1 >/dev/null case "$?" in 0) cat >&4 <&4 - cat > closedir.c < try.c < /dev/null 2>&1 ; then + if $run ./try > /dev/null 2>&1 ; then echo "Yes, it does." val="$undef" else @@ -12861,7 +16464,7 @@ EOM esac set d_void_closedir eval $setvar -$rm -f closedir* +$rm -f try try.* : see if there is a wait4 set wait4 d_wait4 eval $inlibc @@ -12891,7 +16494,7 @@ Revision='$Revision' : check for alignment requirements echo " " -case "$crosscompile$multiarch" in +case "$usecrosscompile$multiarch" in *$define*) $cat < #include #include -int main() +int main(int argc, char *argv[]) { #ifdef DB_VERSION_MAJOR /* DB version >= 2 */ int Major, Minor, Patch ; unsigned long Version ; (void)db_version(&Major, &Minor, &Patch) ; - printf("You have Berkeley DB Version 2 or greater\n"); + if (argc == 2) { + printf("%d %d %d %d %d %d\n", + DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH, + Major, Minor, Patch); + exit(0); + } + printf("You have Berkeley DB Version 2 or greater.\n"); printf("db.h is from Berkeley DB Version %d.%d.%d\n", DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH); @@ -13008,11 +16617,11 @@ int main() /* check that db.h & libdb are compatible */ if (DB_VERSION_MAJOR != Major || DB_VERSION_MINOR != Minor || DB_VERSION_PATCH != Patch) { - printf("db.h and libdb are incompatible\n") ; + printf("db.h and libdb are incompatible.\n") ; exit(3); } - printf("db.h and libdb are compatible\n") ; + printf("db.h and libdb are compatible.\n") ; Version = DB_VERSION_MAJOR * 1000000 + DB_VERSION_MINOR * 1000 + DB_VERSION_PATCH ; @@ -13020,14 +16629,18 @@ int main() /* needs to be >= 2.3.4 */ if (Version < 2003004) { /* if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH < 5) { */ - printf("but Perl needs Berkeley DB 2.3.4 or greater\n") ; + printf("Perl needs Berkeley DB 2.3.4 or greater.\n") ; exit(2); } exit(0); #else #if defined(_DB_H_) && defined(BTREEMAGIC) && defined(HASHMAGIC) - printf("You have Berkeley DB Version 1\n"); + if (argc == 2) { + printf("1 0 0\n"); + exit(0); + } + printf("You have Berkeley DB Version 1.\n"); exit(0); /* DB version < 2: the coast is clear. */ #else exit(1); /* not Berkeley DB? */ @@ -13036,8 +16649,12 @@ int main() } EOCP set try - if eval $compile_ok && ./try; then + if eval $compile_ok && $run ./try; then echo 'Looks OK.' >&4 + set `$run ./try 1` + db_version_major=$1 + db_version_minor=$2 + db_version_patch=$3 else echo "I can't use Berkeley DB with your . I'll disable Berkeley DB." >&4 i_db=$undef @@ -13280,7 +16897,7 @@ done echo " " echo "Determining whether or not we are on an EBCDIC system..." >&4 -$cat >tebcdic.c <<'EOM' +$cat >try.c <<'EOM' int main() { if ('M'==0xd4) return 0; @@ -13289,19 +16906,19 @@ int main() EOM val=$undef -set tebcdic +set try if eval $compile_ok; then - if ./tebcdic; then + if $run ./try; then echo "You seem to speak EBCDIC." >&4 val="$define" else - echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF8." >&4 + echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8." >&4 fi 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 tebcdic.c tebcdic +$rm -f try try.* set ebcdic eval $setvar @@ -13326,7 +16943,9 @@ $cat >>try.c </dev/null - if $test ! -s try.out -a "X$?" = X42; then + $run ./try 2>/dev/null + code="$?" + $from try.out + if $test ! -s try.out -a "X$code" = X42; then output=-DTRY_FPUTC fi fi case "$output" in '') set try -DTRY_FPRINTF - $rm -f try.out if eval $compile; then - $rm -f try.out - ./try$exe_ext 2>/dev/null - if $test ! -s try.out -a "X$?" = X42; then + $run ./try 2>/dev/null + code="$?" + $from try.out + if $test ! -s try.out -a "X$code" = X42; then output=-DTRY_FPRINTF fi fi @@ -13403,9 +17024,9 @@ fi case "$fflushNULL" in '') set try -DTRY_FFLUSH_NULL $output if eval $compile; then - $rm -f try.out - ./try$exe_ext 2>/dev/null + $run ./try 2>/dev/null code="$?" + $from try.out if $test -s try.out -a "X$code" = X42; then fflushNULL="`$cat try.out`" else @@ -13451,7 +17072,7 @@ EOCP set tryp if eval $compile; then $rm -f tryp.out - $cat tryp.c | ./tryp$exe_ext 2>/dev/null > tryp.out + $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out if cmp tryp.c tryp.out >/dev/null 2>&1; then $cat >&4 </dev/null > tryp.out + $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out if cmp tryp.c tryp.out >/dev/null 2>&1; then $cat >&4 <&4 </dev/null - if $test -s try.out -a "X$?" = X42; then + $run ./try 2>/dev/null + code=$? + $from try.out + if $test -s try.out -a "X$code" = X42; then fflushall="`$cat try.out`" fi fi @@ -13634,7 +17256,7 @@ int main() { EOCP set try if eval $compile_ok; then - yyy=`./try` + yyy=`$run ./try` case "$yyy" in '') gidsize=4 echo "(I can't execute the test program--guessing $gidsize.)" >&4 @@ -13668,7 +17290,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try` + yyy=`$run ./try` case "$yyy" in '') gidsign=1 echo "(I can't execute the test program--guessing unsigned.)" >&4 @@ -13703,7 +17325,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try$exe_ext` + yyy=`$run ./try` case "$yyy" in 12345678901) sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"'; @@ -13725,7 +17347,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try$exe_ext` + yyy=`$run ./try` case "$yyy" in 12345678901) sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"'; @@ -13748,7 +17370,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try$exe_ext` + yyy=`$run ./try` case "$yyy" in 12345678901) sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64; @@ -13759,45 +17381,45 @@ EOCP fi fi -if $test X"$sPRId64" = X -a X"$quadtype" = X"long long"; then - $cat >try.c <<'EOCP' +if $test X"$sPRId64" = X -a X"$quadtype" != X; then + $cat >try.c < #include int main() { - long long q = 12345678901LL; /* AIX cc requires the LL suffix. */ - printf("%lld\n", q); + $quadtype q = 12345678901; + printf("%Ld\n", q); } EOCP set try if eval $compile; then - yyy=`./try$exe_ext` + yyy=`$run ./try` case "$yyy" in 12345678901) - sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"'; - sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"'; - echo "We will use the %lld style." + sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"'; + sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"'; + echo "We will use %Ld." ;; esac fi fi -if $test X"$sPRId64" = X -a X"$quadtype" != X; then - $cat >try.c <try.c <<'EOCP' #include #include int main() { - $quadtype q = 12345678901; - printf("%Ld\n", q); + long long q = 12345678901LL; /* AIX cc requires the LL suffix. */ + printf("%lld\n", q); } EOCP set try if eval $compile; then - yyy=`./try$exe_ext` + yyy=`$run ./try` case "$yyy" in 12345678901) - sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"'; - sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"'; - echo "We will use %Ld." + sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"'; + sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"'; + echo "We will use the %lld style." ;; esac fi @@ -13814,7 +17436,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try$exe_ext` + yyy=`$run ./try` case "$yyy" in 12345678901) sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"'; @@ -13896,7 +17518,7 @@ else fi case "$ivdformat" in -'') echo "$0: Fatal: failed to find format strings, cannot continue." >& 4 +'') echo "$0: Fatal: failed to find format strings, cannot continue." >&4 exit 1 ;; esac @@ -14135,8 +17757,8 @@ main(int ac, char **av) } EOCP set try - if eval $compile && ./try 2>&1 >/dev/null; then - case "`./try`" in + if eval $compile && $run ./try 2>&1 >/dev/null; then + case "`$run ./try`" in "that's all right, then") okay=yes ;; @@ -14156,47 +17778,6 @@ EOCP ;; esac -: define a fucntion to check prototypes -$cat > protochk <> protochk <<'EOSH' - -$rm -f try.c -foo="$1" -shift -while test $# -ge 2; do - case "$1" in - $define) echo "#include <$2>" >> try.c ;; - literal) echo "$2" >> try.c ;; - esac - shift 2 -done -test "$prototype" = "$define" && echo '#define CAN_PROTOTYPE' >> try.c -cat >> try.c <<'EOCP' -#ifdef CAN_PROTOTYPE -#define _(args) args -#else -#define _(args) () -#endif -EOCP -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] -exit $status -EOSH -chmod +x protochk -$eunicefix protochk - : see what type is used for size_t rp="What is the type used for the length parameter for string functions?" set size_t sizetype 'unsigned int' stdio.h sys/types.h @@ -14330,6 +17911,7 @@ EOM esac fi : locate the preferred pager for this system +fn=f/ case "$pager" in '') dflt='' @@ -14349,10 +17931,14 @@ case "$pager" in '') dflt=/usr/ucb/more;; esac ;; -*) dflt="$pager";; +*) 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 echo " " -fn=f/ rp='What pager is used on your system?' . ./getfile pager="$ans" @@ -14363,10 +17949,7 @@ set pid_t pidtype int stdio.h sys/types.h eval $typedef_ask : Find earliest binary compatible site_perl subdirectory perl can use. -case "$bincompat5005" in -"$define") xs_apiversion='5.005' ;; -*) xs_apiversion=$version ;; # The current site_perl version. -esac +xs_apiversion=$version # The current site_perl version. : Find earliest pure perl site_perl subdirectory perl can use. : The versioned directories started at 5.005. pm_apiversion='5.005' @@ -14384,13 +17967,13 @@ $cc $ccflags -c bar2.c >/dev/null 2>&1 $cc $ccflags -c foo.c >/dev/null 2>&1 $ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1 if $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 && - ./foobar >/dev/null 2>&1; then + $run ./foobar >/dev/null 2>&1; then echo "$ar appears to generate random libraries itself." orderlib=false ranlib=":" elif $ar ts bar$_a >/dev/null 2>&1 && $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 && - ./foobar >/dev/null 2>&1; then + $run ./foobar >/dev/null 2>&1; then echo "a table of contents needs to be added with '$ar ts'." orderlib=false ranlib="$ar ts" @@ -14530,7 +18113,7 @@ int main() { EOCP set try if eval $compile_ok; then - selectminbits=`./try` + selectminbits=`$run ./try` case "$selectminbits" in '') cat >&4 <' | $cppstdin $cppminus $cppflags 2>/dev/null | $grep '^[ ]*#.*include' | - $awk "{print \\$$fieldn}" | $sed 's!"!!g' | $sort | $uniq` + $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 @@ -14722,13 +18305,13 @@ $cat >>signal_cmd <<'EOS' set signal if eval $compile_ok; then - ./signal$_exe | $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 set signal -DJUST_NSIG if eval $compile_ok; then - ./signal$_exe > signal.nsg + $run ./signal$_exe > signal.nsg $cat signal.nsg else echo "I can't seem to figure out how many signals you have." >&4 @@ -14749,14 +18332,14 @@ EOCP set signal if eval $compile; then echo "SIG${xx} found." - ./signal$_exe >> signal.ls1 + $run ./signal$_exe >> signal.ls1 else echo "SIG${xx} NOT found." fi done if $test -s signal.ls1; then $cat signal.nsg signal.ls1 | - $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst + $sort -n | $uniq | $awk -f signal.awk >signal.lst fi fi @@ -14840,7 +18423,7 @@ int main() { EOCP set try if eval $compile_ok; then - yyy=`./try` + yyy=`$run ./try` case "$yyy" in '') sizesize=4 echo "(I can't execute the test program--guessing $sizesize.)" >&4 @@ -14934,7 +18517,7 @@ esac set ssize_t ssizetype int stdio.h sys/types.h eval $typedef dflt="$ssizetype" -$cat > ssize.c < try.c < #include #define Size_t $sizetype @@ -14951,9 +18534,9 @@ int main() } EOM echo " " -set ssize -if eval $compile_ok && ./ssize > /dev/null; then - ssizetype=`./ssize` +set try +if eval $compile_ok && $run ./try > /dev/null; then + ssizetype=`$run ./try` echo "I'll be using $ssizetype for functions returning a byte count." >&4 else $cat >&4 <&4 - val="$define" - rp="What is the type returned by time() on this system?" - set time_t timetype long stdio.h sys/types.h - eval $typedef_ask - else - echo 'time() not found, hope that will do.' >&4 - val="$undef" - timetype='int'; - fi - set d_time - eval $setvar -fi - : see what type uids are declared as in the kernel echo " " echo "Looking for the type for user ids returned by getuid()." @@ -15043,7 +18608,7 @@ int main() { EOCP set try if eval $compile_ok; then - yyy=`./try` + yyy=`$run ./try` case "$yyy" in '') uidsize=4 echo "(I can't execute the test program--guessing $uidsize.)" >&4 @@ -15076,7 +18641,7 @@ int main() { EOCP set try if eval $compile; then - yyy=`./try` + yyy=`$run ./try` case "$yyy" in '') uidsign=1 echo "(I can't execute the test program--guessing unsigned.)" >&4 @@ -15142,11 +18707,11 @@ case "$yacc" in esac echo " " comp='yacc' -if $test -f "$byacc"; then +if $test -f "$byacc$_exe"; then dflt="$byacc" comp="byacc or $comp" fi -if $test -f "$bison"; then +if $test -f "$bison$_exe"; then comp="$comp or bison -y" fi rp="Which compiler compiler ($comp) shall I use?" @@ -15164,105 +18729,25 @@ case "$yacc" in ;; esac -: see if dbm.h is available -: see if dbmclose exists -set dbmclose d_dbmclose -eval $inlibc - -case "$d_dbmclose" in -$define) - set dbm.h i_dbm - eval $inhdr - case "$i_dbm" in - $define) - val="$undef" - set i_rpcsvcdbm - eval $setvar - ;; - *) set rpcsvc/dbm.h i_rpcsvcdbm - eval $inhdr - ;; - esac - ;; -*) echo "We won't be including " - val="$undef" - set i_dbm - eval $setvar - val="$undef" - set i_rpcsvcdbm - eval $setvar - ;; -esac - -: see if this is a sys/file.h system -val='' -set sys/file.h val -eval $inhdr - -: do we need to include sys/file.h ? -case "$val" in -"$define") - echo " " - if $h_sysfile; then - val="$define" - echo "We'll be including ." >&4 - else - val="$undef" - echo "We won't be including ." >&4 - fi - ;; -*) - h_sysfile=false - ;; -esac -set i_sysfile -eval $setvar - -: see if fcntl.h is there -val='' -set fcntl.h val +: see if this is a fp.h system +set fp.h i_fp eval $inhdr -: see if we can include fcntl.h -case "$val" in -"$define") - echo " " - if $h_fcntl; then - val="$define" - echo "We'll be including ." >&4 - else - val="$undef" - if $h_sysfile; then - echo "We don't need to include if we include ." >&4 - else - echo "We won't be including ." >&4 - fi - fi - ;; -*) - h_fcntl=false - val="$undef" - ;; -esac -set i_fcntl -eval $setvar - -: see if this is a iconv.h system -set iconv.h i_iconv +: see if this is a fp_class.h system +set fp_class.h i_fp_class eval $inhdr : see if this is a ieeefp.h system -set ieeefp.h i_ieeefp -eval $inhdr +case "$i_ieeefp" in +'' ) set ieeefp.h i_ieeefp + eval $inhdr + ;; +esac : see if this is a libutil.h system set libutil.h i_libutil eval $inhdr -: see if locale.h is available -set locale.h i_locale -eval $inhdr - : see if mach cthreads are available if test "X$usethreads" = "X$define"; then set mach/cthreads.h i_machcthr @@ -15284,6 +18769,20 @@ 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 @@ -15354,9 +18853,10 @@ BSD_4_3 BSD_4_4 BSD_NET2 BSD_TIME BSD_TYPES BSDCOMPAT bsdi bull c cadmus clipper CMU COFF COMPILER_VERSION concurrent convex cpu cray CRAY CRAYMPP ctix CX_UX CYGWIN DGUX DGUX_SOURCE DJGPP dmert DOLPHIN DPX2 DSO -Dynix DynixPTX ELF encore EPI EXTENSIONS FILE_OFFSET_BITS -FreeBSD GCC_NEW_VARARGS gcos gcx gimpel -GNU_SOURCE GNUC GNUC_MINOR GO32 gould GOULD_PN +Dynix DynixPTX ELF encore EPI EXTENSIONS FAVOR_BSD +FILE_OFFSET_BITS FreeBSD GCC_NEW_VARARGS gcos gcx gimpel +GLIBC GLIBC_MINOR +GNU_SOURCE GNUC GNUC_MINOR GNU_LIBRARY GO32 gould GOULD_PN H3050R H3050RX hbullx20 hcx host_mips hp200 hp300 hp700 HP700 hp800 hp9000 hp9000s200 hp9000s300 hp9000s400 hp9000s500 @@ -15399,7 +18899,11 @@ tower tower32 tower32_200 tower32_600 tower32_700 tower32_800 tower32_850 tss u370 u3b u3b2 u3b20 u3b200 u3b20d u3b5 ultrix UMAXV UnicomPBB UnicomPBD UNICOS UNICOSMK -unix UNIX95 UNIX99 unixpc unos USGr4 USGr4_2 +unix UNIX95 UNIX99 unixpc unos +USE_BSD USE_FILE_OFFSET64 USE_GNU USE_ISOC9X USE_LARGEFILE USE_LARGEFILE64 +USE_MISC USE_POSIX USE_POSIX199309 USE_POSIX199506 USE_POSIX2 +USE_REENTRANT USE_SVID USE_UNIX98 USE_XOPEN USE_XOPEN_EXTENDED +USGr4 USGr4_2 Utek UTek UTS UWIN uxpm uxps vax venix VMESA vms xenix Xenix286 XOPEN_SOURCE XOPEN_SOURCE_EXTENDED XPG2 XPG2_EXTENDED XPG3 XPG3_EXTENDED XPG4 XPG4_EXTENDED @@ -15441,12 +18945,12 @@ $awk \\ EOSH cat <<'EOSH' >> Cppsym.try 'length($1) > 0 { - printf "#ifdef %s\n#if %s+0\nprintf(\"%s=%%ld\\n\", %s);\n#else\nprintf(\"%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1 - printf "#ifdef _%s\n#if _%s+0\nprintf(\"_%s=%%ld\\n\", _%s);\n#else\nprintf(\"_%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1 - printf "#ifdef __%s\n#if __%s+0\nprintf(\"__%s=%%ld\\n\", __%s);\n#else\nprintf(\"__%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1 - printf "#ifdef __%s__\n#if __%s__+0\nprintf(\"__%s__=%%ld\\n\", __%s__);\n#else\nprintf(\"__%s__\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1 + printf "#ifdef %s\n#if %s+0\nprintf(\"%s=%%ld\\n\", (long)%s);\n#else\nprintf(\"%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1 + printf "#ifdef _%s\n#if _%s+0\nprintf(\"_%s=%%ld\\n\", (long)_%s);\n#else\nprintf(\"_%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1 + printf "#ifdef __%s\n#if __%s+0\nprintf(\"__%s=%%ld\\n\", (long)__%s);\n#else\nprintf(\"__%s\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1 + printf "#ifdef __%s__\n#if __%s__+0\nprintf(\"__%s__=%%ld\\n\", (long)__%s__);\n#else\nprintf(\"__%s__\\n\");\n#endif\n#endif\n", $1, $1, $1, $1, $1 }' >> try.c -echo '}' >> try.c +echo 'return 0;}' >> try.c EOSH cat <> Cppsym.try ccflags="$ccflags" @@ -15454,7 +18958,7 @@ case "$osname-$gccversion" in irix-) ccflags="\$ccflags -woff 1178" ;; os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;; esac -$cc -o try $optimize \$ccflags $ldflags try.c $libs && ./try$exe_ext +$cc -o try $optimize \$ccflags $ldflags try.c $libs && $run ./try EOSH chmod +x Cppsym.try $eunicefix Cppsym.try @@ -15473,7 +18977,7 @@ for i in \`$cc -v -c tmp.c 2>&1 $postprocess_cc_v\` do case "\$i" in -D*) echo "\$i" | $sed 's/^-D//';; - -A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A\(.*\)(\(.*\))/\1=\2/';; + -A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A//' | $sed 's/\(.*\)(\(.*\))/\1=\2/';; esac done $rm -f try.c @@ -15534,7 +19038,6 @@ else $test "$silent" || sleep 1 fi fi -$rm -f ccsym* Cppsym.* : see if this is a termio system val="$undef" @@ -15591,10 +19094,6 @@ set i_termio; eval $setvar val=$val2; set i_sgtty; eval $setvar val=$val3; set i_termios; eval $setvar -: see if this is a shadow.h system -set shadow.h i_shadow -eval $inhdr - : see if stddef is available set stddef.h i_stddef eval $inhdr @@ -15751,7 +19250,7 @@ find_extensions=' else if $test -d $xxx -a $# -lt 10; then set $1$xxx/ $*; - cd $xxx; + cd "$xxx"; eval $find_extensions; cd ..; shift; @@ -15761,17 +19260,21 @@ find_extensions=' esac; done' tdir=`pwd` -cd $rsrc/ext +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="$*" set X $known_extensions shift known_extensions="$*" -cd $tdir +cd "$tdir" : Now see which are supported on this system. avail_ext='' @@ -15787,11 +19290,16 @@ for xxx in $known_extensions ; do $define) avail_ext="$avail_ext $xxx" ;; esac ;; + I18N/Langinfo|i18n_lan) + case "$i_langinfo$d_nl_langinfo" in + $define$define) avail_ext="$avail_ext $xxx" ;; + esac + ;; NDBM_File|ndbm_fil) case "$i_ndbm" in $define) case "$osname-$use64bitint" in - hpux-define) + cygwin-*|hpux-define) case "$libs" in *-lndbm*) avail_ext="$avail_ext $xxx" ;; esac @@ -15805,7 +19313,7 @@ for xxx in $known_extensions ; do case "${i_dbm}${i_rpcsvcdbm}" in *"${define}"*) case "$osname-$use64bitint" in - hpux-define) + cygwin-*|hpux-define) case "$libs" in *-ldbm*) avail_ext="$avail_ext $xxx" ;; esac @@ -15827,7 +19335,12 @@ for xxx in $known_extensions ; do ;; Socket|socket) case "$d_socket" in - true|$define|y) avail_ext="$avail_ext $xxx" ;; + true|$define|y) + case "$osname" in + beos) ;; # not unless BONE + *) avail_ext="$avail_ext $xxx" ;; + esac + ;; esac ;; Sys/Syslog|sys/syslog) @@ -15837,10 +19350,40 @@ for xxx in $known_extensions ; do esac ;; Thread|thread) - case "$usethreads" in - true|$define|y) avail_ext="$avail_ext $xxx" ;; + case "$usethreads" in + true|$define|y) + case "$useithreads" in + $undef|false|[nN]*) 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 + # to have this new fancy threads implementation but my + # perl doesn't have it" and from people trying to + # (re)install the threads module using CPAN.pm and + # CPAN.pm then offering to reinstall Perl 5.8.0, + # the threads.pm and threads/shared.pm will always be + # there, croaking informatively ("you need to rebuild + # all of Perl with threads, sorry") when threads haven't + # been compiled in. + # --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 @@ -15977,6 +19520,20 @@ EOM esac ;; esac +# +# Encode is a special case. If we are building Encode as a static +# extension, we need to explicitly list its subextensions as well. +# For other nested extensions, this is handled automatically by +# the appropriate Makefile.PL. +case " $static_ext " in + *" Encode "*) # Add the subextensions of Encode + cd "$rsrc/ext" + for xxx in `ls Encode/*/Makefile.PL|awk -F/ '{print $2}'`; do + static_ext="$static_ext Encode/$xxx" + done + cd "$tdir" + ;; +esac set X $dynamic_ext $static_ext $nonxs_ext shift @@ -16024,6 +19581,12 @@ if test -d ../UU; then cd .. fi +: configuration may be patched via a 'config.arch' file +if $test -f config.arch; then + echo "I see a config.arch file, loading it." + . ./config.arch +fi + : configuration may be patched via a 'config.over' file if $test -f config.over; then echo " " @@ -16083,6 +19646,7 @@ _a='$_a' _exe='$_exe' _o='$_o' afs='$afs' +afsroot='$afsroot' alignbytes='$alignbytes' ansi2knr='$ansi2knr' aphostname='$aphostname' @@ -16096,11 +19660,11 @@ archlibexp='$archlibexp' archname64='$archname64' archname='$archname' archobjs='$archobjs' +asctime_r_proto='$asctime_r_proto' awk='$awk' baserev='$baserev' bash='$bash' bin='$bin' -bincompat5005='$bincompat5005' binexp='$binexp' bison='$bison' byacc='$byacc' @@ -16138,9 +19702,11 @@ cppminus='$cppminus' cpprun='$cpprun' cppstdin='$cppstdin' cppsymbols='$cppsymbols' -crosscompile='$crosscompile' +crypt_r_proto='$crypt_r_proto' cryptlib='$cryptlib' csh='$csh' +ctermid_r_proto='$ctermid_r_proto' +ctime_r_proto='$ctime_r_proto' d_Gconvert='$d_Gconvert' d_PRIEUldbl='$d_PRIEUldbl' d_PRIFUldbl='$d_PRIFUldbl' @@ -16160,12 +19726,12 @@ d_access='$d_access' d_accessx='$d_accessx' d_alarm='$d_alarm' d_archlib='$d_archlib' +d_asctime_r='$d_asctime_r' d_atolf='$d_atolf' d_atoll='$d_atoll' d_attribut='$d_attribut' d_bcmp='$d_bcmp' d_bcopy='$d_bcopy' -d_bincompat5005='$d_bincompat5005' d_bsd='$d_bsd' d_bsdgetpgrp='$d_bsdgetpgrp' d_bsdsetpgrp='$d_bsdsetpgrp' @@ -16176,30 +19742,44 @@ d_charvspr='$d_charvspr' d_chown='$d_chown' d_chroot='$d_chroot' d_chsize='$d_chsize' +d_class='$d_class' d_closedir='$d_closedir' d_cmsghdr_s='$d_cmsghdr_s' d_const='$d_const' d_crypt='$d_crypt' +d_crypt_r='$d_crypt_r' d_csh='$d_csh' +d_ctermid_r='$d_ctermid_r' +d_ctime_r='$d_ctime_r' d_cuserid='$d_cuserid' d_dbl_dig='$d_dbl_dig' +d_dbminitproto='$d_dbminitproto' d_difftime='$d_difftime' +d_dirfd='$d_dirfd' d_dirnamlen='$d_dirnamlen' d_dlerror='$d_dlerror' d_dlopen='$d_dlopen' d_dlsymun='$d_dlsymun' d_dosuid='$d_dosuid' +d_drand48_r='$d_drand48_r' d_drand48proto='$d_drand48proto' d_dup2='$d_dup2' d_eaccess='$d_eaccess' d_endgrent='$d_endgrent' +d_endgrent_r='$d_endgrent_r' d_endhent='$d_endhent' +d_endhostent_r='$d_endhostent_r' d_endnent='$d_endnent' +d_endnetent_r='$d_endnetent_r' d_endpent='$d_endpent' +d_endprotoent_r='$d_endprotoent_r' d_endpwent='$d_endpwent' +d_endpwent_r='$d_endpwent_r' d_endsent='$d_endsent' +d_endservent_r='$d_endservent_r' d_eofnblk='$d_eofnblk' d_eunice='$d_eunice' +d_fchdir='$d_fchdir' d_fchmod='$d_fchmod' d_fchown='$d_fchown' d_fcntl='$d_fcntl' @@ -16208,10 +19788,17 @@ d_fd_macros='$d_fd_macros' d_fd_set='$d_fd_set' d_fds_bits='$d_fds_bits' d_fgetpos='$d_fgetpos' +d_finite='$d_finite' +d_finitel='$d_finitel' d_flexfnam='$d_flexfnam' d_flock='$d_flock' +d_flockproto='$d_flockproto' d_fork='$d_fork' +d_fp_class='$d_fp_class' d_fpathconf='$d_fpathconf' +d_fpclass='$d_fpclass' +d_fpclassify='$d_fpclassify' +d_fpclassl='$d_fpclassl' d_fpos64_t='$d_fpos64_t' d_frexpl='$d_frexpl' d_fs_data_s='$d_fs_data_s' @@ -16226,19 +19813,29 @@ d_getcwd='$d_getcwd' d_getespwnam='$d_getespwnam' d_getfsstat='$d_getfsstat' d_getgrent='$d_getgrent' +d_getgrent_r='$d_getgrent_r' +d_getgrgid_r='$d_getgrgid_r' +d_getgrnam_r='$d_getgrnam_r' d_getgrps='$d_getgrps' d_gethbyaddr='$d_gethbyaddr' d_gethbyname='$d_gethbyname' d_gethent='$d_gethent' d_gethname='$d_gethname' +d_gethostbyaddr_r='$d_gethostbyaddr_r' +d_gethostbyname_r='$d_gethostbyname_r' +d_gethostent_r='$d_gethostent_r' d_gethostprotos='$d_gethostprotos' d_getitimer='$d_getitimer' d_getlogin='$d_getlogin' +d_getlogin_r='$d_getlogin_r' d_getmnt='$d_getmnt' d_getmntent='$d_getmntent' d_getnbyaddr='$d_getnbyaddr' d_getnbyname='$d_getnbyname' d_getnent='$d_getnent' +d_getnetbyaddr_r='$d_getnetbyaddr_r' +d_getnetbyname_r='$d_getnetbyname_r' +d_getnetent_r='$d_getnetent_r' d_getnetprotos='$d_getnetprotos' d_getpagsz='$d_getpagsz' d_getpbyname='$d_getpbyname' @@ -16249,30 +19846,43 @@ d_getpgrp2='$d_getpgrp2' d_getpgrp='$d_getpgrp' d_getppid='$d_getppid' d_getprior='$d_getprior' +d_getprotobyname_r='$d_getprotobyname_r' +d_getprotobynumber_r='$d_getprotobynumber_r' +d_getprotoent_r='$d_getprotoent_r' d_getprotoprotos='$d_getprotoprotos' d_getprpwnam='$d_getprpwnam' d_getpwent='$d_getpwent' +d_getpwent_r='$d_getpwent_r' +d_getpwnam_r='$d_getpwnam_r' +d_getpwuid_r='$d_getpwuid_r' d_getsbyname='$d_getsbyname' d_getsbyport='$d_getsbyport' d_getsent='$d_getsent' +d_getservbyname_r='$d_getservbyname_r' +d_getservbyport_r='$d_getservbyport_r' +d_getservent_r='$d_getservent_r' d_getservprotos='$d_getservprotos' d_getspnam='$d_getspnam' +d_getspnam_r='$d_getspnam_r' d_gettimeod='$d_gettimeod' +d_gmtime_r='$d_gmtime_r' d_gnulibc='$d_gnulibc' d_grpasswd='$d_grpasswd' d_hasmntopt='$d_hasmntopt' d_htonl='$d_htonl' -d_iconv='$d_iconv' d_index='$d_index' d_inetaton='$d_inetaton' d_int64_t='$d_int64_t' d_isascii='$d_isascii' +d_isfinite='$d_isfinite' +d_isinf='$d_isinf' d_isnan='$d_isnan' d_isnanl='$d_isnanl' d_killpg='$d_killpg' d_lchown='$d_lchown' d_ldbl_dig='$d_ldbl_dig' d_link='$d_link' +d_localtime_r='$d_localtime_r' d_locconv='$d_locconv' d_lockf='$d_lockf' d_longdbl='$d_longdbl' @@ -16296,6 +19906,7 @@ d_mkstemps='$d_mkstemps' d_mktime='$d_mktime' d_mmap='$d_mmap' d_modfl='$d_modfl' +d_modfl_pow32_bug='$d_modfl_pow32_bug' d_mprotect='$d_mprotect' d_msg='$d_msg' d_msg_ctrunc='$d_msg_ctrunc' @@ -16312,8 +19923,8 @@ d_msync='$d_msync' d_munmap='$d_munmap' d_mymalloc='$d_mymalloc' d_nice='$d_nice' +d_nl_langinfo='$d_nl_langinfo' d_nv_preserves_uv='$d_nv_preserves_uv' -d_nv_preserves_uv_bits='$d_nv_preserves_uv_bits' d_off64_t='$d_off64_t' d_old_pthread_create_joinable='$d_old_pthread_create_joinable' d_oldpthreads='$d_oldpthreads' @@ -16326,6 +19937,8 @@ d_phostname='$d_phostname' d_pipe='$d_pipe' d_poll='$d_poll' d_portable='$d_portable' +d_procselfexe='$d_procselfexe' +d_pthread_atfork='$d_pthread_atfork' d_pthread_yield='$d_pthread_yield' d_pwage='$d_pwage' d_pwchange='$d_pwchange' @@ -16337,7 +19950,10 @@ d_pwpasswd='$d_pwpasswd' d_pwquota='$d_pwquota' d_qgcvt='$d_qgcvt' d_quad='$d_quad' +d_random_r='$d_random_r' +d_readdir64_r='$d_readdir64_r' d_readdir='$d_readdir' +d_readdir_r='$d_readdir_r' d_readlink='$d_readlink' d_readv='$d_readv' d_recvmsg='$d_recvmsg' @@ -16362,19 +19978,25 @@ d_sendmsg='$d_sendmsg' d_setegid='$d_setegid' d_seteuid='$d_seteuid' d_setgrent='$d_setgrent' +d_setgrent_r='$d_setgrent_r' d_setgrps='$d_setgrps' d_sethent='$d_sethent' +d_sethostent_r='$d_sethostent_r' d_setitimer='$d_setitimer' d_setlinebuf='$d_setlinebuf' d_setlocale='$d_setlocale' +d_setlocale_r='$d_setlocale_r' d_setnent='$d_setnent' +d_setnetent_r='$d_setnetent_r' d_setpent='$d_setpent' d_setpgid='$d_setpgid' d_setpgrp2='$d_setpgrp2' d_setpgrp='$d_setpgrp' d_setprior='$d_setprior' d_setproctitle='$d_setproctitle' +d_setprotoent_r='$d_setprotoent_r' d_setpwent='$d_setpwent' +d_setpwent_r='$d_setpwent_r' d_setregid='$d_setregid' d_setresgid='$d_setresgid' d_setresuid='$d_setresuid' @@ -16382,6 +20004,7 @@ d_setreuid='$d_setreuid' d_setrgid='$d_setrgid' d_setruid='$d_setruid' d_setsent='$d_setsent' +d_setservent_r='$d_setservent_r' d_setsid='$d_setsid' d_setvbuf='$d_setvbuf' d_sfio='$d_sfio' @@ -16395,11 +20018,16 @@ d_sigaction='$d_sigaction' d_sigprocmask='$d_sigprocmask' d_sigsetjmp='$d_sigsetjmp' d_sockatmark='$d_sockatmark' +d_sockatmarkproto='$d_sockatmarkproto' d_socket='$d_socket' d_socklen_t='$d_socklen_t' d_sockpair='$d_sockpair' d_socks5_init='$d_socks5_init' d_sqrtl='$d_sqrtl' +d_srand48_r='$d_srand48_r' +d_srandom_r='$d_srandom_r' +d_sresgproto='$d_sresgproto' +d_sresuproto='$d_sresuproto' d_statblks='$d_statblks' d_statfs_f_flags='$d_statfs_f_flags' d_statfs_s='$d_statfs_s' @@ -16416,6 +20044,7 @@ d_strcoll='$d_strcoll' d_strctcpy='$d_strctcpy' d_strerrm='$d_strerrm' d_strerror='$d_strerror' +d_strerror_r='$d_strerror_r' d_strftime='$d_strftime' d_strtod='$d_strtod' d_strtol='$d_strtol' @@ -16429,6 +20058,7 @@ d_strxfrm='$d_strxfrm' d_suidsafe='$d_suidsafe' d_symlink='$d_symlink' d_syscall='$d_syscall' +d_syscallproto='$d_syscallproto' d_sysconf='$d_sysconf' d_sysernlst='$d_sysernlst' d_syserrlst='$d_syserrlst' @@ -16439,14 +20069,20 @@ d_telldir='$d_telldir' d_telldirproto='$d_telldirproto' d_time='$d_time' d_times='$d_times' +d_tm_tm_gmtoff='$d_tm_tm_gmtoff' +d_tm_tm_zone='$d_tm_tm_zone' +d_tmpnam_r='$d_tmpnam_r' d_truncate='$d_truncate' +d_ttyname_r='$d_ttyname_r' d_tzname='$d_tzname' d_u32align='$d_u32align' d_ualarm='$d_ualarm' d_umask='$d_umask' d_uname='$d_uname' d_union_semun='$d_union_semun' +d_unordered='$d_unordered' d_usleep='$d_usleep' +d_usleepproto='$d_usleepproto' d_ustat='$d_ustat' d_vendorarch='$d_vendorarch' d_vendorbin='$d_vendorbin' @@ -16466,22 +20102,33 @@ d_xenix='$d_xenix' date='$date' db_hashtype='$db_hashtype' db_prefixtype='$db_prefixtype' +db_version_major='$db_version_major' +db_version_minor='$db_version_minor' +db_version_patch='$db_version_patch' defvoidused='$defvoidused' direntrytype='$direntrytype' dlext='$dlext' dlsrc='$dlsrc' doublesize='$doublesize' drand01='$drand01' +drand48_r_proto='$drand48_r_proto' dynamic_ext='$dynamic_ext' eagain='$eagain' ebcdic='$ebcdic' echo='$echo' egrep='$egrep' emacs='$emacs' +endgrent_r_proto='$endgrent_r_proto' +endhostent_r_proto='$endhostent_r_proto' +endnetent_r_proto='$endnetent_r_proto' +endprotoent_r_proto='$endprotoent_r_proto' +endpwent_r_proto='$endpwent_r_proto' +endservent_r_proto='$endservent_r_proto' eunicefix='$eunicefix' exe_ext='$exe_ext' expr='$expr' extensions='$extensions' +extras='$extras' fflushNULL='$fflushNULL' fflushall='$fflushall' find='$find' @@ -16490,16 +20137,40 @@ flex='$flex' fpossize='$fpossize' fpostype='$fpostype' freetype='$freetype' +from='$from' full_ar='$full_ar' full_csh='$full_csh' full_sed='$full_sed' gccosandvers='$gccosandvers' gccversion='$gccversion' +getgrent_r_proto='$getgrent_r_proto' +getgrgid_r_proto='$getgrgid_r_proto' +getgrnam_r_proto='$getgrnam_r_proto' +gethostbyaddr_r_proto='$gethostbyaddr_r_proto' +gethostbyname_r_proto='$gethostbyname_r_proto' +gethostent_r_proto='$gethostent_r_proto' +getlogin_r_proto='$getlogin_r_proto' +getnetbyaddr_r_proto='$getnetbyaddr_r_proto' +getnetbyname_r_proto='$getnetbyname_r_proto' +getnetent_r_proto='$getnetent_r_proto' +getprotobyname_r_proto='$getprotobyname_r_proto' +getprotobynumber_r_proto='$getprotobynumber_r_proto' +getprotoent_r_proto='$getprotoent_r_proto' +getpwent_r_proto='$getpwent_r_proto' +getpwnam_r_proto='$getpwnam_r_proto' +getpwuid_r_proto='$getpwuid_r_proto' +getservbyname_r_proto='$getservbyname_r_proto' +getservbyport_r_proto='$getservbyport_r_proto' +getservent_r_proto='$getservent_r_proto' +getspnam_r_proto='$getspnam_r_proto' gidformat='$gidformat' gidsign='$gidsign' gidsize='$gidsize' gidtype='$gidtype' glibpth='$glibpth' +gmake='$gmake' +gmtime_r_proto='$gmtime_r_proto' +gnulibc_version='$gnulibc_version' grep='$grep' groupcat='$groupcat' groupstype='$groupstype' @@ -16518,6 +20189,7 @@ i8size='$i8size' i8type='$i8type' i_arpainet='$i_arpainet' i_bsdioctl='$i_bsdioctl' +i_crypt='$i_crypt' i_db='$i_db' i_dbm='$i_dbm' i_dirent='$i_dirent' @@ -16525,11 +20197,13 @@ i_dld='$i_dld' i_dlfcn='$i_dlfcn' i_fcntl='$i_fcntl' i_float='$i_float' +i_fp='$i_fp' +i_fp_class='$i_fp_class' i_gdbm='$i_gdbm' i_grp='$i_grp' -i_iconv='$i_iconv' i_ieeefp='$i_ieeefp' i_inttypes='$i_inttypes' +i_langinfo='$i_langinfo' i_libutil='$i_libutil' i_limits='$i_limits' i_locale='$i_locale' @@ -16645,6 +20319,7 @@ lint='$lint' lkflags='$lkflags' ln='$ln' lns='$lns' +localtime_r_proto='$localtime_r_proto' locincpth='$locincpth' loclibpth='$loclibpth' longdblsize='$longdblsize' @@ -16693,6 +20368,7 @@ nroff='$nroff' nvEUformat='$nvEUformat' nvFUformat='$nvFUformat' nvGUformat='$nvGUformat' +nv_preserves_uv_bits='$nv_preserves_uv_bits' nveformat='$nveformat' nvfformat='$nvfformat' nvgformat='$nvgformat' @@ -16713,6 +20389,7 @@ patchlevel='$patchlevel' path_sep='$path_sep' perl5='$perl5' perl='$perl' +perl_patchlevel='$perl_patchlevel' perladmin='$perladmin' perllibs='$perllibs' perlpath='$perlpath' @@ -16727,18 +20404,23 @@ prefix='$prefix' prefixexp='$prefixexp' privlib='$privlib' privlibexp='$privlibexp' +procselfexe='$procselfexe' prototype='$prototype' ptrsize='$ptrsize' quadkind='$quadkind' quadtype='$quadtype' randbits='$randbits' randfunc='$randfunc' +random_r_proto='$random_r_proto' randseedtype='$randseedtype' ranlib='$ranlib' rd_nodata='$rd_nodata' +readdir64_r_proto='$readdir64_r_proto' +readdir_r_proto='$readdir_r_proto' revision='$revision' rm='$rm' rmail='$rmail' +run='$run' runnm='$runnm' sPRIEUldbl='$sPRIEUldbl' sPRIFUldbl='$sPRIFUldbl' @@ -16761,6 +20443,13 @@ seedfunc='$seedfunc' selectminbits='$selectminbits' selecttype='$selecttype' sendmail='$sendmail' +setgrent_r_proto='$setgrent_r_proto' +sethostent_r_proto='$sethostent_r_proto' +setlocale_r_proto='$setlocale_r_proto' +setnetent_r_proto='$setnetent_r_proto' +setprotoent_r_proto='$setprotoent_r_proto' +setpwent_r_proto='$setpwent_r_proto' +setservent_r_proto='$setservent_r_proto' sh='$sh' shar='$shar' sharpbang='$sharpbang' @@ -16795,6 +20484,8 @@ socksizetype='$socksizetype' sort='$sort' spackage='$spackage' spitshell='$spitshell' +srand48_r_proto='$srand48_r_proto' +srandom_r_proto='$srandom_r_proto' src='$src' ssizetype='$ssizetype' startperl='$startperl' @@ -16807,21 +20498,26 @@ stdio_cnt='$stdio_cnt' stdio_filbuf='$stdio_filbuf' stdio_ptr='$stdio_ptr' stdio_stream_array='$stdio_stream_array' +strerror_r_proto='$strerror_r_proto' strings='$strings' submit='$submit' subversion='$subversion' sysman='$sysman' tail='$tail' tar='$tar' +targetarch='$targetarch' tbl='$tbl' tee='$tee' test='$test' timeincl='$timeincl' timetype='$timetype' +tmpnam_r_proto='$tmpnam_r_proto' +to='$to' touch='$touch' tr='$tr' trnl='$trnl' troff='$troff' +ttyname_r_proto='$ttyname_r_proto' u16size='$u16size' u16type='$u16type' u32size='$u32size' @@ -16840,6 +20536,7 @@ uquadtype='$uquadtype' use5005threads='$use5005threads' use64bitall='$use64bitall' use64bitint='$use64bitint' +usecrosscompile='$usecrosscompile' usedl='$usedl' useithreads='$useithreads' uselargefiles='$uselargefiles' @@ -16851,6 +20548,7 @@ usenm='$usenm' useopcode='$useopcode' useperlio='$useperlio' useposix='$useposix' +usereentrant='$usereentrant' usesfio='$usesfio' useshrplib='$useshrplib' usesocks='$usesocks' @@ -16875,6 +20573,7 @@ vendorlibexp='$vendorlibexp' vendorprefix='$vendorprefix' vendorprefixexp='$vendorprefixexp' version='$version' +version_patchlevel_string='$version_patchlevel_string' versiononly='$versiononly' vi='$vi' voidflags='$voidflags' @@ -16892,6 +20591,7 @@ $test -f UU/cmdline.opt && $cat UU/cmdline.opt >> config.sh : add special variables $test -f $src/patchlevel.h && \ awk '/^#define[ ]+PERL_/ {printf "%s=%s\n",$2,$3}' $src/patchlevel.h >>config.sh +echo "PERL_PATCHLEVEL=$perl_patchlevel" >>config.sh echo "PERL_CONFIG_SH=true" >>config.sh : propagate old symbols @@ -16922,7 +20622,7 @@ fi case "$alldone" in exit) $rm -rf UU - echo "Done." + echo "Extraction done." exit 0 ;; cont) @@ -16952,7 +20652,9 @@ esac echo " " exec 1>&4 +pwd=`pwd` . ./UU/extract +cd "$pwd" if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then dflt=y @@ -16982,7 +20684,7 @@ elif test -f [Mm]akefile; then echo " " echo "Now you must run a $make." else - echo "Done." + echo "Configure done." fi if $test -f Policy.sh; then