This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Plan 9: No Configure.
[perl5.git] / Configure
index de4db38..625a06e 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Sat Feb 23 20:58:46 EET 2002 [metaconfig 3.0 PL70]
+# Generated on Sun Feb  2 17:04:58 EET 2003 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.org)
 
 cat >c1$$ <<EOF
 # (with additional metaconfig patches by perlbug@perl.org)
 
 cat >c1$$ <<EOF
@@ -47,6 +47,18 @@ true || exec sh $0 $argv:q
 (exit $?0) || exec sh $0 $argv:q
 rm -f c1$$ c2$$
 
 (exit $?0) || exec sh $0 $argv:q
 rm -f c1$$ c2$$
 
+if test -e /dev/cputype -a -e /dev/drivers -a -e /dev/osversion -a -e /dev/bintime; then
+       cat >&4 <<EOF
+***
+*** I'm sorry but this system looks like Plan 9 and Plan 9 doesn't do
+*** Configure that well.  (Plan 9 is close to UNIX but not close enough.)
+*** Please read the README.plan9 for further instructions.
+*** Cannot continue, aborting.
+***
+EOF
+       exit 1
+fi
+
 : compute my invocation name
 me=$0
 case "$0" in
 : compute my invocation name
 me=$0
 case "$0" in
@@ -165,7 +177,6 @@ esac
 test -d UU || mkdir UU
 cd UU && rm -f ./*
 
 test -d UU || mkdir UU
 cd UU && rm -f ./*
 
-
 ccname=''
 ccversion=''
 ccsymbols=''
 ccname=''
 ccversion=''
 ccsymbols=''
@@ -301,8 +312,6 @@ baserev=''
 bin=''
 binexp=''
 installbin=''
 bin=''
 binexp=''
 installbin=''
-bincompat5005=''
-d_bincompat5005=''
 byteorder=''
 cc=''
 ccflags=''
 byteorder=''
 cc=''
 ccflags=''
@@ -325,6 +334,8 @@ d__fwalk=''
 d_access=''
 d_accessx=''
 d_alarm=''
 d_access=''
 d_accessx=''
 d_alarm=''
+asctime_r_proto=''
+d_asctime_r=''
 d_attribut=''
 d_bcmp=''
 d_bcopy=''
 d_attribut=''
 d_bcmp=''
 d_bcopy=''
@@ -342,8 +353,14 @@ d_cmsghdr_s=''
 d_const=''
 cryptlib=''
 d_crypt=''
 d_const=''
 cryptlib=''
 d_crypt=''
+crypt_r_proto=''
+d_crypt_r=''
 d_csh=''
 full_csh=''
 d_csh=''
 full_csh=''
+ctermid_r_proto=''
+d_ctermid_r=''
+ctime_r_proto=''
+d_ctime_r=''
 d_cuserid=''
 d_dbl_dig=''
 d_dbminitproto=''
 d_cuserid=''
 d_dbl_dig=''
 d_dbminitproto=''
@@ -354,15 +371,29 @@ d_dlopen=''
 d_dlsymun=''
 d_dosuid=''
 d_suidsafe=''
 d_dlsymun=''
 d_dosuid=''
 d_suidsafe=''
+d_drand48_r=''
+drand48_r_proto=''
 d_drand48proto=''
 d_dup2=''
 d_eaccess=''
 d_endgrent=''
 d_drand48proto=''
 d_dup2=''
 d_eaccess=''
 d_endgrent=''
+d_endgrent_r=''
+endgrent_r_proto=''
 d_endhent=''
 d_endhent=''
+d_endhostent_r=''
+endhostent_r_proto=''
 d_endnent=''
 d_endnent=''
+d_endnetent_r=''
+endnetent_r_proto=''
 d_endpent=''
 d_endpent=''
+d_endprotoent_r=''
+endprotoent_r_proto=''
 d_endpwent=''
 d_endpwent=''
+d_endpwent_r=''
+endpwent_r_proto=''
 d_endsent=''
 d_endsent=''
+d_endservent_r=''
+endservent_r_proto=''
 d_fchdir=''
 d_fchmod=''
 d_fchown=''
 d_fchdir=''
 d_fchmod=''
 d_fchown=''
@@ -397,6 +428,12 @@ d_getcwd=''
 d_getespwnam=''
 d_getfsstat=''
 d_getgrent=''
 d_getespwnam=''
 d_getfsstat=''
 d_getgrent=''
+d_getgrent_r=''
+getgrent_r_proto=''
+d_getgrgid_r=''
+getgrgid_r_proto=''
+d_getgrnam_r=''
+getgrnam_r_proto=''
 d_getgrps=''
 d_gethbyaddr=''
 d_gethbyname=''
 d_getgrps=''
 d_gethbyaddr=''
 d_gethbyname=''
@@ -405,14 +442,28 @@ aphostname=''
 d_gethname=''
 d_phostname=''
 d_uname=''
 d_gethname=''
 d_phostname=''
 d_uname=''
+d_gethostbyaddr_r=''
+gethostbyaddr_r_proto=''
+d_gethostbyname_r=''
+gethostbyname_r_proto=''
+d_gethostent_r=''
+gethostent_r_proto=''
 d_gethostprotos=''
 d_getitimer=''
 d_getlogin=''
 d_gethostprotos=''
 d_getitimer=''
 d_getlogin=''
+d_getlogin_r=''
+getlogin_r_proto=''
 d_getmnt=''
 d_getmntent=''
 d_getnbyaddr=''
 d_getnbyname=''
 d_getnent=''
 d_getmnt=''
 d_getmntent=''
 d_getnbyaddr=''
 d_getnbyname=''
 d_getnent=''
+d_getnetbyaddr_r=''
+getnetbyaddr_r_proto=''
+d_getnetbyname_r=''
+getnetbyname_r_proto=''
+d_getnetent_r=''
+getnetent_r_proto=''
 d_getnetprotos=''
 d_getpagsz=''
 d_getpent=''
 d_getnetprotos=''
 d_getpagsz=''
 d_getpent=''
@@ -424,15 +475,38 @@ d_getppid=''
 d_getprior=''
 d_getpbyname=''
 d_getpbynumber=''
 d_getprior=''
 d_getpbyname=''
 d_getpbynumber=''
+d_getprotobyname_r=''
+getprotobyname_r_proto=''
+d_getprotobynumber_r=''
+getprotobynumber_r_proto=''
+d_getprotoent_r=''
+getprotoent_r_proto=''
 d_getprotoprotos=''
 d_getprpwnam=''
 d_getpwent=''
 d_getprotoprotos=''
 d_getprpwnam=''
 d_getpwent=''
+d_getpwent_r=''
+getpwent_r_proto=''
+d_getpwnam_r=''
+getpwnam_r_proto=''
+d_getpwuid_r=''
+getpwuid_r_proto=''
 d_getsent=''
 d_getsent=''
+d_getservbyname_r=''
+getservbyname_r_proto=''
+d_getservbyport_r=''
+getservbyport_r_proto=''
+d_getservent_r=''
+getservent_r_proto=''
 d_getservprotos=''
 d_getspnam=''
 d_getservprotos=''
 d_getspnam=''
+d_getspnam_r=''
+getspnam_r_proto=''
 d_getsbyname=''
 d_getsbyport=''
 d_getsbyname=''
 d_getsbyport=''
+d_gmtime_r=''
+gmtime_r_proto=''
 d_gnulibc=''
 d_gnulibc=''
+gnulibc_version=''
 d_hasmntopt=''
 d_htonl=''
 d_inetaton=''
 d_hasmntopt=''
 d_htonl=''
 d_inetaton=''
@@ -446,6 +520,8 @@ d_killpg=''
 d_lchown=''
 d_ldbl_dig=''
 d_link=''
 d_lchown=''
 d_ldbl_dig=''
 d_link=''
+d_localtime_r=''
+localtime_r_proto=''
 d_locconv=''
 d_lockf=''
 d_longdbl=''
 d_locconv=''
 d_lockf=''
 d_longdbl=''
@@ -473,6 +549,7 @@ d_mmap=''
 mmaptype=''
 d_modfl=''
 d_modfl_pow32_bug=''
 mmaptype=''
 d_modfl=''
 d_modfl_pow32_bug=''
+d_modflproto=''
 d_mprotect=''
 d_msg=''
 d_msgctl=''
 d_mprotect=''
 d_msg=''
 d_msgctl=''
@@ -482,6 +559,7 @@ d_msgrcv=''
 d_msgsnd=''
 d_msync=''
 d_munmap=''
 d_msgsnd=''
 d_msync=''
 d_munmap=''
+d_nanosleep=''
 d_nice=''
 d_nl_langinfo=''
 d_off64_t=''
 d_nice=''
 d_nl_langinfo=''
 d_off64_t=''
@@ -501,10 +579,16 @@ d_pthread_yield=''
 d_sched_yield=''
 sched_yield=''
 d_qgcvt=''
 d_sched_yield=''
 sched_yield=''
 d_qgcvt=''
+d_random_r=''
+random_r_proto=''
+d_readdir64_r=''
+readdir64_r_proto=''
 d_readdir=''
 d_rewinddir=''
 d_seekdir=''
 d_telldir=''
 d_readdir=''
 d_rewinddir=''
 d_seekdir=''
 d_telldir=''
+d_readdir_r=''
+readdir_r_proto=''
 d_readlink=''
 d_readv=''
 d_recvmsg=''
 d_readlink=''
 d_readv=''
 d_recvmsg=''
@@ -523,12 +607,20 @@ d_sendmsg=''
 d_setegid=''
 d_seteuid=''
 d_setgrent=''
 d_setegid=''
 d_seteuid=''
 d_setgrent=''
+d_setgrent_r=''
+setgrent_r_proto=''
 d_setgrps=''
 d_sethent=''
 d_setgrps=''
 d_sethent=''
+d_sethostent_r=''
+sethostent_r_proto=''
 d_setitimer=''
 d_setlinebuf=''
 d_setlocale=''
 d_setitimer=''
 d_setlinebuf=''
 d_setlocale=''
+d_setlocale_r=''
+setlocale_r_proto=''
 d_setnent=''
 d_setnent=''
+d_setnetent_r=''
+setnetent_r_proto=''
 d_setpent=''
 d_setpgid=''
 d_setpgrp2=''
 d_setpent=''
 d_setpgid=''
 d_setpgrp2=''
@@ -536,7 +628,11 @@ d_bsdsetpgrp=''
 d_setpgrp=''
 d_setprior=''
 d_setproctitle=''
 d_setpgrp=''
 d_setprior=''
 d_setproctitle=''
+d_setprotoent_r=''
+setprotoent_r_proto=''
 d_setpwent=''
 d_setpwent=''
+d_setpwent_r=''
+setpwent_r_proto=''
 d_setregid=''
 d_setresgid=''
 d_setresuid=''
 d_setregid=''
 d_setresgid=''
 d_setresuid=''
@@ -544,6 +640,8 @@ d_setreuid=''
 d_setrgid=''
 d_setruid=''
 d_setsent=''
 d_setrgid=''
 d_setruid=''
 d_setsent=''
+d_setservent_r=''
+setservent_r_proto=''
 d_setsid=''
 d_setvbuf=''
 d_sfio=''
 d_setsid=''
 d_setvbuf=''
 d_sfio=''
@@ -574,6 +672,10 @@ socketlib=''
 d_socklen_t=''
 d_socks5_init=''
 d_sqrtl=''
 d_socklen_t=''
 d_socks5_init=''
 d_sqrtl=''
+d_srand48_r=''
+srand48_r_proto=''
+d_srandom_r=''
+srandom_r_proto=''
 d_sresgproto=''
 d_sresuproto=''
 d_statblks=''
 d_sresgproto=''
 d_sresuproto=''
 d_statblks=''
@@ -600,6 +702,8 @@ d_strerrm=''
 d_strerror=''
 d_sysernlst=''
 d_syserrlst=''
 d_strerror=''
 d_sysernlst=''
 d_syserrlst=''
+d_strerror_r=''
+strerror_r_proto=''
 d_strftime=''
 d_strtod=''
 d_strtol=''
 d_strftime=''
 d_strtod=''
 d_strtol=''
@@ -622,7 +726,11 @@ d_time=''
 timetype=''
 clocktype=''
 d_times=''
 timetype=''
 clocktype=''
 d_times=''
+d_tmpnam_r=''
+tmpnam_r_proto=''
 d_truncate=''
 d_truncate=''
+d_ttyname_r=''
+ttyname_r_proto=''
 d_tzname=''
 d_u32align=''
 d_ualarm=''
 d_tzname=''
 d_u32align=''
 d_ualarm=''
@@ -659,6 +767,7 @@ fflushNULL=''
 fflushall=''
 fpossize=''
 fpostype=''
 fflushall=''
 fpossize=''
 fpostype=''
+gccansipedantic=''
 gccosandvers=''
 gccversion=''
 gidformat=''
 gccosandvers=''
 gccversion=''
 gidformat=''
@@ -668,7 +777,14 @@ gidtype=''
 groupstype=''
 h_fcntl=''
 h_sysfile=''
 groupstype=''
 h_fcntl=''
 h_sysfile=''
+html1dir=''
+html1direxp=''
+installhtml1dir=''
+html3dir=''
+html3direxp=''
+installhtml3dir=''
 i_arpainet=''
 i_arpainet=''
+i_crypt=''
 db_hashtype=''
 db_prefixtype=''
 db_version_major=''
 db_hashtype=''
 db_prefixtype=''
 db_version_major=''
@@ -756,6 +872,8 @@ i_syswait=''
 i_sgtty=''
 i_termio=''
 i_termios=''
 i_sgtty=''
 i_termio=''
 i_termios=''
+d_tm_tm_gmtoff=''
+d_tm_tm_zone=''
 i_systime=''
 i_systimek=''
 i_time=''
 i_systime=''
 i_systimek=''
 i_time=''
@@ -866,7 +984,6 @@ perl5=''
 perladmin=''
 perlpath=''
 d_nv_preserves_uv=''
 perladmin=''
 perlpath=''
 d_nv_preserves_uv=''
-d_nv_preserves_uv_bits=''
 i16size=''
 i16type=''
 i32size=''
 i16size=''
 i16type=''
 i32size=''
@@ -877,6 +994,7 @@ i8size=''
 i8type=''
 ivsize=''
 ivtype=''
 i8type=''
 ivsize=''
 ivtype=''
+nv_preserves_uv_bits=''
 nvsize=''
 nvtype=''
 u16size=''
 nvsize=''
 nvtype=''
 u16size=''
@@ -947,12 +1065,27 @@ sitearchexp=''
 installsitebin=''
 sitebin=''
 sitebinexp=''
 installsitebin=''
 sitebin=''
 sitebinexp=''
+installsitehtml1=''
+sitehtml1=''
+sitehtml1exp=''
+installsitehtml3=''
+sitehtml3=''
+sitehtml3exp=''
 installsitelib=''
 sitelib=''
 sitelib_stem=''
 sitelibexp=''
 installsitelib=''
 sitelib=''
 sitelib_stem=''
 sitelibexp=''
+installsiteman1=''
+siteman1=''
+siteman1exp=''
+installsiteman3=''
+siteman3=''
+siteman3exp=''
 siteprefix=''
 siteprefixexp=''
 siteprefix=''
 siteprefixexp=''
+installsitescript=''
+sitescript=''
+sitescriptexp=''
 sizesize=''
 sizetype=''
 so=''
 sizesize=''
 sizetype=''
 so=''
@@ -1005,14 +1138,30 @@ d_vendorbin=''
 installvendorbin=''
 vendorbin=''
 vendorbinexp=''
 installvendorbin=''
 vendorbin=''
 vendorbinexp=''
+installvendorhtml1=''
+vendorhtml1=''
+vendorhtml1exp=''
+installvendorhtml3=''
+vendorhtml3=''
+vendorhtml3exp=''
 d_vendorlib=''
 installvendorlib=''
 vendorlib=''
 vendorlib_stem=''
 vendorlibexp=''
 d_vendorlib=''
 installvendorlib=''
 vendorlib=''
 vendorlib_stem=''
 vendorlibexp=''
+installvendorman1=''
+vendorman1=''
+vendorman1exp=''
+installvendorman3=''
+vendorman3=''
+vendorman3exp=''
 usevendorprefix=''
 vendorprefix=''
 vendorprefixexp=''
 usevendorprefix=''
 vendorprefix=''
 vendorprefixexp=''
+d_vendorscript=''
+installvendorscript=''
+vendorscript=''
+vendorscriptexp=''
 versiononly=''
 defvoidused=''
 voidflags=''
 versiononly=''
 defvoidused=''
 voidflags=''
@@ -1037,31 +1186,21 @@ if test -f /etc/unixtovms.exe; then
 fi
 
 : Set executable suffix now -- needed before hints available
 fi
 
 : Set executable suffix now -- needed before hints available
-: maybe Stratus VOS
-if test -f "/system/gnu_library/bin/ar.pm"; then
+if test -f "/libs/version.library"; then
+: Amiga OS
+    _exe=""
+elif test -f "/system/gnu_library/bin/ar.pm"; then
+: Stratus VOS
     _exe=".pm"
     _exe=".pm"
-fi
-: maybe dos djgpp
-if test -n "$DJGPP"; then
+elif test -n "$DJGPP"; then
+: DOS DJGPP
     _exe=".exe"
     _exe=".exe"
-fi
-: maybe os/2
-if test -d c:/. ; then
+elif test -d c:/. ; then
+: OS/2 or cygwin
     _exe=".exe"
 fi
 
 i_whoami=''
     _exe=".exe"
 fi
 
 i_whoami=''
-ccname=''
-ccversion=''
-perllibs=''
-: set useposix=false in your hint file to disable the POSIX extension.
-useposix=true
-: set useopcode=false in your hint file to disable the Opcode extension.
-useopcode=true
-: Trailing extension.  Override this in a hint file, if needed.
-: Extra object files, if any, needed on this platform.
-archobjs=''
-archname=''
 : Possible local include directories to search.
 : Set locincpth to "" in a hint file to defeat local include searches.
 locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
 : Possible local include directories to search.
 : Set locincpth to "" in a hint file to defeat local include searches.
 locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
@@ -1070,6 +1209,12 @@ locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
 : no include file wanted by default
 inclwanted=''
 
 : no include file wanted by default
 inclwanted=''
 
+siteman1=''
+siteman3=''
+sitescript=''
+: Trailing extension.  Override this in a hint file, if needed.
+: Extra object files, if any, needed on this platform.
+archobjs=''
 groupstype=''
 libnames=''
 : change the next line if compiling for Xenix/286 on Xenix/386
 groupstype=''
 libnames=''
 : change the next line if compiling for Xenix/286 on Xenix/386
@@ -1093,23 +1238,31 @@ plibpth=''
 libswanted=''
 : some systems want to use only the non-versioned libso:s
 ignore_versioned_solibs=''
 libswanted=''
 : some systems want to use only the non-versioned libso:s
 ignore_versioned_solibs=''
+: full support for void wanted by default
+defvoidused=15
+
+ccname=''
+ccversion=''
+perllibs=''
+: set useposix=false in your hint file to disable the POSIX extension.
+useposix=true
+: set useopcode=false in your hint file to disable the Opcode extension.
+useopcode=true
 archname64=''
 ccflags_uselargefiles=''
 ldflags_uselargefiles=''
 libswanted_uselargefiles=''
 : set usemultiplicity on the Configure command line to enable multiplicity.
 : set usesocks on the Configure command line to enable socks.
 archname64=''
 ccflags_uselargefiles=''
 ldflags_uselargefiles=''
 libswanted_uselargefiles=''
 : set usemultiplicity on the Configure command line to enable multiplicity.
 : set usesocks on the Configure command line to enable socks.
+archname=''
 : set usethreads on the Configure command line to enable threads.
 usereentrant='undef'
 : set usethreads on the Configure command line to enable threads.
 usereentrant='undef'
-: full support for void wanted by default
-defvoidused=15
-
 : List of libraries we want.
 : If anyone needs -lnet, put it in a hint file.
 libswanted='sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl'
 libswanted="$libswanted dld ld sun m c cposix posix"
 libswanted="$libswanted ndir dir crypt sec"
 : List of libraries we want.
 : If anyone needs -lnet, put it in a hint file.
 libswanted='sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl'
 libswanted="$libswanted dld ld sun m c cposix posix"
 libswanted="$libswanted ndir dir crypt sec"
-libswanted="$libswanted ucb bsd BSD PW x util"
+libswanted="$libswanted ucb bsd BSD PW x util rt posix4"
 : We probably want to search /usr/shlib before most other libraries.
 : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
 glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
 : We probably want to search /usr/shlib before most other libraries.
 : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
 glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
@@ -1386,23 +1539,23 @@ while test $# -gt 0; do
            zzz=''
            uuu=undef
            case "$yyy" in
            zzz=''
            uuu=undef
            case "$yyy" in
-            *=*) zzz=`echo $yyy|sed 's!=.*!!'`
+            *=*) zzz=`echo "$yyy"|sed 's!=.*!!'`
                  case "$zzz" in
                  *:*) zzz='' ;;
                  *)   xxx=append
                  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
                  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
                  esac
                  ;;       
             esac
@@ -1706,7 +1859,7 @@ rm -f .echotmp
 echo " "
 if test -f "$rsrc/MANIFEST"; then
        echo "First let's make sure your kit is complete.  Checking..." >&4
 echo " "
 if test -f "$rsrc/MANIFEST"; then
        echo "First let's make sure your kit is complete.  Checking..." >&4
-       awk '$1 !~ /PACK[A-Z]+/ {print $1}' "$rsrc/MANIFEST" | split -l 50
+       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
        rm -f missing
        tmppwd=`pwd`
        for filelist in x??; do
@@ -1760,6 +1913,11 @@ if test X"$trnl" = X; then
        esac
 fi
 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 <<EOM >&2
 
 $me: Fatal Error: cannot figure out how to translate newlines with 'tr'.
        cat <<EOM >&2
 
 $me: Fatal Error: cannot figure out how to translate newlines with 'tr'.
@@ -2048,9 +2206,10 @@ for dir in \$*; do
        elif test -f \$dir/\$thing.exe; then
                if test -n "$DJGPP"; then
                        echo \$dir/\$thing.exe
        elif test -f \$dir/\$thing.exe; then
                if test -n "$DJGPP"; then
                        echo \$dir/\$thing.exe
-               else
+               elif test "$eunicefix" != ":"; then
                        : on Eunice apparently
                        echo \$dir/\$thing
                        : on Eunice apparently
                        echo \$dir/\$thing
+                       exit 0
                fi
                exit 0
        fi
                fi
                exit 0
        fi
@@ -2287,7 +2446,16 @@ EOM
                     fi
                 fi  
                 case "$ans" in
                     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 <<EOM 
+
+*** However, any setting of the C compiler flags (e.g. for thread support)
+*** has been lost.  It may be necessary to pass -Dcc=gcc to Configure
+*** (together with e.g. -Dusethreads).
+
+EOM
+                       fi;;
                 esac
             fi
         fi
                 esac
             fi
         fi
@@ -2966,6 +3134,9 @@ EOM
                        ;;
                next*) osname=next ;;
                nonstop-ux) osname=nonstopux ;;
                        ;;
                next*) osname=next ;;
                nonstop-ux) osname=nonstopux ;;
+               openbsd) osname=openbsd
+                       osvers="$3"
+                       ;;
                POSIX-BC | posix-bc ) osname=posix-bc
                        osvers="$3"
                        ;;
                POSIX-BC | posix-bc ) osname=posix-bc
                        osvers="$3"
                        ;;
@@ -3004,7 +3175,7 @@ EOM
                osf1|mls+)      case "$5" in
                                alpha)
                                        osname=dec_osf
                osf1|mls+)      case "$5" in
                                alpha)
                                        osname=dec_osf
-                                       osvers=`sizer -v | awk '{print $3}' |  tr '[A-Z]' '[a-z]' | sed 's/^[xvt]//'`
+                                       osvers=`sizer -v | awk -FUNIX '{print $2}' | awk '{print $1}' |  tr '[A-Z]' '[a-z]' | sed 's/^[xvt]//'`
                                        case "$osvers" in
                                        [1-9].[0-9]*) ;;
                                        *) osvers=`echo "$3" | sed 's/^[xvt]//'` ;;
                                        case "$osvers" in
                                        [1-9].[0-9]*) ;;
                                        *) osvers=`echo "$3" | sed 's/^[xvt]//'` ;;
@@ -3310,20 +3481,100 @@ $undef$define) . ./whoa; eval "$var=\$tu";;
 *) eval "$var=$val";;
 esac'
 
 *) eval "$var=$val";;
 esac'
 
+case "$usesocks" in
+$define|true|[yY]*)    dflt='y';;
+*) dflt='n';;
+esac
+cat <<EOM
+
+Perl can be built to use the SOCKS proxy protocol library.  To do so,
+Configure must be run with -Dusesocks.  If you use SOCKS you also need
+to use the PerlIO abstraction layer, this will be implicitly selected.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+rp='Build Perl for SOCKS?'
+. ./myread
+case "$ans" in
+y|Y)   val="$define" ;;     
+*)      val="$undef" ;;
+esac
+set usesocks
+eval $setvar
+
+case "$usesocks" in
+$define|true|[yY]*) useperlio="$define";;
+esac
+
+case "$useperlio" in
+$define|true|[yY]*|'') dflt='y';;
+*) dflt='n';;
+esac
+cat <<EOM
+
+Previous version of $package used the standard IO mechanisms as
+defined in <stdio.h>.  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 <<EOM
+
+You are using the SOCKS proxy protocol library which means that you
+should also use the PerlIO layer.  You may be headed for trouble.
+
+EOM
+               ;;
+       esac
+       ;;
+esac
+
+       
 case "$usethreads" in
 $define|true|[yY]*)     dflt='y';;
 case "$usethreads" in
 $define|true|[yY]*)     dflt='y';;
-*) dflt='n';;
+*)     # Catch case where user specified ithreads or 5005threads but
+       # forgot -Dusethreads (A.D. 4/2002)
+       case "$useithreads$use5005threads" in
+       *$define*)      
+               case "$useperlio" in
+               "$define")      dflt='y' ;;
+               *)              dflt='n' ;;
+               esac
+               ;;
+       *)      dflt='n';;
+       esac
+       ;;
 esac
 cat <<EOM
 
 Perl can be built to take advantage of threads on some systems.
 To do so, Configure can be run with -Dusethreads.
 
 esac
 cat <<EOM
 
 Perl can be built to take advantage of threads on some systems.
 To do so, Configure can be run with -Dusethreads.
 
-Note that threading is a highly experimental feature, and
-some known race conditions still remain.  If you choose to try
-it, be very sure to not actually deploy it for production
-purposes.  README.threads has more details, and is required
-reading if you enable threads.
+Note that Perl built with threading support runs slightly slower
+and uses more memory than plain Perl. The current implementation
+is believed to be stable, but it is fairly new, and so should be
+treated with caution.
 
 If this doesn't make any sense to you, just accept the default '$dflt'.
 EOM
 
 If this doesn't make any sense to you, just accept the default '$dflt'.
 EOM
@@ -3340,16 +3591,14 @@ case "$usethreads" in
 $define)
        $cat <<EOM
 
 $define)
        $cat <<EOM
 
-As of 5.5.640, Perl has two different internal threading implementations,
-the 5.005 version (5005threads) and an interpreter-based version
-(ithreads) that has one interpreter per thread.  Both are very 
-experimental.  This arrangement exists to help developers work out
-which one is better.
+Since release 5.6, Perl has had two different threading implementations,
+the newer interpreter-based version (ithreads) with one interpreter per
+thread, and the older 5.005 version (5005threads).
+The 5005threads version is effectively unmaintained and will probably be
+removed in Perl 5.10, so there should be no need to build a Perl using it
+unless needed for backwards compatibility with some existing 5.005threads
+code.
 
 
-If you're a casual user, you probably don't want interpreter-threads
-at this time.  But if you do, the 'threads' module allows their use,
-and the 'Thread' module offers an interface to both 5005threads and
-ithreads (whichever has been configured).
 EOM
        : Default to ithreads unless overridden on command line or with
        : old config.sh
 EOM
        : Default to ithreads unless overridden on command line or with
        : old config.sh
@@ -3360,7 +3609,7 @@ EOM
        case "$useithreads" in
                $undef|false|[nN]*) dflt='n';;
        esac
        case "$useithreads" in
                $undef|false|[nN]*) dflt='n';;
        esac
-       rp='Use interpreter-based ithreads?'
+       rp='Use the newer interpreter-based ithreads?'
        . ./myread
        case "$ans" in
        y|Y)    val="$define" ;;
        . ./myread
        case "$ans" in
        y|Y)    val="$define" ;;
@@ -3395,6 +3644,16 @@ EOM
        ;;
 esac
 
        ;;
 esac
 
+if test X"$usethreads" = "X$define" -a "X$useperlio" = "Xundef"; then
+       cat >&4 <<EOF
+***
+*** To build with ithreads you must also use the PerlIO layer.
+*** Cannot continue, aborting.
+***
+EOF
+       exit 1
+fi
+
 case "$d_oldpthreads" in
 '')    : Configure tests would be welcome here.  For now, assume undef.
        val="$undef" ;;
 case "$d_oldpthreads" in
 '')    : Configure tests would be welcome here.  For now, assume undef.
        val="$undef" ;;
@@ -3595,7 +3854,7 @@ if $cc -o try $ccflags $ldflags try.c; then
        case "$gccversion" in
        '') echo "You are not using GNU cc." ;;
        *)  echo "You are using GNU cc $gccversion."
        case "$gccversion" in
        '') echo "You are not using GNU cc." ;;
        *)  echo "You are using GNU cc $gccversion."
-           ccname=gcc  
+           ccname=gcc
            ;;
        esac
 else
            ;;
        esac
 else
@@ -3648,6 +3907,20 @@ case "$ccname" in
 '') ccname="$cc" ;;
 esac
 
 '') ccname="$cc" ;;
 esac
 
+# gcc 3.* complain about adding -Idirectories that they already know about,
+# so we will take those off from locincpth.
+case "$gccversion" in
+3*)
+    echo "main(){}">try.c
+    for incdir in $locincpth; do
+       warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \
+            grep '^c[cp]p*[01]: warning: changing search order '`
+       if test "X$warn" != X; then
+          locincpth=`echo " $locincpth " | sed "s! $incdir ! !"`
+       fi
+    done
+    $rm -f try try.*
+esac
 
 : decide how portable to be.  Allow command line overrides.
 case "$d_portable" in
 
 : decide how portable to be.  Allow command line overrides.
 case "$d_portable" in
@@ -3715,7 +3988,9 @@ esac
 
 case "$fn" in
 *\(*)
 
 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
        fn=`echo $fn | sed 's/(.*)//'`
        ;;
 esac
@@ -4233,31 +4508,6 @@ case "$firstmakefile" in
 '') firstmakefile='makefile';;
 esac
 
 '') firstmakefile='makefile';;
 esac
 
-case "$usesocks" in
-$define|true|[yY]*)    dflt='y';;
-*) dflt='n';;
-esac
-cat <<EOM
-
-Perl can be built to use the SOCKS proxy protocol library.  To do so,
-Configure must be run with -Dusesocks.  If you use SOCKS you also need
-to use the PerlIO abstraction layer, this will be implicitly selected.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-rp='Build Perl for SOCKS?'
-. ./myread
-case "$ans" in
-y|Y)   val="$define" ;;     
-*)      val="$undef" ;;
-esac
-set usesocks
-eval $setvar
-
-case "$usesocks" in
-$define|true|[yY]*) useperlio="$define";;
-esac
-
 : Looking for optional libraries
 echo " "
 echo "Checking for optional libraries..." >&4
 : Looking for optional libraries
 echo " "
 echo "Checking for optional libraries..." >&4
@@ -4735,164 +4985,39 @@ EOM
 esac
 $rm -f try try.*
 
 esac
 $rm -f try try.*
 
-: check for void type
+: check for long long
 echo " "
 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 <stdio.h>
+int main()
+{
+    printf("%d\n", (int)sizeof(long long));
+    return(0);
 }
 }
-int main() { sub(); }
 EOCP
 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 <stdio.h>
-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 <stdio.h>
-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."
+       set try
+       if eval $compile_ok; then
+               longlongsize=`$run ./try`
+               echo "Your long longs are $longlongsize bytes long."
        else
                dflt='8'
                echo " "
        else
                dflt='8'
                echo " "
@@ -5259,31 +5384,6 @@ EOM
        ;;
 esac
 
        ;;
 esac
 
-case "$use64bitall" in
-"$define"|true|[yY]*)
-       case "$ptrsize" in
-       4)      cat <<EOM >&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 <<EOM >&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
 case "$use64bitint" in
 "$define"|true|[yY]*)
 : Look for a hint-file generated 'call-back-unit'.  If the
@@ -5322,26 +5422,43 @@ esac
 
 echo " "
 echo "Checking for GNU C Library..." >&4
 
 echo " "
 echo "Checking for GNU C Library..." >&4
-cat >try.c <<EOM
+cat >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 <stdio.h>
 #include <stdio.h>
-int main()
+int main(void)
 {
 #ifdef __GLIBC__
 {
 #ifdef __GLIBC__
-    exit(0);
+#   ifdef __GLIBC_MINOR__
+#       if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
+#           include <gnu/libc-version.h>
+           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
 #else
-    exit(1);
+    return 1;
 #endif
 }
 #endif
 }
-EOM
+EOCP
 set try
 set try
-if eval $compile_ok && $run ./try; then
+if eval $compile_ok && $run ./try > glibc.ver; then
        val="$define"
        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"
 else
        val="$undef"
+       gnulibc_version=''
        echo "You are not using the GNU C Library"
 fi
        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
 
 set d_gnulibc
 eval $setvar
 
@@ -5358,7 +5475,7 @@ case "$usenm" in
        esac
        case "$dflt" 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
                        echo " "
                        echo "Whoops!  This is an AIX system without /lib/syscalls.exp!" >&4
                        echo "'nm' won't be sufficient on this sytem." >&4
@@ -5594,7 +5711,7 @@ done >libc.tmp
 $echo $n ".$c"
 $grep fprintf libc.tmp > libc.ptf
 xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
 $echo $n ".$c"
 $grep fprintf libc.tmp > libc.ptf
 xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
-xrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
+xrun='eval "<libc.tmp $com >libc.list"; echo "done." >&4'
 xxx='[ADTSIW]'
 if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx  *_[_.]*//p' -e 's/^.* $xxx  *//p'";\
        eval $xscan;\
 xxx='[ADTSIW]'
 if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx  *_[_.]*//p' -e 's/^.* $xxx  *//p'";\
        eval $xscan;\
@@ -5705,11 +5822,19 @@ else
        fi
 fi
 nm_extract="$com"
        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
+    dump -Tv /lib/libc.a | awk '$7 == "/unix" {print $5 " " $8}' | grep "^SV" | awk '{print $2}' >> 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
        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
 ;;
 esac
 $rm -f libnames libpath
@@ -5781,6 +5906,25 @@ esac'
 set sqrtl d_sqrtl
 eval $inlibc
 
 set sqrtl d_sqrtl
 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'
+
 : check for length of double
 echo " "
 case "$doublesize" in
 : check for length of double
 echo " "
 case "$doublesize" in
@@ -5976,6 +6120,11 @@ esac
 set modfl d_modfl
 eval $inlibc
 
 set modfl d_modfl
 eval $inlibc
 
+: 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
 d_modfl_pow32_bug="$undef"
 
 case "$d_longdbl$d_modfl" in
@@ -5986,6 +6135,14 @@ EOM
 $cat >try.c <<EOCP
 #include <math.h> 
 #include <stdio.h>
 $cat >try.c <<EOCP
 #include <math.h> 
 #include <stdio.h>
+EOCP
+if $test "X$d_modflproto" != "X$define"; then
+       $cat >>try.c <<EOCP
+/* Sigh. many current glibcs provide the function, but do not prototype it.  */ 
+long double modfl (long double, long double *);
+EOCP
+fi
+$cat >>try.c <<EOCP
 int main() {
     long double nv = 4294967303.15;
     long double v, w;
 int main() {
     long double nv = 4294967303.15;
     long double v, w;
@@ -6104,51 +6261,6 @@ EOM
        uselongdouble=$undef
 fi
 
        uselongdouble=$undef
 fi
 
-case "$useperlio" in
-$define|true|[yY]*|'') dflt='y';;
-*) dflt='n';;
-esac
-cat <<EOM
-
-Previous version of $package used the standard IO mechanisms as
-defined in <stdio.h>.  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 <<EOM
-
-You are using the SOCKS proxy protocol library which means that you
-should also use the PerlIO layer.  You may be headed for trouble.
-
-EOM
-               ;;
-       esac
-       ;;
-esac
-
-       
 : determine the architecture name
 echo " "
 if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
 : determine the architecture name
 echo " "
 if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
@@ -6270,6 +6382,9 @@ case "$prefix" in
 '')
        dflt=`./loc . /usr/local /usr/local /local /opt /usr`
        ;;
 '')
        dflt=`./loc . /usr/local /usr/local /local /opt /usr`
        ;;
+*?/)
+       dflt=`echo "$prefix" | sed 's/.$//'`
+       ;;
 *)
        dflt="$prefix"
        ;;
 *)
        dflt="$prefix"
        ;;
@@ -6341,9 +6456,9 @@ else
 $cat <<EOM
 
 In some special cases, particularly when building $package for distribution,
 $cat <<EOM
 
 In some special cases, particularly when building $package for distribution,
-it is convenient to distinguish between the directory in which files should 
-be installed from the directory ($prefix) in which they 
-will eventually reside.  For most users, these two directories are the same.
+it is convenient to distinguish the directory in which files should be
+installed from the directory ($prefix) in which they will
+eventually reside.  For most users, these two directories are the same.
 
 EOM
        case "$installprefix" in
 
 EOM
        case "$installprefix" in
@@ -6528,45 +6643,6 @@ else
        installarchlib="$archlibexp"
 fi
 
        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 <<EOM
-
-This version of Perl can be compiled for binary compatibility with 5.005.
-If you decide to do so, you will be able to continue using most of the
-extensions that were compiled for Perl 5.005.
-
-EOM
-       case "$bincompat5005$d_bincompat5005" in
-       *"$undef"*) dflt=n ;;
-       *) dflt=y ;;
-       esac
-       rp='Binary compatibility with Perl 5.005?'
-       . ./myread
-       case "$ans" in
-       y*) val="$define" ;;
-       *)  val="$undef" ;;
-       esac
-       set d_bincompat5005
-       eval $setvar
-       case "$d_bincompat5005" in
-       "$define")
-               bincompat5005="$define"
-               ;;
-       *)      bincompat5005="$undef"
-               d_bincompat5005="$undef"
-               ;;
-       esac
-       ;;
-esac
-
-
 : see if setuid scripts can be secure
 $cat <<EOM
 
 : see if setuid scripts can be secure
 $cat <<EOM
 
@@ -6678,35 +6754,202 @@ set d_dosuid
 eval $setvar
 
 : see if this is a malloc.h system
 eval $setvar
 
 : see if this is a malloc.h system
-set malloc.h i_malloc
-eval $inhdr
+: we want a real compile instead of Inhdr because some systems have a
+: malloc.h that just gives a compile error saying to use stdlib.h instead
+echo " "
+$cat >try.c <<EOCP
+#include <stdlib.h>
+#include <malloc.h>
+int main () { return 0; }
+EOCP
+set try
+if eval $compile; then
+    echo "<malloc.h> found." >&4
+    val="$define"
+else
+    echo "<malloc.h> NOT found." >&4
+    val="$undef"
+fi
+$rm -f try.c try
+set i_malloc
+eval $setvar
 
 : see if stdlib is available
 set stdlib.h i_stdlib
 eval $inhdr
 
 
 : see if stdlib is available
 set stdlib.h i_stdlib
 eval $inhdr
 
-: determine which malloc to compile in
+: check for void type
 echo " "
 echo " "
-case "$usemymalloc" in
-[yY]*|true|$define)    dflt='y' ;;
-[nN]*|false|$undef)    dflt='n' ;;
-*)     case "$ptrsize" in
-       4) dflt='y' ;;
-       *) dflt='n' ;;
-       esac
-       ;;
-esac
-rp="Do you wish to attempt to use the malloc that comes with $package?"
-. ./myread
-usemymalloc="$ans"
-case "$ans" in
-y*|true)
-       usemymalloc='y'
-       mallocsrc='malloc.c'
-       mallocobj="malloc$_o"
-       d_mymalloc="$define"
-       case "$libs" in
-       *-lmalloc*)
+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 <stdio.h>
+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 <<EOM >&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 <<EOM >&4
+
+*** Downgrading from maximal 64-bitness to using 64-bit integers.
+
+EOM
+                       use64bitint="$define"
+                       ;;
+               esac
+               ;;
+       esac
+       ;;
+esac
+
+
+: determine which malloc to compile in
+echo " "
+case "$usemymalloc" in
+[yY]*|true|$define)    dflt='y' ;;
+[nN]*|false|$undef)    dflt='n' ;;
+*)     case "$ptrsize" in
+       4) dflt='y' ;;
+       *) dflt='n' ;;
+       esac
+       ;;
+esac
+rp="Do you wish to attempt to use the malloc that comes with $package?"
+. ./myread
+usemymalloc="$ans"
+case "$ans" in
+y*|true)
+       usemymalloc='y'
+       mallocsrc='malloc.c'
+       mallocobj="malloc$_o"
+       d_mymalloc="$define"
+       case "$libs" in
+       *-lmalloc*)
                : Remove malloc from list of libraries to use
                echo "Removing unneeded -lmalloc from library list" >&4
                set `echo X $libs | $sed -e 's/-lmalloc / /' -e 's/-lmalloc$//'`
                : Remove malloc from list of libraries to use
                echo "Removing unneeded -lmalloc from library list" >&4
                set `echo X $libs | $sed -e 's/-lmalloc / /' -e 's/-lmalloc$//'`
@@ -7136,6 +7379,62 @@ set extras
 eval $setvar
 echo " "
 
 eval $setvar
 echo " "
 
+: determine where html pages for programs go
+set html1dir html1dir none
+eval $prefixit
+$cat <<EOM
+
+If you wish to install html files for programs in $spackage, indicate 
+the appropriate directory here.  To skip installing html files,
+answer "none".
+EOM
+case "$html1dir" in
+''|none|$undef|' ') dflt=none ;;
+*) dflt=$html1dir ;;
+esac
+fn=dn+~
+rp="Directory for the main $spackage html pages?"
+. ./getfile
+html1dir="$ans"
+html1direxp="$ansexp"
+: Use ' ' for none so value is preserved next time through Configure
+$test X"$html1dir" = "X" && html1dir=' '
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installhtml1dir=`echo $html1direxp | sed "s#^$prefix#$installprefix#"`
+else
+       installhtml1dir="$html1direxp"
+fi
+
+: determine where html pages for libraries and modules go
+set html3dir html3dir none
+eval $prefixit
+$cat <<EOM
+
+If you wish to install html files for modules associated with $spackage,
+indicate the appropriate directory here.  To skip installing html files,
+answer "none".
+EOM
+: There is no obvious default.  If they have specified html1dir, then
+: try to key off that, possibly changing .../html1 into .../html3.
+case "$html3dir" in
+'') html3dir=`echo "$html1dir" | $sed 's/1$/3$/'` ;;
+*) dflt=$html3dir ;;
+esac
+fn=dn+~
+rp="Directory for the $spackage module html pages?"
+. ./getfile
+html3dir="$ans"
+html3direxp="$ansexp"
+: Use ' ' for none so value is preserved next time through Configure
+$test X"$html3dir" = "X" && html3dir=' '
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installhtml3dir=`echo $html3direxp | sed "s#^$prefix#$installprefix#"`
+else
+       installhtml3dir="$html3direxp"
+fi
+
 : Find perl5.005 or later.
 echo "Looking for a previously installed perl5.005 or later... "
 case "$perl5" in
 : Find perl5.005 or later.
 echo "Looking for a previously installed perl5.005 or later... "
 case "$perl5" in
@@ -7223,13 +7522,9 @@ case "$dflt" in
 ''|' ') dflt=none ;;
 esac
 case "$dflt" in
 ''|' ') dflt=none ;;
 esac
 case "$dflt" in
-5.005) case "$bincompat5005" in
-       $define|true|[yY]*) ;;
-       *) dflt=none ;;
-       esac
-       ;;
+5.005) dflt=none ;;
 esac
 esac
-$cat <<'EOM'
+$cat <<EOM
 
 In order to ease the process of upgrading, this version of perl 
 can be configured to use modules built and installed with earlier 
 
 In order to ease the process of upgrading, this version of perl 
 can be configured to use modules built and installed with earlier 
@@ -7264,13 +7559,33 @@ echo " "
 if $test -d /usr/bin -a "X$installbin" != X/usr/bin; then
        $cat <<EOM
 Many scripts expect perl to be installed as /usr/bin/perl.
 if $test -d /usr/bin -a "X$installbin" != X/usr/bin; then
        $cat <<EOM
 Many scripts expect perl to be installed as /usr/bin/perl.
-I can install the perl you are about to compile also as /usr/bin/perl
-(in addition to $installbin/perl).
+
+If you want to, I can install the perl you are about to compile
+as /usr/bin/perl (in addition to $bin/perl).
 EOM
 EOM
-       case "$installusrbinperl" in
-       "$undef"|[nN]*) dflt='n';;
-       *)              dflt='y';;
-       esac
+       if test -f /usr/bin/perl; then
+           $cat <<EOM
+
+However, please note that because you already have a /usr/bin/perl,
+overwriting that with a new Perl would very probably cause problems.
+Therefore I'm assuming you don't want to do that (unless you insist).
+
+EOM
+           case "$installusrbinperl" in
+           "$define"|[yY]*)    dflt='y';;
+           *)                  dflt='n';;
+           esac
+       else
+           $cat <<EOM
+
+Since you don't have a /usr/bin/perl I'm assuming creating one is okay.
+
+EOM
+           case "$installusrbinperl" in
+           "$undef"|[nN]*)     dflt='n';;
+           *)                  dflt='y';;
+           esac
+       fi
        rp="Do you want to install perl as /usr/bin/perl?"
        . ./myread
        case "$ans" in
        rp="Do you want to install perl as /usr/bin/perl?"
        . ./myread
        case "$ans" in
@@ -7671,7 +7986,7 @@ if "$useshrplib"; then
        solaris)
                xxx="-R $shrpdir"
                ;;
        solaris)
                xxx="-R $shrpdir"
                ;;
-       freebsd|netbsd)
+       freebsd|netbsd|openbsd)
                xxx="-Wl,-R$shrpdir"
                ;;
        bsdos|linux|irix*|dec_osf)
                xxx="-Wl,-R$shrpdir"
                ;;
        bsdos|linux|irix*|dec_osf)
@@ -8282,6 +8597,12 @@ esac
 set versiononly
 eval $setvar
 
 set versiononly
 eval $setvar
 
+case "$versiononly" in
+"$define") inc_version_list=''
+           inc_version_list_init=0
+           ;;
+esac
+
 : figure out how to guarantee perl startup
 case "$startperl" in
 '')
 : figure out how to guarantee perl startup
 case "$startperl" in
 '')
@@ -8412,38 +8733,148 @@ else
        installsitebin="$sitebinexp"
 fi
 
        installsitebin="$sitebinexp"
 fi
 
-: 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'
+: determine where add-on html pages go
+: There is no standard location, so try to copy the previously-selected 
+: directory structure for the core html pages.
+case "$sitehtml1" in
+'')    dflt=`echo "$html1dir" | $sed "s#^$prefix#$siteprefix#"` ;;
+*)     dflt=$sitehtml1 ;;
+esac
+case "$dflt" in
+''|' ') dflt=none ;;
+esac
+fn=dn+~
+rp='Pathname where the site-specific html pages should be installed?'
+. ./getfile
+sitehtml1="$ans"
+sitehtml1exp="$ansexp"
+: Use ' ' for none so value is preserved next time through Configure
+$test X"$sitehtml1" = "X" && sitehtml1=' '
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installsitehtml1=`echo "$sitehtml1exp" | $sed "s#^$prefix#$installprefix#"`
+else
+       installsitehtml1="$sitehtml1exp"
+fi
 
 
-: 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
+: determine where add-on library html pages go
+: There is no standard location, so try to copy the previously-selected
+: directory structure for the core html pages.
+case "$sitehtml3" in
+'')    dflt=`echo "$html3dir" | $sed "s#^$prefix#$siteprefix#"` ;;
+*)     dflt=$sitehtml3 ;;
+esac
+case "$dflt" in
+''|' ') dflt=none ;;
+esac
+fn=dn+~
+rp='Pathname where the site-specific library html pages should be installed?'
+. ./getfile
+sitehtml3="$ans"
+sitehtml3exp="$ansexp"
+: Use ' ' for none so value is preserved next time through Configure
+$test X"$sitehtml3" = "X" && sitehtml3=' '
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installsitehtml3=`echo "$sitehtml3exp" | $sed "s#^$prefix#$installprefix#"`
+else
+       installsitehtml3="$sitehtml3exp"
+fi
+
+: determine where add-on manual pages go
+case "$siteman1" in
+'')    dflt=`echo "$man1dir" | $sed "s#^$prefix#$siteprefix#"` ;;
+*)     dflt=$siteman1 ;;
+esac
+case "$dflt" in
+''|' ') dflt=none ;;
+esac
+fn=dn+~
+rp='Pathname where the site-specific manual pages should be installed?'
+. ./getfile
+siteman1="$ans"
+siteman1exp="$ansexp"
+: Use ' ' for none so value is preserved next time through Configure
+$test X"$siteman1" = "X" && siteman1=' '
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installsiteman1=`echo "$siteman1exp" | $sed "s#^$prefix#$installprefix#"`
+else
+       installsiteman1="$siteman1exp"
+fi
+
+: determine where add-on library man pages go
+case "$siteman3" in
+'')    dflt=`echo "$man3dir" | $sed "s#^$prefix#$siteprefix#"` ;;
+*)     dflt=$siteman3 ;;
+esac
+case "$dflt" in
+''|' ') dflt=none ;;
+esac
+fn=dn+~
+rp='Pathname where the site-specific library manual pages should be installed?'
+. ./getfile
+siteman3="$ans"
+siteman3exp="$ansexp"
+: Use ' ' for none so value is preserved next time through Configure
+$test X"$siteman3" = "X" && siteman3=' '
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installsiteman3=`echo "$siteman3exp" | $sed "s#^$prefix#$installprefix#"`
+else
+       installsiteman3="$siteman3exp"
+fi
+
+: determine where add-on public executable scripts go
+case "$sitescript" in
+'')    dflt=$siteprefix/script
+       $test -d $dflt || dflt=$sitebin ;;
+*)  dflt="$sitescript" ;;
+esac
+fn=d~+
+rp='Pathname where add-on public executable scripts should be installed?'
+. ./getfile
+sitescript="$ans"
+sitescriptexp="$ansexp"
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installsitescript=`echo $sitescriptexp | sed "s#^$prefix#$installprefix#"`
+else
+       installsitescript="$sitescriptexp"
+fi
+
+: 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
 "")
        $rm -f temp.c;
        for inc in $inclist; do
@@ -8671,6 +9102,156 @@ else
        installvendorbin="$vendorbinexp"
 fi
 
        installvendorbin="$vendorbinexp"
 fi
 
+case "$vendorprefix" in
+'')    vendorhtml1=''
+       vendorhtml1exp=''
+       ;;
+*)     : determine where vendor-supplied html pages go.
+       : There is no standard location, so try to copy the previously-selected
+       : directory structure for the core html pages.
+       : XXX Better default suggestions would be welcome.
+       case "$vendorhtml1" in
+       '')     dflt=`echo "$html1dir" | $sed "s#^$prefix#$vendorprefix#"` ;;
+       *)      dflt=$vendorhtml1 ;;
+       esac
+       case "$dflt" in
+       ''|' ') dflt=none ;;
+       esac
+       fn=dn+~
+       rp='Pathname for the vendor-supplied html pages?'
+       . ./getfile
+       vendorhtml1="$ans"
+       vendorhtml1exp="$ansexp"
+       ;;
+esac
+: Use ' ' for none so value is preserved next time through Configure
+$test X"$vendorhtml1" = "X" && vendorhtml1=' '
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installvendorhtml1=`echo $vendorhtml1exp | $sed "s#^$prefix#$installprefix#"`
+else
+       installvendorhtml1="$vendorhtml1exp"
+fi
+
+case "$vendorprefix" in
+'')    vendorhtml3=''
+       vendorhtml3exp=''
+       ;;
+*)     : determine where vendor-supplied module html pages go.
+       : There is no standard location, so try to copy the previously-selected
+       : directory structure for the core html pages.
+       : XXX Better default suggestions would be welcome.
+       case "$vendorhtml3" in
+       '')     dflt=`echo "$html3dir" | $sed "s#^$prefix#$vendorprefix#"` ;;
+       *)      dflt=$vendorhtml3 ;;
+       esac
+       case "$dflt" in
+       ''|' ') dflt=none ;;
+       esac
+       fn=dn+~
+       rp='Pathname for the vendor-supplied html pages?'
+       . ./getfile
+       vendorhtml3="$ans"
+       vendorhtml3exp="$ansexp"
+       ;;
+esac
+: Use ' ' for none so value is preserved next time through Configure
+$test X"$vendorhtml3" = "X" && vendorhtml3=' '
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installvendorhtml3=`echo $vendorhtml3exp | $sed "s#^$prefix#$installprefix#"`
+else
+       installvendorhtml3="$vendorhtml3exp"
+fi
+
+case "$vendorprefix" in
+'')    vendorman1=''
+       vendorman1exp=''
+       ;;
+*)     : determine where vendor-supplied manual pages go.
+       case "$vendorman1" in
+       '') dflt=`echo "$man1dir" | $sed "s#^$prefix#$vendorprefix#"` ;;
+       *)      dflt=$vendorman1 ;;
+       esac
+       case "$dflt" in
+       ''|' ') dflt=none ;;
+       esac
+       fn=nd~+
+       rp='Pathname for the vendor-supplied manual section 1 pages?'
+       . ./getfile
+       vendorman1="$ans"
+       vendorman1exp="$ansexp"
+       ;;
+esac
+: Use ' ' for none so value is preserved next time through Configure
+$test X"$vendorman1" = "X" && vendorman1=' '
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installvendorman1=`echo "$vendorman1exp" | $sed "s#^$prefix#$installprefix#"`
+else
+       installvendorman1="$vendorman1exp"
+fi
+
+case "$vendorprefix" in
+'')    vendorman3=''
+       vendorman3exp=''
+       ;;
+*)     : determine where vendor-supplied module manual pages go.
+       case "$vendorman3" in
+       '') dflt=`echo "$man3dir" | $sed "s#^$prefix#$vendorprefix#"` ;;
+       *)      dflt=$vendorman3 ;;
+       esac
+       case "$dflt" in
+       ''|' ') dflt=none ;;
+       esac
+       fn=nd~+
+       rp='Pathname for the vendor-supplied manual section 3 pages?'
+       . ./getfile
+       vendorman3="$ans"
+       vendorman3exp="$ansexp"
+       ;;
+esac
+: Use ' ' for none so value is preserved next time through Configure
+$test X"$vendorman3" = "X" && vendorman3=' '
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installvendorman3=`echo "$vendorman3exp" | $sed "s#^$prefix#$installprefix#"`
+else
+       installvendorman3="$vendorman3exp"
+fi
+
+case "$vendorprefix" in
+'')    d_vendorscript="$undef"
+       vendorscript=''
+       vendorscriptexp=''
+       ;;
+*)     d_vendorscript="$define"
+       : determine where vendor-supplied scripts go.
+       case "$vendorscript" in
+       '')     dflt=$vendorprefix/script
+               $test -d $dflt || dflt=$vendorbin ;;
+       *)  dflt="$vendorscript" ;;
+       esac
+       $cat <<EOM
+
+The installation process will create a directory for 
+vendor-supplied scripts.
+
+EOM
+       fn=d~+
+       rp='Pathname for the vendor-supplied scripts directory?'
+       . ./getfile
+       vendorscript="$ans"
+       vendorscriptexp="$ansexp"
+       ;;
+esac
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installvendorscript=`echo $vendorscriptexp | $sed "s#^$prefix#$installprefix#"`
+else
+       installvendorscript="$vendorscriptexp"
+fi
+
 : see if qgcvt exists
 set qgcvt d_qgcvt
 eval $inlibc
 : see if qgcvt exists
 set qgcvt d_qgcvt
 eval $inlibc
@@ -8809,11 +9390,17 @@ int main()
        checkit("123.456", buf);
 
        /* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */
        checkit("123.456", buf);
 
        /* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */
-       Gconvert((DOUBLETYPE)1e30, 8, 0, buf);
+       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)
        if (strlen(buf) > 5)
-           checkit("1e+030", buf); /* for Microsoft */
+           checkit("1e+034", buf); /* for Microsoft */
        else
        else
-           checkit("1e+30", buf);
+           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);
 }
 
        exit(0);
 }
@@ -8964,62 +9551,315 @@ eval $inlibc
 set alarm d_alarm
 eval $inlibc
 
 set alarm d_alarm
 eval $inlibc
 
-: see if atolf exists
-set atolf d_atolf
-eval $inlibc
+: see if POSIX threads are available
+set pthread.h i_pthread
+eval $inhdr
 
 
-: see if atoll exists
-set atoll d_atoll
-eval $inlibc
+: define a fucntion to check prototypes
+$cat > protochk <<EOSH
+$startsh
+cc="$cc"
+optimize="$optimize"
+ccflags="$ccflags"
+prototype="$prototype"
+define="$define"
+rm=$rm
+usethreads=$usethreads
+i_pthread=$i_pthread
+pthread_h_first=$pthread_h_first
+EOSH
 
 
-: Look for GNU-cc style attribute checking
-echo " "
-echo "Checking whether your compiler can handle __attribute__ ..." >&4
-$cat >attrib.c <<'EOCP'
-#include <stdio.h>
-void croak (char* pat,...) __attribute__((format(printf,1,2),noreturn));
-EOCP
-if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
-       if $contains 'warning' attrib.out >/dev/null 2>&1; then
-               echo "Your C compiler doesn't fully support __attribute__."
-               val="$undef"
-       else
-               echo "Your C compiler supports __attribute__."
-               val="$define"
-       fi
-else
-       echo "Your C compiler doesn't seem to understand __attribute__ at all."
-       val="$undef"
-fi
-set d_attribut
-eval $setvar
-$rm -f attrib*
+$cat >> protochk <<'EOSH'
 
 
-: see if bcmp exists
-set bcmp d_bcmp
-eval $inlibc
+$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 <pthread.h>" >> 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
 
 
-: see if bcopy exists
-set bcopy d_bcopy
-eval $inlibc
+: see if sys/types.h has to be included
+set sys/types.h i_systypes
+eval $inhdr
 
 
-: see if this is a unistd.h system
-set unistd.h i_unistd
+: see if sys/select.h has to be included
+set sys/select.h i_sysselct
 eval $inhdr
 
 eval $inhdr
 
-: see if getpgrp exists
-set getpgrp d_getpgrp
-eval $inlibc
+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'
 
 
-case "$d_getpgrp" in
-"$define")
-       echo " "
-       echo "Checking to see which flavor of getpgrp is in use..."
-       $cat >try.c <<EOP
-#$i_unistd I_UNISTD
+: 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 <time.h>, <sys/time.h> or both." >&4
+       $echo $n "I'm now running the test program...$c"
+       $cat >try.c <<'EOCP'
 #include <sys/types.h>
 #include <sys/types.h>
-#ifdef I_UNISTD
-#  include <unistd.h>
+#ifdef I_TIME
+#include <time.h>
+#endif
+#ifdef I_SYSTIME
+#ifdef SYSTIMEKERNEL
+#define KERNEL
+#endif
+#include <sys/time.h>
+#endif
+#ifdef I_SYSSELECT
+#include <sys/select.h>
+#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 <sys/time.h> 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 <time.h>." >&4;;
+       *) i_time="$undef";;
+       esac
+       case "$flags" in
+       *I_SYSTIME*) i_systime="$define"
+               timeincl=`./findhdr sys/time.h`" $timeincl"
+               echo "We'll include <sys/time.h>." >&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
+case "$d_asctime_r" in
+"$define")
+       hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h"
+       case "$d_asctime_r_proto:$usethreads" in
+       ":define")      d_asctime_r_proto=define
+               set d_asctime_r_proto asctime_r $hdrs
+               eval $hasproto ;;
+       *)      ;;
+       esac
+       case "$d_asctime_r_proto" in
+       define)
+       case "$asctime_r_proto" in
+       ''|0) try='char* asctime_r(const struct tm*, char*);'
+       ./protochk "extern $try" $hdrs && asctime_r_proto=B_SB ;;
+       esac
+       case "$asctime_r_proto" in
+       ''|0) try='char* asctime_r(const struct tm*, char*, int);'
+       ./protochk "extern $try" $hdrs && asctime_r_proto=B_SBI ;;
+       esac
+       case "$asctime_r_proto" in
+       ''|0) try='int asctime_r(const struct tm*, char*);'
+       ./protochk "extern $try" $hdrs && asctime_r_proto=I_SB ;;
+       esac
+       case "$asctime_r_proto" in
+       ''|0) try='int asctime_r(const struct tm*, char*, int);'
+       ./protochk "extern $try" $hdrs && asctime_r_proto=I_SBI ;;
+       esac
+       case "$asctime_r_proto" in
+       ''|0)   d_asctime_r=undef
+               asctime_r_proto=0
+               echo "Disabling asctime_r, cannot determine prototype." >&4 ;;
+       * )     case "$asctime_r_proto" in
+               REENTRANT_PROTO*) ;;
+               *) asctime_r_proto="REENTRANT_PROTO_$asctime_r_proto" ;;
+               esac
+               echo "Prototype: $try" ;;
+       esac
+       ;;
+       *)      case "$usethreads" in
+               define) echo "asctime_r has no prototype, not using it." >&4 ;;
+               esac
+               d_asctime_r=undef
+               asctime_r_proto=0
+               ;;
+       esac
+       ;;
+*)     asctime_r_proto=0
+       ;;
+esac
+
+: see if atolf exists
+set atolf d_atolf
+eval $inlibc
+
+: see if atoll exists
+set atoll d_atoll
+eval $inlibc
+
+: Look for GNU-cc style attribute checking
+echo " "
+echo "Checking whether your compiler can handle __attribute__ ..." >&4
+$cat >attrib.c <<'EOCP'
+#include <stdio.h>
+void croak (char* pat,...) __attribute__((format(printf,1,2),noreturn));
+EOCP
+if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
+       if $contains 'warning' attrib.out >/dev/null 2>&1; then
+               echo "Your C compiler doesn't fully support __attribute__."
+               val="$undef"
+       else
+               echo "Your C compiler supports __attribute__."
+               val="$define"
+       fi
+else
+       echo "Your C compiler doesn't seem to understand __attribute__ at all."
+       val="$undef"
+fi
+set d_attribut
+eval $setvar
+$rm -f attrib*
+
+: see if bcmp exists
+set bcmp d_bcmp
+eval $inlibc
+
+: see if bcopy exists
+set bcopy d_bcopy
+eval $inlibc
+
+: see if this is a unistd.h system
+set unistd.h i_unistd
+eval $inhdr
+
+: see if getpgrp exists
+set getpgrp d_getpgrp
+eval $inlibc
+
+case "$d_getpgrp" in
+"$define")
+       echo " "
+       echo "Checking to see which flavor of getpgrp is in use..."
+       $cat >try.c <<EOP
+#$i_unistd I_UNISTD
+#include <sys/types.h>
+#ifdef I_UNISTD
+#  include <unistd.h>
 #endif
 int main()
 {
 #endif
 int main()
 {
@@ -9407,28 +10247,6 @@ set $varname;
 eval $setvar;
 $rm -f try.c try.o'
 
 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
 socketlib=''
 sockethdr=''
 : see whether socket exists
@@ -9587,6 +10405,55 @@ $define) cryptlib='' ;;
        ;;
 esac
 
        ;;
 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
 'csh') val="$undef" ;;
 : get csh whereabouts
 case "$csh" in
 'csh') val="$undef" ;;
@@ -9599,6 +10466,100 @@ case "$full_csh" in
 '') full_csh=$csh ;;
 esac
 
 '') 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
 : see if cuserid exists
 set cuserid d_cuserid
 eval $inlibc
@@ -9638,25 +10599,6 @@ $rm -f dbl_dig.?
 set d_dbl_dig
 eval $setvar
 
 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
 : see if dbm.h is available
 : see if dbmclose exists
 set dbmclose d_dbmclose
@@ -9938,9 +10880,50 @@ $rm -f fred fred.* dyna.$dlext dyna.* tmp-dyna.*
 set d_dlsymun
 eval $setvar
 
 set d_dlsymun
 eval $setvar
 
-: see if prototype for drand48 is available
-echo " "
-set d_drand48proto drand48 $i_stdlib stdlib.h $i_unistd unistd.h
+: 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
 eval $hasproto
 
 : see if dup2 exists
 eval $hasproto
 
 : see if dup2 exists
@@ -9955,26 +10938,413 @@ eval $inlibc
 set endgrent d_endgrent
 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 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 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 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 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 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'
 : Locate the flags for 'open()'
 echo " "
 $cat >try.c <<'EOCP'
@@ -10384,111 +11754,23 @@ eval $setvar
 $rm -f try*
 
 
 $rm -f try*
 
 
-: see if sys/select.h has to be included
-set sys/select.h i_sysselct
-eval $inhdr
+: check for fd_set items
+$cat <<EOM
 
 
-: 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 <time.h>, <sys/time.h> or both." >&4
-       $echo $n "I'm now running the test program...$c"
-       $cat >try.c <<'EOCP'
+Checking to see how well your C compiler handles fd_set and friends ...
+EOM
+$cat >try.c <<EOCP
+#$i_systime I_SYS_TIME
+#$i_sysselct I_SYS_SELECT
+#$d_socket HAS_SOCKET
 #include <sys/types.h>
 #include <sys/types.h>
-#ifdef I_TIME
-#include <time.h>
-#endif
-#ifdef I_SYSTIME
-#ifdef SYSTIMEKERNEL
-#define KERNEL
+#ifdef HAS_SOCKET
+#include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
 #endif
 #endif
+#ifdef I_SYS_TIME
 #include <sys/time.h>
 #endif
 #include <sys/time.h>
 #endif
-#ifdef I_SYSSELECT
-#include <sys/select.h>
-#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 <sys/time.h> 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 <time.h>." >&4;;
-       *) i_time="$undef";;
-       esac
-       case "$flags" in
-       *I_SYSTIME*) i_systime="$define"
-               timeincl=`./findhdr sys/time.h`" $timeincl"
-               echo "We'll include <sys/time.h>." >&4;;
-       *) i_systime="$undef";;
-       esac
-       $rm -f try.c try
-fi
-
-: check for fd_set items
-$cat <<EOM
-
-Checking to see how well your C compiler handles fd_set and friends ...
-EOM
-$cat >try.c <<EOCP
-#$i_systime I_SYS_TIME
-#$i_sysselct I_SYS_SELECT
-#$d_socket HAS_SOCKET
-#include <sys/types.h>
-#ifdef HAS_SOCKET
-#include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
-#endif
-#ifdef I_SYS_TIME
-#include <sys/time.h>
-#endif
-#ifdef I_SYS_SELECT
+#ifdef I_SYS_SELECT
 #include <sys/select.h>
 #endif
 int main() {
 #include <sys/select.h>
 #endif
 int main() {
@@ -10694,6 +11976,177 @@ eval $inlibc
 set getgrent d_getgrent
 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
 : see if gethostbyaddr exists
 set gethostbyaddr d_gethbyaddr
 eval $inlibc
@@ -10791,9 +12244,192 @@ case "$d_phostname" in
 '') d_phostname="$undef";;
 esac
 
 '') d_phostname="$undef";;
 esac
 
-: see if this is a netdb.h system
-set netdb.h i_netdb
-eval $inhdr
+: 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 prototypes for various gethostxxx netdb.h functions are available
 echo " "
 
 : see if prototypes for various gethostxxx netdb.h functions are available
 echo " "
@@ -10808,6 +12444,59 @@ eval $inlibc
 set getlogin d_getlogin
 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
 : see if getmnt exists
 set getmnt d_getmnt
 eval $inlibc
@@ -10828,6 +12517,185 @@ eval $inlibc
 set getnetent d_getnent
 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
 : see if prototypes for various getnetxxx netdb.h functions are available
 echo " "
 set d_getnetprotos getnetent $i_netdb netdb.h
@@ -10866,6 +12734,157 @@ eval $inlibc
 set getpriority d_getprior
 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
 : see if prototypes for various getprotoxxx netdb.h functions are available
 echo " "
 set d_getprotoprotos getprotoent $i_netdb netdb.h
@@ -10879,6 +12898,173 @@ eval $inlibc
 set getpwent d_getpwent
 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
 
 : see if getservbyname exists
 set getservbyname d_getsbyname
@@ -10892,6 +13078,157 @@ eval $inlibc
 set getservent d_getsent
 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
 : see if prototypes for various getservxxx netdb.h functions are available
 echo " "
 set d_getservprotos getservent $i_netdb netdb.h
@@ -10901,6 +13238,55 @@ eval $hasproto
 set getspnam d_getspnam
 eval $inlibc
 
 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
 : see if gettimeofday or ftime exists
 set gettimeofday d_gettimeod
 eval $inlibc
@@ -10920,28 +13306,48 @@ case "$d_gettimeod$d_ftime" in
        ;;
 esac
 
        ;;
 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
 
        ;;
 esac
 
@@ -11140,6 +13546,51 @@ eval $setvar
 set link d_link
 eval $inlibc
 
 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
 : see if localeconv exists
 set localeconv d_locconv
 eval $inlibc
@@ -11319,6 +13770,10 @@ eval $inlibc
 set munmap d_munmap
 eval $inlibc
 
 set munmap d_munmap
 eval $inlibc
 
+: see if nanosleep exists
+set nanosleep d_nanosleep
+eval $inlibc
+
 : see if nice exists
 set nice d_nice
 eval $inlibc
 : see if nice exists
 set nice d_nice
 eval $inlibc
@@ -11616,18 +14071,18 @@ set try
 
 d_nv_preserves_uv="$undef"
 if eval $compile; then
 
 d_nv_preserves_uv="$undef"
 if eval $compile; then
-       d_nv_preserves_uv_bits="`$run ./try`"
+       nv_preserves_uv_bits="`$run ./try`"
 fi
 fi
-case "$d_nv_preserves_uv_bits" in
+case "$nv_preserves_uv_bits" in
 \-[1-9]*)      
 \-[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"
        ;;
        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="$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
 esac
 
 $rm -f try.* try
@@ -11656,13 +14111,6 @@ $rm -f try.* try
 set d_off64_t
 eval $setvar
 
 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 " "
 : how to create joinable pthreads
 if test "X$usethreads" = "X$define" -a "X$i_pthread" = "X$define"; then
        echo " "
@@ -11762,9 +14210,33 @@ $rm -f reflect
 set d_procselfexe
 eval $setvar
 
 set d_procselfexe
 eval $setvar
 
+: see whether the pthread_atfork exists
+$cat >try.c <<EOP
+#include <pthread.h>
+#include <stdio.h>
+int main() {
+#ifdef  PTHREAD_ATFORK
+        pthread_atfork(NULL,NULL,NULL);
+#endif
+}
+EOP
+
 : see if pthread_atfork exists
 : see if pthread_atfork exists
-set pthread_atfork d_pthread_atfork
-eval $inlibc
+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
 
 
 : see whether the various POSIXish _yields exist
@@ -11838,91 +14310,44 @@ esac
 
 $rm -f try try.*
 
 
 $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
-
-       if $contains 'pw_gecos' $$.h >/dev/null 2>&1; then
-               val="$define"
-       else
-               val="$undef"
-       fi
-       set d_pwgecos
-       eval $setvar
-
-       if $contains 'pw_passwd' $$.h >/dev/null 2>&1; then
-               val="$define"
-       else
-               val="$undef"
-       fi
-       set d_pwpasswd
-       eval $setvar
-
-       $rm -f $$.h
+: see if random_r exists
+set random_r d_random_r
+eval $inlibc
+case "$d_random_r" in
+"$define")
+       hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h"
+       case "$d_random_r_proto:$usethreads" in
+       ":define")      d_random_r_proto=define
+               set d_random_r_proto random_r $hdrs
+               eval $hasproto ;;
+       *)      ;;
+       esac
+       case "$d_random_r_proto" in
+       define)
+       case "$random_r_proto" in
+       ''|0) try='int random_r(int*, struct random_data*);'
+       ./protochk "extern $try" $hdrs && random_r_proto=I_TS ;;
+       esac
+       case "$random_r_proto" in
+       ''|0)   d_random_r=undef
+               random_r_proto=0
+               echo "Disabling random_r, cannot determine prototype." >&4 ;;
+       * )     case "$random_r_proto" in
+               REENTRANT_PROTO*) ;;
+               *) random_r_proto="REENTRANT_PROTO_$random_r_proto" ;;
+               esac
+               echo "Prototype: $try" ;;
+       esac
        ;;
        ;;
-*)
-       val="$undef"; 
-       set d_pwquota; eval $setvar
-       set d_pwage; eval $setvar
-       set d_pwchange; eval $setvar
-       set d_pwclass; eval $setvar
-       set d_pwexpire; eval $setvar
-       set d_pwcomment; eval $setvar
-       set d_pwgecos; eval $setvar
-       set d_pwpasswd; eval $setvar
+       *)      case "$usethreads" in
+               define) echo "random_r has no prototype, not using it." >&4 ;;
+               esac
+               d_random_r=undef
+               random_r_proto=0
+               ;;
+       esac
+       ;;
+*)     random_r_proto=0
        ;;
 esac
 
        ;;
 esac
 
@@ -11936,6 +14361,96 @@ eval $inlibc
 set rewinddir d_rewinddir
 eval $inlibc
 
 set rewinddir d_rewinddir
 eval $inlibc
 
+: see if readdir64_r exists
+set readdir64_r d_readdir64_r
+eval $inlibc
+case "$d_readdir64_r" in
+"$define")
+       hdrs="$i_systypes sys/types.h define stdio.h $i_dirent dirent.h"
+       case "$d_readdir64_r_proto:$usethreads" in
+       ":define")      d_readdir64_r_proto=define
+               set d_readdir64_r_proto readdir64_r $hdrs
+               eval $hasproto ;;
+       *)      ;;
+       esac
+       case "$d_readdir64_r_proto" in
+       define)
+       case "$readdir64_r_proto" in
+       ''|0) try='int readdir64_r(DIR*, struct dirent64*, struct dirent64**);'
+       ./protochk "extern $try" $hdrs && readdir64_r_proto=I_TSR ;;
+       esac
+       case "$readdir64_r_proto" in
+       ''|0) try='int readdir64_r(DIR*, struct dirent64*);'
+       ./protochk "extern $try" $hdrs && readdir64_r_proto=I_TS ;;
+       esac
+       case "$readdir64_r_proto" in
+       ''|0)   d_readdir64_r=undef
+               readdir64_r_proto=0
+               echo "Disabling readdir64_r, cannot determine prototype." >&4 ;;
+       * )     case "$readdir64_r_proto" in
+               REENTRANT_PROTO*) ;;
+               *) readdir64_r_proto="REENTRANT_PROTO_$readdir64_r_proto" ;;
+               esac
+               echo "Prototype: $try" ;;
+       esac
+       ;;
+       *)      case "$usethreads" in
+               define) echo "readdir64_r has no prototype, not using it." >&4 ;;
+               esac
+               d_readdir64_r=undef
+               readdir64_r_proto=0
+               ;;
+       esac
+       ;;
+*)     readdir64_r_proto=0
+       ;;
+esac
+
+: see if readdir_r exists
+set readdir_r d_readdir_r
+eval $inlibc
+case "$d_readdir_r" in
+"$define")
+       hdrs="$i_systypes sys/types.h define stdio.h $i_dirent dirent.h"
+       case "$d_readdir_r_proto:$usethreads" in
+       ":define")      d_readdir_r_proto=define
+               set d_readdir_r_proto readdir_r $hdrs
+               eval $hasproto ;;
+       *)      ;;
+       esac
+       case "$d_readdir_r_proto" in
+       define)
+       case "$readdir_r_proto" in
+       ''|0) try='int readdir_r(DIR*, struct dirent*, struct dirent**);'
+       ./protochk "extern $try" $hdrs && readdir_r_proto=I_TSR ;;
+       esac
+       case "$readdir_r_proto" in
+       ''|0) try='int readdir_r(DIR*, struct dirent*);'
+       ./protochk "extern $try" $hdrs && readdir_r_proto=I_TS ;;
+       esac
+       case "$readdir_r_proto" in
+       ''|0)   d_readdir_r=undef
+               readdir_r_proto=0
+               echo "Disabling readdir_r, cannot determine prototype." >&4 ;;
+       * )     case "$readdir_r_proto" in
+               REENTRANT_PROTO*) ;;
+               *) readdir_r_proto="REENTRANT_PROTO_$readdir_r_proto" ;;
+               esac
+               echo "Prototype: $try" ;;
+       esac
+       ;;
+       *)      case "$usethreads" in
+               define) echo "readdir_r has no prototype, not using it." >&4 ;;
+               esac
+               d_readdir_r=undef
+               readdir_r_proto=0
+               ;;
+       esac
+       ;;
+*)     readdir_r_proto=0
+       ;;
+esac
+
 : see if readv exists
 set readv d_readv
 eval $inlibc
 : see if readv exists
 set readv d_readv
 eval $inlibc
@@ -12440,10 +14955,100 @@ eval $inlibc
 set setgrent d_setgrent
 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 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
 : see if setitimer exists
 set setitimer d_setitimer
 eval $inlibc
@@ -12456,10 +15061,100 @@ eval $inlibc
 set setlocale d_setlocale
 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 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
 : see if setprotoent exists
 set setprotoent d_setpent
 eval $inlibc
@@ -12480,10 +15175,100 @@ eval $inlibc
 set setproctitle d_setproctitle
 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 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
 : see if setregid exists
 set setregid d_setregid
 eval $inlibc
@@ -12508,6 +15293,51 @@ eval $inlibc
 set setservent d_setsent
 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
 : see if setsid exists
 set setsid d_setsid
 eval $inlibc
@@ -12763,6 +15593,88 @@ eval $hasproto
 set socks5_init d_socks5_init
 eval $inlibc
 
 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
 : see if prototype for setresgid is available
 echo " "
 set d_sresgproto setresgid $i_unistd unistd.h
@@ -12918,6 +15830,26 @@ else
        echo "Your stdio doesn't appear very std."
 fi
 $rm -f try.c try
        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
 
 set d_stdstdio
 eval $setvar
 
@@ -13162,6 +16094,55 @@ if test "X$d_strerror" = X -o "X$d_syserrlst" = X; then
     fi
 fi
 
     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
 : see if strftime exists
 set strftime d_strftime
 eval $inlibc
@@ -13462,6 +16443,24 @@ echo " "
 set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h
 eval $hasproto
 
 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
 : see if this is a sys/times.h system
 set sys/times.h i_systimes
 eval $inhdr
@@ -13484,10 +16483,100 @@ else
        clocktype='int'
 fi
 
        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 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
 : see if tzname[] exists
 echo " "
 if set tzname val -a d_tzname; eval $csym; $val; then
@@ -13507,7 +16596,7 @@ case "$multiarch" in
 ''|[nN]*) multiarch="$undef" ;;
 esac
 
 ''|[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*)
 echo " "
 case "$usecrosscompile$multiarch" in
 *$define*)
@@ -13530,21 +16619,23 @@ an Alpha will report 12345678. If the test program works the default is
 probably right.
 I'm now running the test program...
 EOM
 probably right.
 I'm now running the test program...
 EOM
-               $cat >try.c <<'EOCP'
+               $cat >try.c <<EOCP
 #include <stdio.h>
 #include <stdio.h>
+#include <sys/types.h>
+typedef $uvtype UV;
 int main()
 {
        int i;
        union {
 int main()
 {
        int i;
        union {
-               unsigned long l;
-               char c[sizeof(long)];
+               UV l;
+               char c[$uvsize];
        } u;
 
        } u;
 
-       if (sizeof(long) > 4)
-               u.l = (0x08070605L << 32) | 0x04030201L;
+       if ($uvsize > 4)
+               u.l = (((UV)0x08070605) << 32) | (UV)0x04030201;
        else
        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);
                printf("%c", u.c[i]+'0');
        printf("\n");
        exit(0);
@@ -13571,7 +16662,7 @@ EOM
                fi
                case "$xxx_prompt" in
                y)
                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"
                        ;;
                        . ./myread
                        byteorder="$ans"
                        ;;
@@ -15126,47 +18217,6 @@ EOCP
        ;;
 esac
 
        ;;
 esac
 
-: define a fucntion to check prototypes
-$cat > protochk <<EOSH
-$startsh
-cc="$cc"
-optimize="$optimize"
-ccflags="$ccflags"
-prototype="$prototype"
-define="$define"
-rm=$rm
-EOSH
-
-$cat >> 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
 : 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
@@ -15300,6 +18350,7 @@ EOM
        esac
 fi
 : locate the preferred pager for this system
        esac
 fi
 : locate the preferred pager for this system
+fn=f/
 case "$pager" in
 '')
        dflt=''
 case "$pager" in
 '')
        dflt=''
@@ -15319,10 +18370,14 @@ case "$pager" in
        '') dflt=/usr/ucb/more;;
        esac
        ;;
        '') 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 " "
 esac
 echo " "
-fn=f/
 rp='What pager is used on your system?'
 . ./getfile
 pager="$ans"
 rp='What pager is used on your system?'
 . ./getfile
 pager="$ans"
@@ -15333,10 +18388,7 @@ set pid_t pidtype int stdio.h sys/types.h
 eval $typedef_ask
 
 : Find earliest binary compatible site_perl subdirectory perl can use.
 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'
 : Find earliest pure perl site_perl subdirectory perl can use.
 : The versioned directories started at 5.005.
 pm_apiversion='5.005'
@@ -15955,24 +19007,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()."
 : see what type uids are declared as in the kernel
 echo " "
 echo "Looking for the type for user ids returned by getuid()."
@@ -16153,10 +19187,6 @@ esac
 set libutil.h i_libutil
 eval $inhdr
 
 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
 : see if mach cthreads are available
 if test "X$usethreads" = "X$define"; then
        set mach/cthreads.h i_machcthr
@@ -16386,7 +19416,7 @@ for i in \`$cc -v -c tmp.c 2>&1 $postprocess_cc_v\`
 do
        case "\$i" in
        -D*) echo "\$i" | $sed 's/^-D//';;
 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
        esac
 done
 $rm -f try.c
@@ -16503,10 +19533,6 @@ set i_termio; eval $setvar
 val=$val2; set i_sgtty; eval $setvar
 val=$val3; set i_termios; 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
 : see if stddef is available
 set stddef.h i_stddef
 eval $inhdr
@@ -16680,9 +19706,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.
 # 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::JP needs an explicit mention for the same reason
-# --jhi 2002-02-23
-known_extensions="$known_extensions threads/shared Encode/JP"
+known_extensions="$known_extensions threads/shared"
 set X $nonxs_extensions
 shift
 nonxs_extensions="$*"
 set X $nonxs_extensions
 shift
 nonxs_extensions="$*"
@@ -16714,7 +19738,7 @@ for xxx in $known_extensions ; do
                case "$i_ndbm" in
                $define)
                    case "$osname-$use64bitint" in
                case "$i_ndbm" in
                $define)
                    case "$osname-$use64bitint" in
-                   cygwin-*|hpux-define)
+                   hpux-define)
                        case "$libs" in
                        *-lndbm*) avail_ext="$avail_ext $xxx" ;;
                        esac
                        case "$libs" in
                        *-lndbm*) avail_ext="$avail_ext $xxx" ;;
                        esac
@@ -16728,7 +19752,7 @@ for xxx in $known_extensions ; do
                case "${i_dbm}${i_rpcsvcdbm}" in
                *"${define}"*)
                    case "$osname-$use64bitint" in
                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
                        case "$libs" in
                        *-ldbm*) avail_ext="$avail_ext $xxx" ;;
                        esac
@@ -16772,14 +19796,33 @@ for xxx in $known_extensions ; do
                         esac
                esac
                ;;
                         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
                ;;
                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 
        IPC/SysV|ipc/sysv)
                : XXX Do we need a useipcsysv variable here
                case "${d_msg}${d_sem}${d_shm}" in 
@@ -16820,7 +19863,19 @@ Note that DynaLoader is always built and need not be mentioned here.
 
 EOM
        case "$dynamic_ext" in
 
 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
        *)      dflt="$dynamic_ext"
                # Perhaps we are reusing an old out-of-date config.sh.
                case "$hint" in
@@ -16916,6 +19971,20 @@ EOM
        esac
        ;;
 esac
        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
 
 set X $dynamic_ext $static_ext $nonxs_ext
 shift
@@ -17042,11 +20111,11 @@ archlibexp='$archlibexp'
 archname64='$archname64'
 archname='$archname'
 archobjs='$archobjs'
 archname64='$archname64'
 archname='$archname'
 archobjs='$archobjs'
+asctime_r_proto='$asctime_r_proto'
 awk='$awk'
 baserev='$baserev'
 bash='$bash'
 bin='$bin'
 awk='$awk'
 baserev='$baserev'
 bash='$bash'
 bin='$bin'
-bincompat5005='$bincompat5005'
 binexp='$binexp'
 bison='$bison'
 byacc='$byacc'
 binexp='$binexp'
 bison='$bison'
 byacc='$byacc'
@@ -17084,8 +20153,11 @@ cppminus='$cppminus'
 cpprun='$cpprun'
 cppstdin='$cppstdin'
 cppsymbols='$cppsymbols'
 cpprun='$cpprun'
 cppstdin='$cppstdin'
 cppsymbols='$cppsymbols'
+crypt_r_proto='$crypt_r_proto'
 cryptlib='$cryptlib'
 csh='$csh'
 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'
 d_Gconvert='$d_Gconvert'
 d_PRIEUldbl='$d_PRIEUldbl'
 d_PRIFUldbl='$d_PRIFUldbl'
@@ -17105,12 +20177,12 @@ d_access='$d_access'
 d_accessx='$d_accessx'
 d_alarm='$d_alarm'
 d_archlib='$d_archlib'
 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_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'
 d_bsd='$d_bsd'
 d_bsdgetpgrp='$d_bsdgetpgrp'
 d_bsdsetpgrp='$d_bsdsetpgrp'
@@ -17126,7 +20198,10 @@ d_closedir='$d_closedir'
 d_cmsghdr_s='$d_cmsghdr_s'
 d_const='$d_const'
 d_crypt='$d_crypt'
 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_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_cuserid='$d_cuserid'
 d_dbl_dig='$d_dbl_dig'
 d_dbminitproto='$d_dbminitproto'
@@ -17137,15 +20212,22 @@ d_dlerror='$d_dlerror'
 d_dlopen='$d_dlopen'
 d_dlsymun='$d_dlsymun'
 d_dosuid='$d_dosuid'
 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_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_endhent='$d_endhent'
+d_endhostent_r='$d_endhostent_r'
 d_endnent='$d_endnent'
 d_endnent='$d_endnent'
+d_endnetent_r='$d_endnetent_r'
 d_endpent='$d_endpent'
 d_endpent='$d_endpent'
+d_endprotoent_r='$d_endprotoent_r'
 d_endpwent='$d_endpwent'
 d_endpwent='$d_endpwent'
+d_endpwent_r='$d_endpwent_r'
 d_endsent='$d_endsent'
 d_endsent='$d_endsent'
+d_endservent_r='$d_endservent_r'
 d_eofnblk='$d_eofnblk'
 d_eunice='$d_eunice'
 d_fchdir='$d_fchdir'
 d_eofnblk='$d_eofnblk'
 d_eunice='$d_eunice'
 d_fchdir='$d_fchdir'
@@ -17182,19 +20264,29 @@ d_getcwd='$d_getcwd'
 d_getespwnam='$d_getespwnam'
 d_getfsstat='$d_getfsstat'
 d_getgrent='$d_getgrent'
 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_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_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_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'
 d_getnetprotos='$d_getnetprotos'
 d_getpagsz='$d_getpagsz'
 d_getpbyname='$d_getpbyname'
@@ -17205,15 +20297,26 @@ d_getpgrp2='$d_getpgrp2'
 d_getpgrp='$d_getpgrp'
 d_getppid='$d_getppid'
 d_getprior='$d_getprior'
 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_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_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_getservprotos='$d_getservprotos'
 d_getspnam='$d_getspnam'
+d_getspnam_r='$d_getspnam_r'
 d_gettimeod='$d_gettimeod'
 d_gettimeod='$d_gettimeod'
+d_gmtime_r='$d_gmtime_r'
 d_gnulibc='$d_gnulibc'
 d_grpasswd='$d_grpasswd'
 d_hasmntopt='$d_hasmntopt'
 d_gnulibc='$d_gnulibc'
 d_grpasswd='$d_grpasswd'
 d_hasmntopt='$d_hasmntopt'
@@ -17230,6 +20333,7 @@ d_killpg='$d_killpg'
 d_lchown='$d_lchown'
 d_ldbl_dig='$d_ldbl_dig'
 d_link='$d_link'
 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'
 d_locconv='$d_locconv'
 d_lockf='$d_lockf'
 d_longdbl='$d_longdbl'
@@ -17254,6 +20358,7 @@ d_mktime='$d_mktime'
 d_mmap='$d_mmap'
 d_modfl='$d_modfl'
 d_modfl_pow32_bug='$d_modfl_pow32_bug'
 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'
 d_mprotect='$d_mprotect'
 d_msg='$d_msg'
 d_msg_ctrunc='$d_msg_ctrunc'
@@ -17269,10 +20374,10 @@ d_msgsnd='$d_msgsnd'
 d_msync='$d_msync'
 d_munmap='$d_munmap'
 d_mymalloc='$d_mymalloc'
 d_msync='$d_msync'
 d_munmap='$d_munmap'
 d_mymalloc='$d_mymalloc'
+d_nanosleep='$d_nanosleep'
 d_nice='$d_nice'
 d_nl_langinfo='$d_nl_langinfo'
 d_nv_preserves_uv='$d_nv_preserves_uv'
 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'
 d_off64_t='$d_off64_t'
 d_old_pthread_create_joinable='$d_old_pthread_create_joinable'
 d_oldpthreads='$d_oldpthreads'
@@ -17298,7 +20403,10 @@ d_pwpasswd='$d_pwpasswd'
 d_pwquota='$d_pwquota'
 d_qgcvt='$d_qgcvt'
 d_quad='$d_quad'
 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='$d_readdir'
+d_readdir_r='$d_readdir_r'
 d_readlink='$d_readlink'
 d_readv='$d_readv'
 d_recvmsg='$d_recvmsg'
 d_readlink='$d_readlink'
 d_readv='$d_readv'
 d_recvmsg='$d_recvmsg'
@@ -17323,19 +20431,25 @@ d_sendmsg='$d_sendmsg'
 d_setegid='$d_setegid'
 d_seteuid='$d_seteuid'
 d_setgrent='$d_setgrent'
 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_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_setitimer='$d_setitimer'
 d_setlinebuf='$d_setlinebuf'
 d_setlocale='$d_setlocale'
+d_setlocale_r='$d_setlocale_r'
 d_setnent='$d_setnent'
 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_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='$d_setpwent'
+d_setpwent_r='$d_setpwent_r'
 d_setregid='$d_setregid'
 d_setresgid='$d_setresgid'
 d_setresuid='$d_setresuid'
 d_setregid='$d_setregid'
 d_setresgid='$d_setresgid'
 d_setresuid='$d_setresuid'
@@ -17343,6 +20457,7 @@ d_setreuid='$d_setreuid'
 d_setrgid='$d_setrgid'
 d_setruid='$d_setruid'
 d_setsent='$d_setsent'
 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'
 d_setsid='$d_setsid'
 d_setvbuf='$d_setvbuf'
 d_sfio='$d_sfio'
@@ -17362,6 +20477,8 @@ d_socklen_t='$d_socklen_t'
 d_sockpair='$d_sockpair'
 d_socks5_init='$d_socks5_init'
 d_sqrtl='$d_sqrtl'
 d_sockpair='$d_sockpair'
 d_socks5_init='$d_socks5_init'
 d_sqrtl='$d_sqrtl'
+d_srand48_r='$d_srand48_r'
+d_srandom_r='$d_srandom_r'
 d_sresgproto='$d_sresgproto'
 d_sresuproto='$d_sresuproto'
 d_statblks='$d_statblks'
 d_sresgproto='$d_sresgproto'
 d_sresuproto='$d_sresuproto'
 d_statblks='$d_statblks'
@@ -17380,6 +20497,7 @@ d_strcoll='$d_strcoll'
 d_strctcpy='$d_strctcpy'
 d_strerrm='$d_strerrm'
 d_strerror='$d_strerror'
 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'
 d_strftime='$d_strftime'
 d_strtod='$d_strtod'
 d_strtol='$d_strtol'
@@ -17404,7 +20522,11 @@ d_telldir='$d_telldir'
 d_telldirproto='$d_telldirproto'
 d_time='$d_time'
 d_times='$d_times'
 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_truncate='$d_truncate'
+d_ttyname_r='$d_ttyname_r'
 d_tzname='$d_tzname'
 d_u32align='$d_u32align'
 d_ualarm='$d_ualarm'
 d_tzname='$d_tzname'
 d_u32align='$d_u32align'
 d_ualarm='$d_ualarm'
@@ -17418,6 +20540,7 @@ d_ustat='$d_ustat'
 d_vendorarch='$d_vendorarch'
 d_vendorbin='$d_vendorbin'
 d_vendorlib='$d_vendorlib'
 d_vendorarch='$d_vendorarch'
 d_vendorbin='$d_vendorbin'
 d_vendorlib='$d_vendorlib'
+d_vendorscript='$d_vendorscript'
 d_vfork='$d_vfork'
 d_void_closedir='$d_void_closedir'
 d_voidsig='$d_voidsig'
 d_vfork='$d_vfork'
 d_void_closedir='$d_void_closedir'
 d_voidsig='$d_voidsig'
@@ -17442,12 +20565,19 @@ dlext='$dlext'
 dlsrc='$dlsrc'
 doublesize='$doublesize'
 drand01='$drand01'
 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'
 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'
 eunicefix='$eunicefix'
 exe_ext='$exe_ext'
 expr='$expr'
@@ -17465,14 +20595,37 @@ from='$from'
 full_ar='$full_ar'
 full_csh='$full_csh'
 full_sed='$full_sed'
 full_ar='$full_ar'
 full_csh='$full_csh'
 full_sed='$full_sed'
+gccansipedantic='$gccansipedantic'
 gccosandvers='$gccosandvers'
 gccversion='$gccversion'
 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'
 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'
 grep='$grep'
 groupcat='$groupcat'
 groupstype='$groupstype'
@@ -17481,6 +20634,10 @@ h_fcntl='$h_fcntl'
 h_sysfile='$h_sysfile'
 hint='$hint'
 hostcat='$hostcat'
 h_sysfile='$h_sysfile'
 hint='$hint'
 hostcat='$hostcat'
+html1dir='$html1dir'
+html1direxp='$html1direxp'
+html3dir='$html3dir'
+html3direxp='$html3direxp'
 i16size='$i16size'
 i16type='$i16type'
 i32size='$i32size'
 i16size='$i16size'
 i16type='$i16type'
 i32size='$i32size'
@@ -17491,6 +20648,7 @@ i8size='$i8size'
 i8type='$i8type'
 i_arpainet='$i_arpainet'
 i_bsdioctl='$i_bsdioctl'
 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'
 i_db='$i_db'
 i_dbm='$i_dbm'
 i_dirent='$i_dirent'
@@ -17577,6 +20735,8 @@ incpath='$incpath'
 inews='$inews'
 installarchlib='$installarchlib'
 installbin='$installbin'
 inews='$inews'
 installarchlib='$installarchlib'
 installbin='$installbin'
+installhtml1dir='$installhtml1dir'
+installhtml3dir='$installhtml3dir'
 installman1dir='$installman1dir'
 installman3dir='$installman3dir'
 installprefix='$installprefix'
 installman1dir='$installman1dir'
 installman3dir='$installman3dir'
 installprefix='$installprefix'
@@ -17585,12 +20745,22 @@ installprivlib='$installprivlib'
 installscript='$installscript'
 installsitearch='$installsitearch'
 installsitebin='$installsitebin'
 installscript='$installscript'
 installsitearch='$installsitearch'
 installsitebin='$installsitebin'
+installsitehtml1='$installsitehtml1'
+installsitehtml3='$installsitehtml3'
 installsitelib='$installsitelib'
 installsitelib='$installsitelib'
+installsiteman1='$installsiteman1'
+installsiteman3='$installsiteman3'
+installsitescript='$installsitescript'
 installstyle='$installstyle'
 installusrbinperl='$installusrbinperl'
 installvendorarch='$installvendorarch'
 installvendorbin='$installvendorbin'
 installstyle='$installstyle'
 installusrbinperl='$installusrbinperl'
 installvendorarch='$installvendorarch'
 installvendorbin='$installvendorbin'
+installvendorhtml1='$installvendorhtml1'
+installvendorhtml3='$installvendorhtml3'
 installvendorlib='$installvendorlib'
 installvendorlib='$installvendorlib'
+installvendorman1='$installvendorman1'
+installvendorman3='$installvendorman3'
+installvendorscript='$installvendorscript'
 intsize='$intsize'
 issymlink='$issymlink'
 ivdformat='$ivdformat'
 intsize='$intsize'
 issymlink='$issymlink'
 ivdformat='$ivdformat'
@@ -17620,6 +20790,7 @@ lint='$lint'
 lkflags='$lkflags'
 ln='$ln'
 lns='$lns'
 lkflags='$lkflags'
 ln='$ln'
 lns='$lns'
+localtime_r_proto='$localtime_r_proto'
 locincpth='$locincpth'
 loclibpth='$loclibpth'
 longdblsize='$longdblsize'
 locincpth='$locincpth'
 loclibpth='$loclibpth'
 longdblsize='$longdblsize'
@@ -17668,6 +20839,7 @@ nroff='$nroff'
 nvEUformat='$nvEUformat'
 nvFUformat='$nvFUformat'
 nvGUformat='$nvGUformat'
 nvEUformat='$nvEUformat'
 nvFUformat='$nvFUformat'
 nvGUformat='$nvGUformat'
+nv_preserves_uv_bits='$nv_preserves_uv_bits'
 nveformat='$nveformat'
 nvfformat='$nvfformat'
 nvgformat='$nvgformat'
 nveformat='$nveformat'
 nvfformat='$nvfformat'
 nvgformat='$nvgformat'
@@ -17710,9 +20882,12 @@ quadkind='$quadkind'
 quadtype='$quadtype'
 randbits='$randbits'
 randfunc='$randfunc'
 quadtype='$quadtype'
 randbits='$randbits'
 randfunc='$randfunc'
+random_r_proto='$random_r_proto'
 randseedtype='$randseedtype'
 ranlib='$ranlib'
 rd_nodata='$rd_nodata'
 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'
 revision='$revision'
 rm='$rm'
 rmail='$rmail'
@@ -17739,6 +20914,13 @@ seedfunc='$seedfunc'
 selectminbits='$selectminbits'
 selecttype='$selecttype'
 sendmail='$sendmail'
 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'
 sh='$sh'
 shar='$shar'
 sharpbang='$sharpbang'
@@ -17757,11 +20939,21 @@ sitearch='$sitearch'
 sitearchexp='$sitearchexp'
 sitebin='$sitebin'
 sitebinexp='$sitebinexp'
 sitearchexp='$sitearchexp'
 sitebin='$sitebin'
 sitebinexp='$sitebinexp'
+sitehtml1='$sitehtml1'
+sitehtml1exp='$sitehtml1exp'
+sitehtml3='$sitehtml3'
+sitehtml3exp='$sitehtml3exp'
 sitelib='$sitelib'
 sitelib_stem='$sitelib_stem'
 sitelibexp='$sitelibexp'
 sitelib='$sitelib'
 sitelib_stem='$sitelib_stem'
 sitelibexp='$sitelibexp'
+siteman1='$siteman1'
+siteman1exp='$siteman1exp'
+siteman3='$siteman3'
+siteman3exp='$siteman3exp'
 siteprefix='$siteprefix'
 siteprefixexp='$siteprefixexp'
 siteprefix='$siteprefix'
 siteprefixexp='$siteprefixexp'
+sitescript='$sitescript'
+sitescriptexp='$sitescriptexp'
 sizesize='$sizesize'
 sizetype='$sizetype'
 sleep='$sleep'
 sizesize='$sizesize'
 sizetype='$sizetype'
 sleep='$sleep'
@@ -17773,6 +20965,8 @@ socksizetype='$socksizetype'
 sort='$sort'
 spackage='$spackage'
 spitshell='$spitshell'
 sort='$sort'
 spackage='$spackage'
 spitshell='$spitshell'
+srand48_r_proto='$srand48_r_proto'
+srandom_r_proto='$srandom_r_proto'
 src='$src'
 ssizetype='$ssizetype'
 startperl='$startperl'
 src='$src'
 ssizetype='$ssizetype'
 startperl='$startperl'
@@ -17785,6 +20979,7 @@ stdio_cnt='$stdio_cnt'
 stdio_filbuf='$stdio_filbuf'
 stdio_ptr='$stdio_ptr'
 stdio_stream_array='$stdio_stream_array'
 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'
 strings='$strings'
 submit='$submit'
 subversion='$subversion'
@@ -17797,11 +20992,13 @@ tee='$tee'
 test='$test'
 timeincl='$timeincl'
 timetype='$timetype'
 test='$test'
 timeincl='$timeincl'
 timetype='$timetype'
+tmpnam_r_proto='$tmpnam_r_proto'
 to='$to'
 touch='$touch'
 tr='$tr'
 trnl='$trnl'
 troff='$troff'
 to='$to'
 touch='$touch'
 tr='$tr'
 trnl='$trnl'
 troff='$troff'
+ttyname_r_proto='$ttyname_r_proto'
 u16size='$u16size'
 u16type='$u16type'
 u32size='$u32size'
 u16size='$u16size'
 u16type='$u16type'
 u32size='$u32size'
@@ -17851,11 +21048,21 @@ vendorarch='$vendorarch'
 vendorarchexp='$vendorarchexp'
 vendorbin='$vendorbin'
 vendorbinexp='$vendorbinexp'
 vendorarchexp='$vendorarchexp'
 vendorbin='$vendorbin'
 vendorbinexp='$vendorbinexp'
+vendorhtml1='$vendorhtml1'
+vendorhtml1exp='$vendorhtml1exp'
+vendorhtml3='$vendorhtml3'
+vendorhtml3exp='$vendorhtml3exp'
 vendorlib='$vendorlib'
 vendorlib_stem='$vendorlib_stem'
 vendorlibexp='$vendorlibexp'
 vendorlib='$vendorlib'
 vendorlib_stem='$vendorlib_stem'
 vendorlibexp='$vendorlibexp'
+vendorman1='$vendorman1'
+vendorman1exp='$vendorman1exp'
+vendorman3='$vendorman3'
+vendorman3exp='$vendorman3exp'
 vendorprefix='$vendorprefix'
 vendorprefixexp='$vendorprefixexp'
 vendorprefix='$vendorprefix'
 vendorprefixexp='$vendorprefixexp'
+vendorscript='$vendorscript'
+vendorscriptexp='$vendorscriptexp'
 version='$version'
 version_patchlevel_string='$version_patchlevel_string'
 versiononly='$versiononly'
 version='$version'
 version_patchlevel_string='$version_patchlevel_string'
 versiononly='$versiononly'