X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Configure;h=128f003b2be6dc571e57c36404087efa81c17187;hb=f13a2bc0291ac6766d77bda1b46c5921237360c9;hp=1c22563191752d1aba700831dcae6d2fe25ad29c;hpb=28f5ac64634a59c745f35fa344b1611121715c59;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Configure b/Configure index 1c22563..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 Jun 19 23:54:48 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 + 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 @@ -1190,12 +1342,24 @@ config_args='$*' config_argc=$# EOSH argn=1 +args_exp='' +args_sep='' for arg in "$@"; do cat >>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' @@ -1321,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 @@ -1526,13 +1690,13 @@ 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=' @@ -1558,7 +1722,7 @@ for file in $*; do */*) dir=`expr X$file : 'X\(.*\)/'` file=`expr X$file : 'X.*/\(.*\)'` - (cd $dir && . ./$file) + (cd "$dir" && . ./$file) ;; *) . ./$file @@ -1571,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 @@ -1639,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 @@ -1695,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'. @@ -1977,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 @@ -1997,13 +2169,13 @@ $eunicefix loc loclist=" awk cat +chmod comm cp echo expr grep ls -make mkdir rm sed @@ -2021,9 +2193,11 @@ cpp csh date egrep +gmake gzip less ln +make more nm nroff @@ -2048,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 /*) @@ -2081,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 /*) @@ -2100,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 @@ -2151,10 +2350,10 @@ FOO ;; esac -cat <checkcc +cat <trygcc $startsh EOS -cat <<'EOSC' >>checkcc +cat <<'EOSC' >>trygcc case "$cc" in '') ;; *) $rm -f try try.* @@ -2192,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 @@ -2266,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 .. @@ -2296,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 @@ -2323,20 +2576,20 @@ $define|true|[yY]*) nm=$targetarch-nm ranlib=$targetarch-ranlib $echo 'extern int foo;' > try.c - set X `$cc -v -E perl.c 2>&1 | $awk '/^#include &1 | $awk '/^#include &4 + incpth="`$echo $incpth|$sed 's/^ //'`" + echo "Guessing incpth '$incpth'." >&4 for i in $*; do - j=`$echo $i|$sed 's,/include$,/lib,'` + 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 + libpth="`$echo $libpth|$sed 's/^ //'`" + echo "Guessing libpth '$libpth'." >&4 fi $rm -f try.c ;; @@ -2347,11 +2600,11 @@ $define|true|[yY]*) esac case "$incpth" in '') echo "Incpth not defined." >&4; croak=y ;; - *) echo "Using incpth $incpth." >&4 ;; + *) echo "Using incpth '$incpth'." >&4 ;; esac case "$libpth" in '') echo "Libpth not defined." >&4; croak=y ;; - *) echo "Using libpth $libpth." >&4 ;; + *) echo "Using libpth '$libpth'." >&4 ;; esac case "$usrinc" in '') for i in $incpth; do @@ -2378,11 +2631,13 @@ $define|true|[yY]*) 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 ;; @@ -2417,30 +2672,77 @@ $define|true|[yY]*) 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 @@ -2453,6 +2755,7 @@ EOF #!/bin/sh for f in \$@ do + $rm -f \$f $targetfrom $q $targetuser@$targethost:$targetdir/\$f . || exit 1 done exit 0 @@ -2462,6 +2765,7 @@ EOF #!/bin/sh for f in \$@ do + $rm -f \$f cp $targetdir/\$f . || exit 1 done exit 0 @@ -2474,23 +2778,24 @@ EOF if $test ! -f $run; then echo "Target 'run' script '$run' not found." >&4 else - chmod a+rx $run + $chmod a+rx $run fi if $test ! -f $to; then echo "Target 'to' script '$to' not found." >&4 else - chmod a+rx $to + $chmod a+rx $to fi if $test ! -f $from; then echo "Target 'from' script '$from' not found." >&4 else - chmod a+rx $from + $chmod a+rx $from fi if $test ! -f $run -o ! -f $to -o ! -f $from; then exit 1 fi cat >&4 <. 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 <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 -: 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 +: decide how portable to be. Allow command line overrides. +case "$d_portable" in +"$undef") ;; +*) d_portable="$define" ;; +esac + +: set up shell script to do ~ expansion +cat >filexp <.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin + name=\`$expr x\$1 : '..\([^/]*\)'\` + dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' &2 + exit 1 + fi + case "\$1" in + */*) + echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\` + ;; + *) + echo \$dir + ;; + esac 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;; -esac -$rm -f testcpp.c testcpp.out - -: decide how portable to be. Allow command line overrides. -case "$d_portable" in -"$undef") ;; -*) d_portable="$define" ;; -esac - -: set up shell script to do ~ expansion -cat >filexp <&2 - exit 1 - fi - case "\$1" in - */*) - echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\` - ;; - *) - echo \$dir - ;; - esac - fi - ;; -*) - echo \$1 - ;; -esac -EOSS -chmod +x filexp -$eunicefix filexp + ;; +*) + echo \$1 + ;; +esac +EOSS +chmod +x filexp +$eunicefix filexp : now set up to get a file name cat <getfile @@ -3661,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 @@ -3921,84 +4192,232 @@ 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 +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;; +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 @@ -4080,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 @@ -4476,62 +4870,6 @@ 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; @@ -4589,517 +4927,211 @@ EOM esac $rm -f try try.* -: 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 - +: 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 + 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 +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_ok; then - lseeksize=`$run ./try` - echo "Your file offsets are $lseeksize bytes long." +if eval $compile; then + echo " found." >&4 + val="$define" 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" + echo " NOT found." >&4 + val="$undef" fi $rm -f try.c try +set i_inttypes +eval $setvar -: 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 - +: check for int64_t echo " " -case "$fpostype" in -*_t) zzz="$fpostype" ;; -*) zzz="fpos_t" ;; -esac -echo "Checking the size of $zzz..." >&4 -cat > try.c <&4 +$cat >try.c < -#include -int main() { - printf("%d\n", (int)sizeof($fpostype)); - exit(0); -} +#$i_inttypes I_INTTYPES +#ifdef I_INTTYPES +#include +#endif +int main() { int64_t x = 7; } EOCP 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 +if eval $compile; then + val="$define" + echo "You have int64_t." 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" + val="$undef" + echo "You do not have int64_t." fi +$rm -f try try.* +set d_int64_t +eval $setvar - -# 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=`$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 - $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=`$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 - ;; -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=`$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 - -: 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=`$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 -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 - -: check for int64_t -echo " " -echo "Checking to see if you have int64_t..." >&4 -$cat >try.c < -#$i_inttypes I_INTTYPES -#ifdef I_INTTYPES -#include -#endif -int main() { int64_t x = 7; } -EOCP -set try -if eval $compile; then - val="$define" - echo "You have int64_t." -else - val="$undef" - echo "You do not have int64_t." -fi -$rm -f try try.* -set d_int64_t -eval $setvar - - -echo " " -echo "Checking which 64-bit integer type we could use..." >&4 +echo " " +echo "Checking which 64-bit integer type we could use..." >&4 case "$intsize" in 8) val=int @@ -5277,44 +5309,19 @@ rp='Try to use maximal 64-bit support, if available?' case "$ans" in [yY]*) val="$define" ;; *) val="$undef" ;; -esac -set use64bitall -eval $setvar -case "$use64bitall" in -"$define") - case "$use64bitint" in - "$undef") - 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. +esac +set use64bitall +eval $setvar +case "$use64bitall" in +"$define") + case "$use64bitint" in + "$undef") + cat <&4 -cat >try.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 +EOCP set try -if eval $compile_ok && $run ./try; then +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 try try.* +$rm -f try try.* glibc.ver set d_gnulibc eval $setvar @@ -5629,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;\ @@ -5743,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 @@ -5816,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 @@ -5935,65 +5902,267 @@ EOCP longdblsize=`$run ./try` echo "Your long doubles are $longdblsize bytes long." else - dflt='8' - echo " " - echo "(I can't seem to compile the test program. Guessing...)" >&4 - rp="What is the size of a long double (in bytes)?" - . ./myread - longdblsize="$ans" + dflt='8' + echo " " + echo "(I can't seem to compile the test program. Guessing...)" >&4 + rp="What is the size of a long double (in bytes)?" + . ./myread + longdblsize="$ans" + fi + if $test "X$doublesize" = "X$longdblsize"; then + echo "(That isn't any different from an ordinary double.)" + fi + ;; +esac +$rm -f try.* try + +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 - if $test "X$doublesize" = "X$longdblsize"; then - echo "(That isn't any different from an ordinary double.)" - fi + case "$osname:$gccversion" in + aix:) ccflags="$saveccflags" ;; # restore + esac ;; esac -$rm -f try.* try -case "$useperlio" in -$define|true|[yY]*|'') dflt='y';; +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 @@ -6080,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 @@ -6228,7 +6397,6 @@ prefixit='case "$3" in esac;; esac' - : get the patchlevel echo " " echo "Getting the current patchlevel..." >&4 @@ -6255,11 +6423,15 @@ if $test -r $rsrc/.patch ; 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) ;; -'') $echo "(You have $package version $patchlevel subversion $subversion.)" ;; -*) $echo "(You have $package version $patchlevel subversion $subversion patchlevel $perl_patchlevel.)" ;; +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. @@ -6370,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 "(That's for file descriptors, not floppy disks.)" + val="$undef" +fi +set d_suidsafe +eval $setvar + +$rm -f reflect flect + +: now see if they want to do setuid emulation +echo " " +val="$undef" +case "$d_suidsafe" in +"$define") + val="$undef" + 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 -else - echo "I don't think setuid scripts are secure (no /dev/fd directory)." >&4 - echo "(That's for file descriptors, not floppy disks.)" - val="$undef" -fi -set d_suidsafe -eval $setvar + ;; +esac +$rm -f try.c try +case "$use64bitall" in +"$define"|true|[yY]*) + case "$ptrsize" in + 4) cat <&4 -$rm -f reflect flect +*** You have chosen a maximally 64-bit build, but your pointers +*** are only 4 bytes wide, disabling maximal 64-bitness. -: now see if they want to do setuid emulation -echo " " -val="$undef" -case "$d_suidsafe" in -"$define") - val="$undef" - echo "No need to emulate SUID scripts since they are secure here." >& 4 - ;; -*) - $cat <&4 + +*** Downgrading from maximal 64-bitness to using 64-bit integers. EOM - case "$d_dosuid" in - "$define") dflt=y ;; - *) dflt=n ;; - esac - rp="Do you want to do setuid/setgid emulation?" - . ./myread - case "$ans" in - [yY]*) val="$define";; - *) val="$undef";; + use64bitint="$define" + ;; + esac + ;; esac ;; esac -set d_dosuid -eval $setvar - -: see if this is a malloc.h system -set malloc.h i_malloc -eval $inhdr -: see if stdlib is available -set stdlib.h i_stdlib -eval $inhdr : determine which malloc to compile in echo " " @@ -6926,6 +7209,58 @@ 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 @@ -7013,13 +7348,9 @@ 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 <&4 +$cat >try.c < +#include +int main() +{ + printf("%d\n", (int)sizeof($lseektype)); + return(0); +} +EOCP +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 + +: 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() { + printf("%d\n", (int)sizeof($fpostype)); + exit(0); +} +EOCP +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 -: determine where add-on public executables go -case "$sitebin" in -'') dflt=$siteprefix/bin ;; -*) dflt=$sitebin ;; + + +# 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=`$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 + $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=`$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 + ;; esac -fn=d~ -rp='Pathname where the add-on public executables should be installed?' -. ./getfile -sitebin="$ans" -sitebinexp="$ansexp" -: Change installation prefix, if necessary. -if $test X"$prefix" != X"$installprefix"; then - installsitebin=`echo $sitebinexp | sed "s#^$prefix#$installprefix#"` -else - installsitebin="$sitebinexp" -fi case "$vendorprefix" in '') d_vendorbin="$undef" @@ -8222,122 +8802,10 @@ fi set qgcvt d_qgcvt eval $inlibc -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 +: 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 @@ -8365,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"; @@ -8410,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); @@ -8448,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 @@ -8480,12 +9008,19 @@ for xxx_convert in $xxx_list; do 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))' ;; @@ -8493,70 +9028,346 @@ 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 -: see if _fwalk exists -set fwalk d__fwalk -eval $inlibc - -: Initialize h_fcntl -h_fcntl=false - -: Initialize h_sysfile -h_sysfile=false - -: access call always available on UNIX -set access d_access +fi + +: see if _fwalk exists +set fwalk d__fwalk +eval $inlibc + +: Initialize h_fcntl +h_fcntl=false + +: Initialize h_sysfile +h_sysfile=false + +: access call always available on UNIX +set access d_access +eval $inlibc + +: locate the flags for 'access()' +case "$d_access" in +"$define") + echo " " + $cat >access.c <<'EOCP' +#include +#ifdef I_FCNTL +#include +#endif +#ifdef I_SYS_FILE +#include +#endif +#ifdef I_UNISTD +#include +#endif +int main() { + exit(R_OK); +} +EOCP + : check sys/file.h first, no particular reason here + if $test `./findhdr sys/file.h` && \ + $cc -o access $cppflags -DI_SYS_FILE access.c >/dev/null 2>&1 ; then + h_sysfile=true; + echo " defines the *_OK access constants." >&4 + elif $test `./findhdr fcntl.h` && \ + $cc -o access $cppflags -DI_FCNTL access.c >/dev/null 2>&1 ; then + h_fcntl=true; + echo " defines the *_OK access constants." >&4 + elif $test `./findhdr unistd.h` && \ + $cc -o access $cppflags -DI_UNISTD access.c >/dev/null 2>&1 ; then + echo " defines the *_OK access constants." >&4 + else + echo "I can't find the four *_OK access constants--I'll use mine." >&4 + fi + ;; +esac +$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 asctime_r exists +set asctime_r d_asctime_r eval $inlibc - -: locate the flags for 'access()' -case "$d_access" in +case "$d_asctime_r" in "$define") - echo " " - $cat >access.c <<'EOCP' -#include -#ifdef I_FCNTL -#include -#endif -#ifdef I_SYS_FILE -#include -#endif -#ifdef I_UNISTD -#include -#endif -int main() { - exit(R_OK); -} -EOCP - : check sys/file.h first, no particular reason here - if $test `./findhdr sys/file.h` && \ - $cc -o access $cppflags -DI_SYS_FILE access.c >/dev/null 2>&1 ; then - h_sysfile=true; - echo " defines the *_OK access constants." >&4 - elif $test `./findhdr fcntl.h` && \ - $cc -o access $cppflags -DI_FCNTL access.c >/dev/null 2>&1 ; then - h_fcntl=true; - echo " defines the *_OK access constants." >&4 - elif $test `./findhdr unistd.h` && \ - $cc -o access $cppflags -DI_UNISTD access.c >/dev/null 2>&1 ; then - echo " defines the *_OK access constants." >&4 - else - echo "I can't find the four *_OK access constants--I'll use mine." >&4 - fi + 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 -$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 atolf exists set atolf d_atolf @@ -8979,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 @@ -8997,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 @@ -9058,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 @@ -9084,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 @@ -9183,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 @@ -9222,25 +10164,6 @@ $rm -f dbl_dig.? set d_dbl_dig 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 dbm.h is available : see if dbmclose exists set dbmclose d_dbmclose @@ -9348,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 @@ -9460,11 +10440,52 @@ 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 +: 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 " " set d_drand48proto drand48 $i_stdlib stdlib.h $i_unistd unistd.h @@ -9482,26 +10503,413 @@ 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 >try.c <<'EOCP' @@ -9574,6 +10982,59 @@ case "$i_string" in *) 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 + ;; +*) + h_fcntl=false + val="$undef" + ;; +esac +set i_fcntl +eval $setvar + : check for non-blocking I/O stuff case "$h_sysfile" in true) echo "#include " > head.c;; @@ -9589,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"); @@ -9632,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; @@ -9692,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); } @@ -9706,7 +11177,7 @@ EOCP set try if eval $compile_ok; then echo "$startsh" >mtry - echo "$run ./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 @@ -9768,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 @@ -9782,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; @@ -9794,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)); @@ -9813,6 +11292,18 @@ case "$d_fcntl" in 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 <." >&4 - else - val="$undef" - echo "We won't be including ." >&4 - fi - ;; -*) - h_sysfile=false - ;; -esac -set i_sysfile -eval $setvar +: see if flock exists +set flock d_flock +eval $inlibc : see if prototype for flock is available echo " " @@ -10031,6 +11418,10 @@ eval $hasproto 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 @@ -10039,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 " " @@ -10138,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 @@ -10229,16 +11803,199 @@ case "$d_uname$d_gethname" in *) echo "I'll use 'popen("'"'$aphostname'", "r")'"' to get your hostname." >&4 ;; - esac;; -esac -case "$d_phostname" in -'') d_phostname="$undef";; + 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 + ;; +*) 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 @@ -10252,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 @@ -10272,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 @@ -10310,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 @@ -10323,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 @@ -10336,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 @@ -10345,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 @@ -10364,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 @@ -10439,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 @@ -10505,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 @@ -10580,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 @@ -10684,65 +13260,6 @@ 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 - : see if mprotect exists set mprotect d_mprotect eval $inlibc @@ -10822,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 @@ -11107,18 +13632,18 @@ set try d_nv_preserves_uv="$undef" if eval $compile; then - d_nv_preserves_uv_bits="`$run ./try`" + 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 @@ -11147,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 " " @@ -11222,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 <&4 ;; esac esac -set d_sched_yield -eval $setvar - -: see if pthread_yield exists -set try -DPTHREAD_YIELD -if eval $compile; then - val="$define" - case "$sched_yield" in - '') sched_yield='pthread_yield()' ;; - esac -else - set try -DPTHREAD_YIELD_NULL - if eval $compile; then - val="$define" - case "$sched_yield" in - '') sched_yield='pthread_yield(NULL)' ;; - esac - else - val="$undef" - fi -fi -case "$usethreads" in -$define) - case "$val" in - $define) echo 'pthread_yield() found.' >&4 ;; - *) echo 'pthread_yield() NOT found.' >&4 ;; - esac - ;; -esac -set d_pthread_yield -eval $setvar - -case "$sched_yield" in -'') sched_yield=undef ;; -esac - -$rm -f try try.* - -: 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 +set d_sched_yield +eval $setvar - if $contains 'pw_gecos' $$.h >/dev/null 2>&1; then - val="$define" - else - val="$undef" - fi - set d_pwgecos - eval $setvar +: see if pthread_yield exists +set try -DPTHREAD_YIELD +if eval $compile; then + val="$define" + case "$sched_yield" in + '') sched_yield='pthread_yield()' ;; + esac +else + set try -DPTHREAD_YIELD_NULL + if eval $compile; then + val="$define" + case "$sched_yield" in + '') sched_yield='pthread_yield(NULL)' ;; + esac + else + val="$undef" + fi +fi +case "$usethreads" in +$define) + case "$val" in + $define) echo 'pthread_yield() found.' >&4 ;; + *) echo 'pthread_yield() NOT found.' >&4 ;; + esac + ;; +esac +set d_pthread_yield +eval $setvar - if $contains 'pw_passwd' $$.h >/dev/null 2>&1; then - val="$define" - else - val="$undef" - fi - set d_pwpasswd - eval $setvar +case "$sched_yield" in +'') sched_yield=undef ;; +esac - $rm -f $$.h +$rm -f try try.* + +: 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 @@ -11392,16 +13922,98 @@ 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 readv exists -set readv d_readv +: 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 realpath exists -set realpath d_realpath +: see if readv exists +set readv d_readv eval $inlibc : see if recvmsg exists @@ -11441,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--) { @@ -11493,36 +14109,34 @@ for (align = 7; align >= 0; align--) { exit(0); } EOCP - set try - if eval $compile_ok; then - if $run ./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 $run ./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 @@ -11906,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 @@ -11922,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 @@ -11946,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 @@ -11974,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 @@ -12042,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 @@ -12224,6 +15154,88 @@ eval $hasproto 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 @@ -12379,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 @@ -12623,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 @@ -12923,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 @@ -12945,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 @@ -12968,7 +16157,7 @@ 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 "$usecrosscompile$multiarch" in *$define*) @@ -12991,21 +16180,23 @@ an Alpha will report 12345678. If the test program works the default is probably right. I'm now running the test program... EOM - $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); @@ -13032,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" ;; @@ -13050,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; @@ -13067,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 */ @@ -13099,7 +16309,7 @@ int main() { EOCP set try if eval $compile_ok; then - echo "(Testing for character data alignment may dump core.)" >&4 + 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 </dev/null code="$?" $from try.out @@ -13803,7 +17010,6 @@ if $test "X$fflushNULL" = X -o "X$fflushall" = X; then '') set try -DTRY_FPRINTF if eval $compile; then - $rm -f try.out $run ./try 2>/dev/null code="$?" $from try.out @@ -13818,7 +17024,6 @@ fi case "$fflushNULL" in '') set try -DTRY_FFLUSH_NULL $output if eval $compile; then - $rm -f try.out $run ./try 2>/dev/null code="$?" $from try.out @@ -13943,7 +17148,6 @@ EOM $cat >&4 </dev/null code=$? $from try.out @@ -14314,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 @@ -14574,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 @@ -14748,6 +17911,7 @@ EOM esac fi : locate the preferred pager for this system +fn=f/ case "$pager" in '') dflt='' @@ -14767,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" @@ -14781,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' @@ -15140,7 +18305,7 @@ $cat >>signal_cmd <<'EOS' set signal if eval $compile_ok; then - $run ./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 @@ -15174,7 +18339,7 @@ EOCP 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 @@ -15403,24 +18568,6 @@ $rm -f stdioh -: 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 what type uids are declared as in the kernel echo " " echo "Looking for the type for user ids returned by getuid()." @@ -15560,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?" @@ -15582,51 +18729,25 @@ case "$yacc" in ;; esac -: 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 @@ -15648,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 @@ -15718,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 @@ -15763,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 @@ -15837,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 @@ -15898,7 +19038,6 @@ else $test "$silent" || sleep 1 fi fi -$rm -f ccsym* Cppsym.* : see if this is a termio system val="$undef" @@ -15955,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 @@ -16115,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; @@ -16125,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='' @@ -16151,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 @@ -16169,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 @@ -16191,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) @@ -16208,6 +19357,33 @@ for xxx in $known_extensions ; do 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 @@ -16344,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 @@ -16391,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 " " @@ -16464,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' @@ -16506,8 +19702,11 @@ cppminus='$cppminus' cpprun='$cpprun' cppstdin='$cppstdin' cppsymbols='$cppsymbols' +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' @@ -16527,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' @@ -16543,31 +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' @@ -16576,11 +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' @@ -16595,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' @@ -16618,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' @@ -16682,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' @@ -16696,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' @@ -16707,10 +19950,12 @@ 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_realpath='$d_realpath' d_recvmsg='$d_recvmsg' d_rename='$d_rename' d_rewinddir='$d_rewinddir' @@ -16733,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' @@ -16753,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' @@ -16772,6 +20024,8 @@ 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' @@ -16790,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' @@ -16814,13 +20069,18 @@ 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' @@ -16851,16 +20111,24 @@ 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' @@ -16875,11 +20143,34 @@ 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' @@ -16898,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' @@ -16905,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' @@ -17025,6 +20319,7 @@ lint='$lint' lkflags='$lkflags' ln='$ln' lns='$lns' +localtime_r_proto='$localtime_r_proto' locincpth='$locincpth' loclibpth='$loclibpth' longdblsize='$longdblsize' @@ -17073,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' @@ -17108,15 +20404,19 @@ 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' @@ -17143,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' @@ -17177,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' @@ -17189,6 +20498,7 @@ 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' @@ -17201,11 +20511,13 @@ 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' @@ -17261,6 +20573,7 @@ vendorlibexp='$vendorlibexp' vendorprefix='$vendorprefix' vendorprefixexp='$vendorprefixexp' version='$version' +version_patchlevel_string='$version_patchlevel_string' versiononly='$versiononly' vi='$vi' voidflags='$voidflags' @@ -17341,7 +20654,7 @@ echo " " exec 1>&4 pwd=`pwd` . ./UU/extract -cd $pwd +cd "$pwd" if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then dflt=y