X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Configure;h=d57d749ceeeeb5a63f26c9ce25a4a02eb7a04374;hb=522b859adcc800ddbbe593fba580633bb305644f;hp=4cdd0c2c4fd96ffb163d5b239f5a45af6c467947;hpb=d6b7ef8642dbff7f74dde11fd4995a37e8f38c04;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Configure b/Configure index 4cdd0c2..d57d749 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 Wed Mar 20 05:22:55 EET 2002 [metaconfig 3.0 PL70] +# Generated on Thu Aug 1 18:53:48 CEST 2002 [metaconfig 3.0 PL70] # (with additional metaconfig patches by perlbug@perl.org) cat >c1$$ </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'. @@ -2387,7 +2392,16 @@ 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 <. 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 : decide how portable to be. Allow command line overrides. case "$d_portable" in @@ -3811,7 +3931,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 @@ -4329,31 +4451,6 @@ case "$firstmakefile" in '') firstmakefile='makefile';; esac -case "$usesocks" in -$define|true|[yY]*) dflt='y';; -*) dflt='n';; -esac -cat <&4 @@ -4831,176 +4928,51 @@ EOM esac $rm -f try try.* -: check for void type +: check for long long 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 +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 -#if TRY & 4 - if(goo == moo) { - exit(0); - } -#endif - exit(0); +: 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); } -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 + set try + if eval $compile_ok; then + longlongsize=`$run ./try` + echo "Your long longs are $longlongsize bytes long." 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 + 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 -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 - ;; + if $test "X$longsize" = "X$longlongsize"; then + echo "(That isn't any different from an ordinary long.)" + fi + ;; esac $rm -f try.* try @@ -5355,31 +5327,6 @@ EOM ;; esac -case "$use64bitall" in -"$define"|true|[yY]*) - case "$ptrsize" in - 4) cat <&4 - -*** You have chosen a maximally 64-bit build, but your pointers -*** are only 4 bytes wide, disabling maximal 64-bitness. - -EOM - use64bitall="$undef" - case "$use64bitint" in - "$define"|true|[yY]*) ;; - *) cat <&4 - -*** Downgrading from maximal 64-bitness to using 64-bit integers. - -EOM - use64bitint="$define" - ;; - esac - ;; - esac - ;; -esac - case "$use64bitint" in "$define"|true|[yY]*) : Look for a hint-file generated 'call-back-unit'. If the @@ -5418,26 +5365,43 @@ esac echo " " echo "Checking for GNU C Library..." >&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 @@ -5454,7 +5418,7 @@ case "$usenm" in esac case "$dflt" in '') - if $test "$osname" = aix -a ! -f /lib/syscalls.exp; then + if $test "$osname" = aix -a "X$PASE" != "$Xdefine" -a ! -f /lib/syscalls.exp; then echo " " echo "Whoops! This is an AIX system without /lib/syscalls.exp!" >&4 echo "'nm' won't be sufficient on this sytem." >&4 @@ -5690,7 +5654,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;\ @@ -5801,11 +5765,19 @@ else fi fi nm_extract="$com" -if $test -f /lib/syscalls.exp; then +case "$PASE" in +define) + echo " " + echo "Since you are compiling for PASE, extracting more symbols from libc.a...">&4 + nm -Tv /lib/libc.a | grep '^\.[a-z]' | awk '$2 == "T" {print $1}' | sed 's/^.//' >> libc.list + ;; +*) 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 -fi + fi + ;; +esac ;; esac $rm -f libnames libpath @@ -6072,6 +6044,31 @@ esac set modfl d_modfl eval $inlibc + +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 prototype for modfl is available +echo " " +set d_modflproto modfl math.h +eval $hasproto + d_modfl_pow32_bug="$undef" case "$d_longdbl$d_modfl" in @@ -6082,6 +6079,14 @@ EOM $cat >try.c < #include +EOCP +if $test "X$d_modflproto" != "X$define"; then + $cat >>try.c <>try.c <. 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 <reflect + chmod +x,u+s reflect + ./reflect >flect 2>&1 + if $contains "/dev/fd" flect >/dev/null; then + echo "Congratulations, your kernel has secure setuid scripts!" >&4 + val="$define" + else + $cat <&4 + dflt=n;; + "$undef") + echo "Well, the $hint value is *not* secure." >&4 + dflt=n;; + *) echo "Well, the $hint value *is* secure." >&4 + dflt=y;; + esac + ;; + *) + $rm -f reflect flect + echo "#!$ls" >reflect + chmod +x,u+s reflect + echo >flect + chmod a+w flect + echo '"su" will (probably) prompt you for '"$ans's password." + su $ans -c './reflect >flect' + if $contains "/dev/fd" flect >/dev/null; then + echo "Okay, it looks like setuid scripts are secure." >&4 + dflt=y + else + echo "I don't think setuid scripts are secure." >&4 + dflt=n + fi + ;; + esac + rp='Does your kernel have *secure* setuid scripts?' + . ./myread + case "$ans" in + [yY]*) val="$define";; + *) val="$undef";; + esac + 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 + +$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 + ;; +esac +$rm -f try.c try +case "$use64bitall" in +"$define"|true|[yY]*) + case "$ptrsize" in + 4) cat <&4 - -: see if setuid scripts can be secure -$cat <&4 -val="$undef" -if $test -d /dev/fd; then - echo "#!$ls" >reflect - chmod +x,u+s reflect - ./reflect >flect 2>&1 - if $contains "/dev/fd" flect >/dev/null; then - echo "Congratulations, your kernel has secure setuid scripts!" >&4 - val="$define" - else - $cat <&4 - dflt=n;; - "$undef") - echo "Well, the $hint value is *not* secure." >&4 - dflt=n;; - *) echo "Well, the $hint value *is* secure." >&4 - dflt=y;; - esac - ;; - *) - $rm -f reflect flect - echo "#!$ls" >reflect - chmod +x,u+s reflect - echo >flect - chmod a+w flect - echo '"su" will (probably) prompt you for '"$ans's password." - su $ans -c './reflect >flect' - if $contains "/dev/fd" flect >/dev/null; then - echo "Okay, it looks like setuid scripts are secure." >&4 - dflt=y - else - echo "I don't think setuid scripts are secure." >&4 - dflt=n - fi + use64bitint="$define" ;; esac - rp='Does your kernel have *secure* setuid scripts?' - . ./myread - case "$ans" in - [yY]*) val="$define";; - *) val="$undef";; - esac - 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 - -$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 < protochk <> protochk <<'EOSH' @@ -9087,6 +9170,14 @@ while test $# -ge 2; do $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 @@ -9107,25 +9198,6 @@ 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 @@ -9275,7 +9347,7 @@ set asctime_r d_asctime_r eval $inlibc case "$d_asctime_r" in "$define") - hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h" + 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 @@ -9301,7 +9373,7 @@ case "$d_asctime_r" in ./protochk "extern $try" $hdrs && asctime_r_proto=I_SBI ;; esac case "$asctime_r_proto" in - '') d_asctime_r=undef + ''|0) d_asctime_r=undef asctime_r_proto=0 echo "Disabling asctime_r, cannot determine prototype." >&4 ;; * ) case "$asctime_r_proto" in @@ -9314,6 +9386,8 @@ case "$d_asctime_r" in *) case "$usethreads" in define) echo "asctime_r has no prototype, not using it." >&4 ;; esac + d_asctime_r=undef + asctime_r_proto=0 ;; esac ;; @@ -9867,7 +9941,7 @@ echo " " echo 'Checking to see if your C compiler knows about "const"...' >&4 $cat >const.c <<'EOCP' typedef struct spug { int drokk; } spug; -int main() +main() { const char *foo; const spug y; @@ -9949,7 +10023,7 @@ case "$d_crypt_r" in ./protochk "extern $try" $hdrs && crypt_r_proto=B_CCD ;; esac case "$crypt_r_proto" in - '') d_crypt_r=undef + ''|0) d_crypt_r=undef crypt_r_proto=0 echo "Disabling crypt_r, cannot determine prototype." >&4 ;; * ) case "$crypt_r_proto" in @@ -9962,6 +10036,8 @@ case "$d_crypt_r" in *) case "$usethreads" in define) echo "crypt_r has no prototype, not using it." >&4 ;; esac + d_crypt_r=undef + crypt_r_proto=0 ;; esac ;; @@ -9986,7 +10062,7 @@ set ctermid_r d_ctermid_r eval $inlibc case "$d_ctermid_r" in "$define") - hdrs="$i_systypes sys/types.h define stdio.h $i_stdio stdio.h" + 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 @@ -10000,7 +10076,7 @@ case "$d_ctermid_r" in ./protochk "extern $try" $hdrs && ctermid_r_proto=B_B ;; esac case "$ctermid_r_proto" in - '') d_ctermid_r=undef + ''|0) d_ctermid_r=undef ctermid_r_proto=0 echo "Disabling ctermid_r, cannot determine prototype." >&4 ;; * ) case "$ctermid_r_proto" in @@ -10013,6 +10089,8 @@ case "$d_ctermid_r" in *) case "$usethreads" in define) echo "ctermid_r has no prototype, not using it." >&4 ;; esac + d_ctermid_r=undef + ctermid_r_proto=0 ;; esac ;; @@ -10025,7 +10103,7 @@ 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" + 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 @@ -10051,7 +10129,7 @@ case "$d_ctime_r" in ./protochk "extern $try" $hdrs && ctime_r_proto=I_SBI ;; esac case "$ctime_r_proto" in - '') d_ctime_r=undef + ''|0) d_ctime_r=undef ctime_r_proto=0 echo "Disabling ctime_r, cannot determine prototype." >&4 ;; * ) case "$ctime_r_proto" in @@ -10064,6 +10142,8 @@ case "$d_ctime_r" in *) case "$usethreads" in define) echo "ctime_r has no prototype, not using it." >&4 ;; esac + d_ctime_r=undef + ctime_r_proto=0 ;; esac ;; @@ -10410,7 +10490,7 @@ case "$d_drand48_r" in ./protochk "extern $try" $hdrs && drand48_r_proto=I_ST ;; esac case "$drand48_r_proto" in - '') d_drand48_r=undef + ''|0) d_drand48_r=undef drand48_r_proto=0 echo "Disabling drand48_r, cannot determine prototype." >&4 ;; * ) case "$drand48_r_proto" in @@ -10423,6 +10503,8 @@ case "$d_drand48_r" in *) case "$usethreads" in define) echo "drand48_r has no prototype, not using it." >&4 ;; esac + d_drand48_r=undef + drand48_r_proto=0 ;; esac ;; @@ -10495,7 +10577,7 @@ case "$d_endgrent_r" in ./protochk "extern $try" $hdrs && endgrent_r_proto=V_H ;; esac case "$endgrent_r_proto" in - '') d_endgrent_r=undef + ''|0) d_endgrent_r=undef endgrent_r_proto=0 echo "Disabling endgrent_r, cannot determine prototype." >&4 ;; * ) case "$endgrent_r_proto" in @@ -10508,6 +10590,8 @@ case "$d_endgrent_r" in *) case "$usethreads" in define) echo "endgrent_r has no prototype, not using it." >&4 ;; esac + d_endgrent_r=undef + endgrent_r_proto=0 ;; esac ;; @@ -10539,14 +10623,14 @@ case "$d_endhostent_r" in define) case "$endhostent_r_proto" in ''|0) try='int endhostent_r(struct hostent_data*);' - ./protochk "extern $try" $hdrs && endhostent_r_proto=I_S ;; + ./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_S ;; + ./protochk "extern $try" $hdrs && endhostent_r_proto=V_D ;; esac case "$endhostent_r_proto" in - '') d_endhostent_r=undef + ''|0) d_endhostent_r=undef endhostent_r_proto=0 echo "Disabling endhostent_r, cannot determine prototype." >&4 ;; * ) case "$endhostent_r_proto" in @@ -10559,6 +10643,8 @@ case "$d_endhostent_r" in *) case "$usethreads" in define) echo "endhostent_r has no prototype, not using it." >&4 ;; esac + d_endhostent_r=undef + endhostent_r_proto=0 ;; esac ;; @@ -10586,14 +10672,14 @@ case "$d_endnetent_r" in define) case "$endnetent_r_proto" in ''|0) try='int endnetent_r(struct netent_data*);' - ./protochk "extern $try" $hdrs && endnetent_r_proto=I_S ;; + ./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_S ;; + ./protochk "extern $try" $hdrs && endnetent_r_proto=V_D ;; esac case "$endnetent_r_proto" in - '') d_endnetent_r=undef + ''|0) d_endnetent_r=undef endnetent_r_proto=0 echo "Disabling endnetent_r, cannot determine prototype." >&4 ;; * ) case "$endnetent_r_proto" in @@ -10606,6 +10692,8 @@ case "$d_endnetent_r" in *) case "$usethreads" in define) echo "endnetent_r has no prototype, not using it." >&4 ;; esac + d_endnetent_r=undef + endnetent_r_proto=0 ;; esac ;; @@ -10633,14 +10721,14 @@ case "$d_endprotoent_r" in define) case "$endprotoent_r_proto" in ''|0) try='int endprotoent_r(struct protoent_data*);' - ./protochk "extern $try" $hdrs && endprotoent_r_proto=I_S ;; + ./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_S ;; + ./protochk "extern $try" $hdrs && endprotoent_r_proto=V_D ;; esac case "$endprotoent_r_proto" in - '') d_endprotoent_r=undef + ''|0) d_endprotoent_r=undef endprotoent_r_proto=0 echo "Disabling endprotoent_r, cannot determine prototype." >&4 ;; * ) case "$endprotoent_r_proto" in @@ -10653,6 +10741,8 @@ case "$d_endprotoent_r" in *) case "$usethreads" in define) echo "endprotoent_r has no prototype, not using it." >&4 ;; esac + d_endprotoent_r=undef + endprotoent_r_proto=0 ;; esac ;; @@ -10775,7 +10865,7 @@ case "$d_endpwent_r" in ./protochk "extern $try" $hdrs && endpwent_r_proto=V_H ;; esac case "$endpwent_r_proto" in - '') d_endpwent_r=undef + ''|0) d_endpwent_r=undef endpwent_r_proto=0 echo "Disabling endpwent_r, cannot determine prototype." >&4 ;; * ) case "$endpwent_r_proto" in @@ -10788,6 +10878,8 @@ case "$d_endpwent_r" in *) case "$usethreads" in define) echo "endpwent_r has no prototype, not using it." >&4 ;; esac + d_endpwent_r=undef + endpwent_r_proto=0 ;; esac ;; @@ -10815,14 +10907,14 @@ case "$d_endservent_r" in define) case "$endservent_r_proto" in ''|0) try='int endservent_r(struct servent_data*);' - ./protochk "extern $try" $hdrs && endservent_r_proto=I_S ;; + ./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_S ;; + ./protochk "extern $try" $hdrs && endservent_r_proto=V_D ;; esac case "$endservent_r_proto" in - '') d_endservent_r=undef + ''|0) d_endservent_r=undef endservent_r_proto=0 echo "Disabling endservent_r, cannot determine prototype." >&4 ;; * ) case "$endservent_r_proto" in @@ -10835,6 +10927,8 @@ case "$d_endservent_r" in *) case "$usethreads" in define) echo "endservent_r has no prototype, not using it." >&4 ;; esac + d_endservent_r=undef + endservent_r_proto=0 ;; esac ;; @@ -11512,7 +11606,7 @@ case "$d_getgrent_r" in ./protochk "extern $try" $hdrs && getgrent_r_proto=I_SBIH ;; esac case "$getgrent_r_proto" in - '') d_getgrent_r=undef + ''|0) d_getgrent_r=undef getgrent_r_proto=0 echo "Disabling getgrent_r, cannot determine prototype." >&4 ;; * ) case "$getgrent_r_proto" in @@ -11525,6 +11619,8 @@ case "$d_getgrent_r" in *) case "$usethreads" in define) echo "getgrent_r has no prototype, not using it." >&4 ;; esac + d_getgrent_r=undef + getgrent_r_proto=0 ;; esac ;; @@ -11563,7 +11659,7 @@ case "$d_getgrgid_r" in ./protochk "extern $try" $hdrs && getgrgid_r_proto=S_TSBI ;; esac case "$getgrgid_r_proto" in - '') d_getgrgid_r=undef + ''|0) d_getgrgid_r=undef getgrgid_r_proto=0 echo "Disabling getgrgid_r, cannot determine prototype." >&4 ;; * ) case "$getgrgid_r_proto" in @@ -11576,6 +11672,8 @@ case "$d_getgrgid_r" in *) case "$usethreads" in define) echo "getgrgid_r has no prototype, not using it." >&4 ;; esac + d_getgrgid_r=undef + getgrgid_r_proto=0 ;; esac ;; @@ -11618,7 +11716,7 @@ case "$d_getgrnam_r" in ./protochk "extern $try" $hdrs && getgrnam_r_proto=S_CSBI ;; esac case "$getgrnam_r_proto" in - '') d_getgrnam_r=undef + ''|0) d_getgrnam_r=undef getgrnam_r_proto=0 echo "Disabling getgrnam_r, cannot determine prototype." >&4 ;; * ) case "$getgrnam_r_proto" in @@ -11631,6 +11729,8 @@ case "$d_getgrnam_r" in *) case "$usethreads" in define) echo "getgrnam_r has no prototype, not using it." >&4 ;; esac + d_getgrnam_r=undef + getgrnam_r_proto=0 ;; esac ;; @@ -11790,7 +11890,7 @@ case "$d_gethostbyaddr_r" in ./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_CII ;; esac case "$gethostbyaddr_r_proto" in - '') d_gethostbyaddr_r=undef + ''|0) d_gethostbyaddr_r=undef gethostbyaddr_r_proto=0 echo "Disabling gethostbyaddr_r, cannot determine prototype." >&4 ;; * ) case "$gethostbyaddr_r_proto" in @@ -11803,6 +11903,8 @@ case "$d_gethostbyaddr_r" in *) case "$usethreads" in define) echo "gethostbyaddr_r has no prototype, not using it." >&4 ;; esac + d_gethostbyaddr_r=undef + gethostbyaddr_r_proto=0 ;; esac ;; @@ -11837,7 +11939,7 @@ case "$d_gethostbyname_r" in ./protochk "extern $try" $hdrs && gethostbyname_r_proto=I_CSD ;; esac case "$gethostbyname_r_proto" in - '') d_gethostbyname_r=undef + ''|0) d_gethostbyname_r=undef gethostbyname_r_proto=0 echo "Disabling gethostbyname_r, cannot determine prototype." >&4 ;; * ) case "$gethostbyname_r_proto" in @@ -11850,6 +11952,8 @@ case "$d_gethostbyname_r" in *) case "$usethreads" in define) echo "gethostbyname_r has no prototype, not using it." >&4 ;; esac + d_gethostbyname_r=undef + gethostbyname_r_proto=0 ;; esac ;; @@ -11896,7 +12000,7 @@ case "$d_gethostent_r" in ./protochk "extern $try" $hdrs && gethostent_r_proto=I_SD ;; esac case "$gethostent_r_proto" in - '') d_gethostent_r=undef + ''|0) d_gethostent_r=undef gethostent_r_proto=0 echo "Disabling gethostent_r, cannot determine prototype." >&4 ;; * ) case "$gethostent_r_proto" in @@ -11909,6 +12013,8 @@ case "$d_gethostent_r" in *) case "$usethreads" in define) echo "gethostent_r has no prototype, not using it." >&4 ;; esac + d_gethostent_r=undef + gethostent_r_proto=0 ;; esac ;; @@ -11960,7 +12066,7 @@ case "$d_getlogin_r" in ./protochk "extern $try" $hdrs && getlogin_r_proto=B_BI ;; esac case "$getlogin_r_proto" in - '') d_getlogin_r=undef + ''|0) d_getlogin_r=undef getlogin_r_proto=0 echo "Disabling getlogin_r, cannot determine prototype." >&4 ;; * ) case "$getlogin_r_proto" in @@ -11973,6 +12079,8 @@ case "$d_getlogin_r" in *) case "$usethreads" in define) echo "getlogin_r has no prototype, not using it." >&4 ;; esac + d_getlogin_r=undef + getlogin_r_proto=0 ;; esac ;; @@ -12043,7 +12151,7 @@ case "$d_getnetbyaddr_r" in ./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_IISD ;; esac case "$getnetbyaddr_r_proto" in - '') d_getnetbyaddr_r=undef + ''|0) d_getnetbyaddr_r=undef getnetbyaddr_r_proto=0 echo "Disabling getnetbyaddr_r, cannot determine prototype." >&4 ;; * ) case "$getnetbyaddr_r_proto" in @@ -12056,6 +12164,8 @@ case "$d_getnetbyaddr_r" in *) case "$usethreads" in define) echo "getnetbyaddr_r has no prototype, not using it." >&4 ;; esac + d_getnetbyaddr_r=undef + getnetbyaddr_r_proto=0 ;; esac ;; @@ -12094,7 +12204,7 @@ case "$d_getnetbyname_r" in ./protochk "extern $try" $hdrs && getnetbyname_r_proto=I_CSD ;; esac case "$getnetbyname_r_proto" in - '') d_getnetbyname_r=undef + ''|0) d_getnetbyname_r=undef getnetbyname_r_proto=0 echo "Disabling getnetbyname_r, cannot determine prototype." >&4 ;; * ) case "$getnetbyname_r_proto" in @@ -12107,6 +12217,8 @@ case "$d_getnetbyname_r" in *) case "$usethreads" in define) echo "getnetbyname_r has no prototype, not using it." >&4 ;; esac + d_getnetbyname_r=undef + getnetbyname_r_proto=0 ;; esac ;; @@ -12153,7 +12265,7 @@ case "$d_getnetent_r" in ./protochk "extern $try" $hdrs && getnetent_r_proto=I_SD ;; esac case "$getnetent_r_proto" in - '') d_getnetent_r=undef + ''|0) d_getnetent_r=undef getnetent_r_proto=0 echo "Disabling getnetent_r, cannot determine prototype." >&4 ;; * ) case "$getnetent_r_proto" in @@ -12166,6 +12278,8 @@ case "$d_getnetent_r" in *) case "$usethreads" in define) echo "getnetent_r has no prototype, not using it." >&4 ;; esac + d_getnetent_r=undef + getnetent_r_proto=0 ;; esac ;; @@ -12238,7 +12352,7 @@ case "$d_getprotobyname_r" in ./protochk "extern $try" $hdrs && getprotobyname_r_proto=I_CSD ;; esac case "$getprotobyname_r_proto" in - '') d_getprotobyname_r=undef + ''|0) d_getprotobyname_r=undef getprotobyname_r_proto=0 echo "Disabling getprotobyname_r, cannot determine prototype." >&4 ;; * ) case "$getprotobyname_r_proto" in @@ -12251,6 +12365,8 @@ case "$d_getprotobyname_r" in *) case "$usethreads" in define) echo "getprotobyname_r has no prototype, not using it." >&4 ;; esac + d_getprotobyname_r=undef + getprotobyname_r_proto=0 ;; esac ;; @@ -12285,7 +12401,7 @@ case "$d_getprotobynumber_r" in ./protochk "extern $try" $hdrs && getprotobynumber_r_proto=I_ISD ;; esac case "$getprotobynumber_r_proto" in - '') d_getprotobynumber_r=undef + ''|0) d_getprotobynumber_r=undef getprotobynumber_r_proto=0 echo "Disabling getprotobynumber_r, cannot determine prototype." >&4 ;; * ) case "$getprotobynumber_r_proto" in @@ -12298,6 +12414,8 @@ case "$d_getprotobynumber_r" in *) case "$usethreads" in define) echo "getprotobynumber_r has no prototype, not using it." >&4 ;; esac + d_getprotobynumber_r=undef + getprotobynumber_r_proto=0 ;; esac ;; @@ -12336,7 +12454,7 @@ case "$d_getprotoent_r" in ./protochk "extern $try" $hdrs && getprotoent_r_proto=I_SD ;; esac case "$getprotoent_r_proto" in - '') d_getprotoent_r=undef + ''|0) d_getprotoent_r=undef getprotoent_r_proto=0 echo "Disabling getprotoent_r, cannot determine prototype." >&4 ;; * ) case "$getprotoent_r_proto" in @@ -12349,6 +12467,8 @@ case "$d_getprotoent_r" in *) case "$usethreads" in define) echo "getprotoent_r has no prototype, not using it." >&4 ;; esac + d_getprotoent_r=undef + getprotoent_r_proto=0 ;; esac ;; @@ -12408,7 +12528,7 @@ case "$d_getpwent_r" in ./protochk "extern $try" $hdrs && getpwent_r_proto=I_SBIH ;; esac case "$getpwent_r_proto" in - '') d_getpwent_r=undef + ''|0) d_getpwent_r=undef getpwent_r_proto=0 echo "Disabling getpwent_r, cannot determine prototype." >&4 ;; * ) case "$getpwent_r_proto" in @@ -12421,6 +12541,8 @@ case "$d_getpwent_r" in *) case "$usethreads" in define) echo "getpwent_r has no prototype, not using it." >&4 ;; esac + d_getpwent_r=undef + getpwent_r_proto=0 ;; esac ;; @@ -12459,7 +12581,7 @@ case "$d_getpwnam_r" in ./protochk "extern $try" $hdrs && getpwnam_r_proto=I_CSBI ;; esac case "$getpwnam_r_proto" in - '') d_getpwnam_r=undef + ''|0) d_getpwnam_r=undef getpwnam_r_proto=0 echo "Disabling getpwnam_r, cannot determine prototype." >&4 ;; * ) case "$getpwnam_r_proto" in @@ -12472,6 +12594,8 @@ case "$d_getpwnam_r" in *) case "$usethreads" in define) echo "getpwnam_r has no prototype, not using it." >&4 ;; esac + d_getpwnam_r=undef + getpwnam_r_proto=0 ;; esac ;; @@ -12510,7 +12634,7 @@ case "$d_getpwuid_r" in ./protochk "extern $try" $hdrs && getpwuid_r_proto=S_TSBI ;; esac case "$getpwuid_r_proto" in - '') d_getpwuid_r=undef + ''|0) d_getpwuid_r=undef getpwuid_r_proto=0 echo "Disabling getpwuid_r, cannot determine prototype." >&4 ;; * ) case "$getpwuid_r_proto" in @@ -12523,6 +12647,8 @@ case "$d_getpwuid_r" in *) case "$usethreads" in define) echo "getpwuid_r has no prototype, not using it." >&4 ;; esac + d_getpwuid_r=undef + getpwuid_r_proto=0 ;; esac ;; @@ -12570,7 +12696,7 @@ case "$d_getservbyname_r" in ./protochk "extern $try" $hdrs && getservbyname_r_proto=I_CCSD ;; esac case "$getservbyname_r_proto" in - '') d_getservbyname_r=undef + ''|0) d_getservbyname_r=undef getservbyname_r_proto=0 echo "Disabling getservbyname_r, cannot determine prototype." >&4 ;; * ) case "$getservbyname_r_proto" in @@ -12583,6 +12709,8 @@ case "$d_getservbyname_r" in *) case "$usethreads" in define) echo "getservbyname_r has no prototype, not using it." >&4 ;; esac + d_getservbyname_r=undef + getservbyname_r_proto=0 ;; esac ;; @@ -12617,7 +12745,7 @@ case "$d_getservbyport_r" in ./protochk "extern $try" $hdrs && getservbyport_r_proto=I_ICSD ;; esac case "$getservbyport_r_proto" in - '') d_getservbyport_r=undef + ''|0) d_getservbyport_r=undef getservbyport_r_proto=0 echo "Disabling getservbyport_r, cannot determine prototype." >&4 ;; * ) case "$getservbyport_r_proto" in @@ -12630,6 +12758,8 @@ case "$d_getservbyport_r" in *) case "$usethreads" in define) echo "getservbyport_r has no prototype, not using it." >&4 ;; esac + d_getservbyport_r=undef + getservbyport_r_proto=0 ;; esac ;; @@ -12668,7 +12798,7 @@ case "$d_getservent_r" in ./protochk "extern $try" $hdrs && getservent_r_proto=I_SD ;; esac case "$getservent_r_proto" in - '') d_getservent_r=undef + ''|0) d_getservent_r=undef getservent_r_proto=0 echo "Disabling getservent_r, cannot determine prototype." >&4 ;; * ) case "$getservent_r_proto" in @@ -12681,6 +12811,8 @@ case "$d_getservent_r" in *) case "$usethreads" in define) echo "getservent_r has no prototype, not using it." >&4 ;; esac + d_getservent_r=undef + getservent_r_proto=0 ;; esac ;; @@ -12724,7 +12856,7 @@ case "$d_getspnam_r" in ./protochk "extern $try" $hdrs && getspnam_r_proto=S_CSBI ;; esac case "$getspnam_r_proto" in - '') d_getspnam_r=undef + ''|0) d_getspnam_r=undef getspnam_r_proto=0 echo "Disabling getspnam_r, cannot determine prototype." >&4 ;; * ) case "$getspnam_r_proto" in @@ -12737,6 +12869,8 @@ case "$d_getspnam_r" in *) case "$usethreads" in define) echo "getspnam_r has no prototype, not using it." >&4 ;; esac + d_getspnam_r=undef + getspnam_r_proto=0 ;; esac ;; @@ -12768,7 +12902,7 @@ 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" + 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 @@ -12786,7 +12920,7 @@ case "$d_gmtime_r" in ./protochk "extern $try" $hdrs && gmtime_r_proto=I_TS ;; esac case "$gmtime_r_proto" in - '') d_gmtime_r=undef + ''|0) d_gmtime_r=undef gmtime_r_proto=0 echo "Disabling gmtime_r, cannot determine prototype." >&4 ;; * ) case "$gmtime_r_proto" in @@ -12799,6 +12933,8 @@ case "$d_gmtime_r" in *) case "$usethreads" in define) echo "gmtime_r has no prototype, not using it." >&4 ;; esac + d_gmtime_r=undef + gmtime_r_proto=0 ;; esac ;; @@ -13006,7 +13142,7 @@ 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" + 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 @@ -13024,7 +13160,7 @@ case "$d_localtime_r" in ./protochk "extern $try" $hdrs && localtime_r_proto=I_TS ;; esac case "$localtime_r_proto" in - '') d_localtime_r=undef + ''|0) d_localtime_r=undef localtime_r_proto=0 echo "Disabling localtime_r, cannot determine prototype." >&4 ;; * ) case "$localtime_r_proto" in @@ -13037,6 +13173,8 @@ case "$d_localtime_r" in *) case "$usethreads" in define) echo "localtime_r has no prototype, not using it." >&4 ;; esac + d_localtime_r=undef + localtime_r_proto=0 ;; esac ;; @@ -13269,7 +13407,7 @@ $rm -f try.c try echo " " echo 'Checking to see if your C compiler knows about "volatile"...' >&4 $cat >try.c <<'EOCP' -int main() +main() { typedef struct _goo_struct goo_struct; goo_struct * volatile goo = ((goo_struct *)0); @@ -13560,13 +13698,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 " " @@ -13785,7 +13916,7 @@ case "$d_random_r" in ./protochk "extern $try" $hdrs && random_r_proto=I_TS ;; esac case "$random_r_proto" in - '') d_random_r=undef + ''|0) d_random_r=undef random_r_proto=0 echo "Disabling random_r, cannot determine prototype." >&4 ;; * ) case "$random_r_proto" in @@ -13798,6 +13929,8 @@ case "$d_random_r" in *) case "$usethreads" in define) echo "random_r has no prototype, not using it." >&4 ;; esac + d_random_r=undef + random_r_proto=0 ;; esac ;; @@ -13838,7 +13971,7 @@ case "$d_readdir64_r" in ./protochk "extern $try" $hdrs && readdir64_r_proto=I_TS ;; esac case "$readdir64_r_proto" in - '') d_readdir64_r=undef + ''|0) d_readdir64_r=undef readdir64_r_proto=0 echo "Disabling readdir64_r, cannot determine prototype." >&4 ;; * ) case "$readdir64_r_proto" in @@ -13851,6 +13984,8 @@ case "$d_readdir64_r" in *) case "$usethreads" in define) echo "readdir64_r has no prototype, not using it." >&4 ;; esac + d_readdir64_r=undef + readdir64_r_proto=0 ;; esac ;; @@ -13881,7 +14016,7 @@ case "$d_readdir_r" in ./protochk "extern $try" $hdrs && readdir_r_proto=I_TS ;; esac case "$readdir_r_proto" in - '') d_readdir_r=undef + ''|0) d_readdir_r=undef readdir_r_proto=0 echo "Disabling readdir_r, cannot determine prototype." >&4 ;; * ) case "$readdir_r_proto" in @@ -13894,6 +14029,8 @@ case "$d_readdir_r" in *) case "$usethreads" in define) echo "readdir_r has no prototype, not using it." >&4 ;; esac + d_readdir_r=undef + readdir_r_proto=0 ;; esac ;; @@ -14428,7 +14565,7 @@ case "$d_setgrent_r" in ./protochk "extern $try" $hdrs && setgrent_r_proto=V_H ;; esac case "$setgrent_r_proto" in - '') d_setgrent_r=undef + ''|0) d_setgrent_r=undef setgrent_r_proto=0 echo "Disabling setgrent_r, cannot determine prototype." >&4 ;; * ) case "$setgrent_r_proto" in @@ -14441,6 +14578,8 @@ case "$d_setgrent_r" in *) case "$usethreads" in define) echo "setgrent_r has no prototype, not using it." >&4 ;; esac + d_setgrent_r=undef + setgrent_r_proto=0 ;; esac ;; @@ -14475,7 +14614,7 @@ case "$d_sethostent_r" in ./protochk "extern $try" $hdrs && sethostent_r_proto=V_ID ;; esac case "$sethostent_r_proto" in - '') d_sethostent_r=undef + ''|0) d_sethostent_r=undef sethostent_r_proto=0 echo "Disabling sethostent_r, cannot determine prototype." >&4 ;; * ) case "$sethostent_r_proto" in @@ -14488,6 +14627,8 @@ case "$d_sethostent_r" in *) case "$usethreads" in define) echo "sethostent_r has no prototype, not using it." >&4 ;; esac + d_sethostent_r=undef + sethostent_r_proto=0 ;; esac ;; @@ -14530,7 +14671,7 @@ case "$d_setlocale_r" in ./protochk "extern $try" $hdrs && setlocale_r_proto=I_ICBI ;; esac case "$setlocale_r_proto" in - '') d_setlocale_r=undef + ''|0) d_setlocale_r=undef setlocale_r_proto=0 echo "Disabling setlocale_r, cannot determine prototype." >&4 ;; * ) case "$setlocale_r_proto" in @@ -14543,6 +14684,8 @@ case "$d_setlocale_r" in *) case "$usethreads" in define) echo "setlocale_r has no prototype, not using it." >&4 ;; esac + d_setlocale_r=undef + setlocale_r_proto=0 ;; esac ;; @@ -14577,7 +14720,7 @@ case "$d_setnetent_r" in ./protochk "extern $try" $hdrs && setnetent_r_proto=V_ID ;; esac case "$setnetent_r_proto" in - '') d_setnetent_r=undef + ''|0) d_setnetent_r=undef setnetent_r_proto=0 echo "Disabling setnetent_r, cannot determine prototype." >&4 ;; * ) case "$setnetent_r_proto" in @@ -14590,6 +14733,8 @@ case "$d_setnetent_r" in *) case "$usethreads" in define) echo "setnetent_r has no prototype, not using it." >&4 ;; esac + d_setnetent_r=undef + setnetent_r_proto=0 ;; esac ;; @@ -14640,7 +14785,7 @@ case "$d_setprotoent_r" in ./protochk "extern $try" $hdrs && setprotoent_r_proto=V_ID ;; esac case "$setprotoent_r_proto" in - '') d_setprotoent_r=undef + ''|0) d_setprotoent_r=undef setprotoent_r_proto=0 echo "Disabling setprotoent_r, cannot determine prototype." >&4 ;; * ) case "$setprotoent_r_proto" in @@ -14653,6 +14798,8 @@ case "$d_setprotoent_r" in *) case "$usethreads" in define) echo "setprotoent_r has no prototype, not using it." >&4 ;; esac + d_setprotoent_r=undef + setprotoent_r_proto=0 ;; esac ;; @@ -14687,7 +14834,7 @@ case "$d_setpwent_r" in ./protochk "extern $try" $hdrs && setpwent_r_proto=V_H ;; esac case "$setpwent_r_proto" in - '') d_setpwent_r=undef + ''|0) d_setpwent_r=undef setpwent_r_proto=0 echo "Disabling setpwent_r, cannot determine prototype." >&4 ;; * ) case "$setpwent_r_proto" in @@ -14700,6 +14847,8 @@ case "$d_setpwent_r" in *) case "$usethreads" in define) echo "setpwent_r has no prototype, not using it." >&4 ;; esac + d_setpwent_r=undef + setpwent_r_proto=0 ;; esac ;; @@ -14754,7 +14903,7 @@ case "$d_setservent_r" in ./protochk "extern $try" $hdrs && setservent_r_proto=V_ID ;; esac case "$setservent_r_proto" in - '') d_setservent_r=undef + ''|0) d_setservent_r=undef setservent_r_proto=0 echo "Disabling setservent_r, cannot determine prototype." >&4 ;; * ) case "$setservent_r_proto" in @@ -14767,6 +14916,8 @@ case "$d_setservent_r" in *) case "$usethreads" in define) echo "setservent_r has no prototype, not using it." >&4 ;; esac + d_setservent_r=undef + setservent_r_proto=0 ;; esac ;; @@ -15048,7 +15199,7 @@ case "$d_srand48_r" in ./protochk "extern $try" $hdrs && srand48_r_proto=I_LS ;; esac case "$srand48_r_proto" in - '') d_srand48_r=undef + ''|0) d_srand48_r=undef srand48_r_proto=0 echo "Disabling srand48_r, cannot determine prototype." >&4 ;; * ) case "$srand48_r_proto" in @@ -15061,6 +15212,8 @@ case "$d_srand48_r" in *) case "$usethreads" in define) echo "srand48_r has no prototype, not using it." >&4 ;; esac + d_srand48_r=undef + srand48_r_proto=0 ;; esac ;; @@ -15087,7 +15240,7 @@ case "$d_srandom_r" in ./protochk "extern $try" $hdrs && srandom_r_proto=I_TS ;; esac case "$srandom_r_proto" in - '') d_srandom_r=undef + ''|0) d_srandom_r=undef srandom_r_proto=0 echo "Disabling srandom_r, cannot determine prototype." >&4 ;; * ) case "$srandom_r_proto" in @@ -15100,6 +15253,8 @@ case "$d_srandom_r" in *) case "$usethreads" in define) echo "srandom_r has no prototype, not using it." >&4 ;; esac + d_srandom_r=undef + srandom_r_proto=0 ;; esac ;; @@ -15262,6 +15417,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 @@ -15447,7 +15622,7 @@ eval $inlibc echo " " echo "Checking to see if your C compiler can copy structs..." >&4 $cat >try.c <<'EOCP' -int main() +main() { struct blurfl { int dyick; @@ -15533,7 +15708,7 @@ case "$d_strerror_r" in ./protochk "extern $try" $hdrs && strerror_r_proto=B_IBW ;; esac case "$strerror_r_proto" in - '') d_strerror_r=undef + ''|0) d_strerror_r=undef strerror_r_proto=0 echo "Disabling strerror_r, cannot determine prototype." >&4 ;; * ) case "$strerror_r_proto" in @@ -15546,6 +15721,8 @@ case "$d_strerror_r" in *) case "$usethreads" in define) echo "strerror_r has no prototype, not using it." >&4 ;; esac + d_strerror_r=undef + strerror_r_proto=0 ;; esac ;; @@ -15853,6 +16030,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 @@ -15880,7 +16075,7 @@ set tmpnam_r d_tmpnam_r eval $inlibc case "$d_tmpnam_r" in "$define") - hdrs="$i_systypes sys/types.h define stdio.h $i_stdio stdio.h" + 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 @@ -15894,7 +16089,7 @@ case "$d_tmpnam_r" in ./protochk "extern $try" $hdrs && tmpnam_r_proto=B_B ;; esac case "$tmpnam_r_proto" in - '') d_tmpnam_r=undef + ''|0) d_tmpnam_r=undef tmpnam_r_proto=0 echo "Disabling tmpnam_r, cannot determine prototype." >&4 ;; * ) case "$tmpnam_r_proto" in @@ -15907,6 +16102,8 @@ case "$d_tmpnam_r" in *) case "$usethreads" in define) echo "tmpnam_r has no prototype, not using it." >&4 ;; esac + d_tmpnam_r=undef + tmpnam_r_proto=0 ;; esac ;; @@ -15945,7 +16142,7 @@ case "$d_ttyname_r" in ./protochk "extern $try" $hdrs && ttyname_r_proto=B_IBI ;; esac case "$ttyname_r_proto" in - '') d_ttyname_r=undef + ''|0) d_ttyname_r=undef ttyname_r_proto=0 echo "Disabling ttyname_r, cannot determine prototype." >&4 ;; * ) case "$ttyname_r_proto" in @@ -15958,6 +16155,8 @@ case "$d_ttyname_r" in *) case "$usethreads" in define) echo "ttyname_r has no prototype, not using it." >&4 ;; esac + d_ttyname_r=undef + ttyname_r_proto=0 ;; esac ;; @@ -15984,7 +16183,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*) @@ -16007,21 +16206,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); @@ -16048,7 +16249,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" ;; @@ -17736,6 +17937,7 @@ EOM esac fi : locate the preferred pager for this system +fn=f/ case "$pager" in '') dflt='' @@ -17755,10 +17957,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" @@ -17769,10 +17975,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' @@ -18391,24 +18594,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()." @@ -18818,7 +19003,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 @@ -19108,9 +19293,7 @@ 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. -# Encode::XX need explicit mentions for the same reason. -# --jhi 2002-03-04 -known_extensions="$known_extensions threads/shared Encode/CN Encode/JP Encode/KR Encode/TW" +known_extensions="$known_extensions threads/shared" set X $nonxs_extensions shift nonxs_extensions="$*" @@ -19142,7 +19325,7 @@ for xxx in $known_extensions ; do case "$i_ndbm" in $define) case "$osname-$use64bitint" in - cygwin-*|hpux-define) + hpux-define) case "$libs" in *-lndbm*) avail_ext="$avail_ext $xxx" ;; esac @@ -19156,7 +19339,7 @@ for xxx in $known_extensions ; do case "${i_dbm}${i_rpcsvcdbm}" in *"${define}"*) case "$osname-$use64bitint" in - cygwin-*|hpux-define) + hpux-define) case "$libs" in *-ldbm*) avail_ext="$avail_ext $xxx" ;; esac @@ -19200,14 +19383,33 @@ for xxx in $known_extensions ; do esac esac ;; - threads|threads/shared) - case "$usethreads" in - true|$define|y) - case "$useithreads" in - $define|true|[yY]*) avail_ext="$avail_ext $xxx" ;; - esac + XS/APItest|xs/apitest) + # This is just for testing. Skip it unless we have dynamic loading. + + case "$usedl" in + $define) avail_ext="$avail_ext $xxx" ;; esac ;; + XS/Typemap|xs/typemap) + # This is just for testing. Skip it unless we have dynamic loading. + case "$usedl" in + $define) avail_ext="$avail_ext $xxx" ;; + esac + ;; + 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 @@ -19248,7 +19450,19 @@ Note that DynaLoader is always built and need not be mentioned here. EOM case "$dynamic_ext" in - '') dflt="$avail_ext" ;; + '') + : Exclude those listed in static_ext + dflt='' + for xxx in $avail_ext; do + case " $static_ext " in + *" $xxx "*) ;; + *) dflt="$dflt $xxx" ;; + esac + done + set X $dflt + shift + dflt="$*" + ;; *) dflt="$dynamic_ext" # Perhaps we are reusing an old out-of-date config.sh. case "$hint" in @@ -19344,6 +19558,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 @@ -19475,7 +19703,6 @@ awk='$awk' baserev='$baserev' bash='$bash' bin='$bin' -bincompat5005='$bincompat5005' binexp='$binexp' bison='$bison' byacc='$byacc' @@ -19543,7 +19770,6 @@ 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' @@ -19719,6 +19945,7 @@ d_mktime='$d_mktime' d_mmap='$d_mmap' d_modfl='$d_modfl' d_modfl_pow32_bug='$d_modfl_pow32_bug' +d_modflproto='$d_modflproto' d_mprotect='$d_mprotect' d_msg='$d_msg' d_msg_ctrunc='$d_msg_ctrunc' @@ -19982,6 +20209,7 @@ gidtype='$gidtype' glibpth='$glibpth' gmake='$gmake' gmtime_r_proto='$gmtime_r_proto' +gnulibc_version='$gnulibc_version' grep='$grep' groupcat='$groupcat' groupstype='$groupstype'