Re: Questions about Tie::Array and perl modules
[p5sagit/p5-mst-13.2.git] / Configure
index 5842e8a..373ac25 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,8 +20,8 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Fri Mar  3 16:54:03 EET 2000 [metaconfig 3.0 PL70]
-# (with additional metaconfig patches by perlbug@perl.com)
+# Generated on Thu Oct  5 01:50:43 EET DST 2000 [metaconfig 3.0 PL70]
+# (with additional metaconfig patches by perlbug@perl.org)
 
 cat >/tmp/c1$$ <<EOF
 ARGGGHHHH!!!!!
@@ -160,9 +160,12 @@ esac
 test -d UU || mkdir UU
 cd UU && rm -f ./*
 
+ccname=''
+ccversion=''
 ccsymbols=''
 cppccsymbols=''
 cppsymbols=''
+perllibs=''
 dynamic_ext=''
 extensions=''
 known_extensions=''
@@ -288,7 +291,6 @@ bincompat5005=''
 d_bincompat5005=''
 byteorder=''
 cc=''
-gccversion=''
 ccflags=''
 cppflags=''
 ldflags=''
@@ -343,7 +345,6 @@ d_endnent=''
 d_endpent=''
 d_endpwent=''
 d_endsent=''
-d_endspent=''
 d_fchmod=''
 d_fchown=''
 d_fcntl=''
@@ -355,6 +356,7 @@ d_flexfnam=''
 d_flock=''
 d_fork=''
 d_fpos64_t=''
+d_frexpl=''
 d_fs_data_s=''
 d_fseeko=''
 d_fsetpos=''
@@ -364,6 +366,7 @@ d_ftime=''
 d_gettimeod=''
 d_Gconvert=''
 d_getcwd=''
+d_getespwnam=''
 d_getfsstat=''
 d_getgrent=''
 d_getgrps=''
@@ -392,10 +395,10 @@ d_getprior=''
 d_getpbyname=''
 d_getpbynumber=''
 d_getprotoprotos=''
+d_getprpwnam=''
 d_getpwent=''
 d_getsent=''
 d_getservprotos=''
-d_getspent=''
 d_getspnam=''
 d_getsbyname=''
 d_getsbyport=''
@@ -406,6 +409,8 @@ d_iconv=''
 d_inetaton=''
 d_int64_t=''
 d_isascii=''
+d_isnan=''
+d_isnanl=''
 d_killpg=''
 d_lchown=''
 d_ldbl_dig=''
@@ -435,6 +440,7 @@ d_mkstemps=''
 d_mktime=''
 d_mmap=''
 mmaptype=''
+d_modfl=''
 d_mprotect=''
 d_msg=''
 d_msgctl=''
@@ -487,6 +493,7 @@ d_setpgrp2=''
 d_bsdsetpgrp=''
 d_setpgrp=''
 d_setprior=''
+d_setproctitle=''
 d_setpwent=''
 d_setregid=''
 d_setresgid=''
@@ -496,7 +503,6 @@ d_setrgid=''
 d_setruid=''
 d_setsent=''
 d_setsid=''
-d_setspent=''
 d_setvbuf=''
 d_sfio=''
 usesfio=''
@@ -521,6 +527,7 @@ d_sockpair=''
 sockethdr=''
 socketlib=''
 d_socklen_t=''
+d_socks5_init=''
 d_sqrtl=''
 d_statblks=''
 d_statfs_f_flags=''
@@ -594,6 +601,8 @@ fflushNULL=''
 fflushall=''
 fpossize=''
 fpostype=''
+gccosandvers=''
+gccversion=''
 gidformat=''
 gidsign=''
 gidsize=''
@@ -620,6 +629,7 @@ i_grp=''
 i_iconv=''
 i_ieeefp=''
 i_inttypes=''
+i_libutil=''
 i_limits=''
 i_locale=''
 i_machcthr=''
@@ -634,6 +644,7 @@ i_netinettcp=''
 i_niin=''
 i_sysin=''
 i_poll=''
+i_prot=''
 i_pthread=''
 d_pwage=''
 d_pwchange=''
@@ -698,6 +709,7 @@ inc_version_list=''
 inc_version_list_init=''
 installprefix=''
 installprefixexp=''
+installscripts=''
 installstyle=''
 installusrbinperl=''
 intsize=''
@@ -720,18 +732,20 @@ libsfiles=''
 libsfound=''
 libspath=''
 lns=''
-d_PRIEldbl=''
-d_PRIFldbl=''
-d_PRIGldbl=''
+d_PRIEUldbl=''
+d_PRIFUldbl=''
+d_PRIGUldbl=''
 d_PRIeldbl=''
 d_PRIfldbl=''
 d_PRIgldbl=''
-sPRIEldbl=''
-sPRIFldbl=''
-sPRIGldbl=''
+d_SCNfldbl=''
+sPRIEUldbl=''
+sPRIFUldbl=''
+sPRIGUldbl=''
 sPRIeldbl=''
 sPRIfldbl=''
 sPRIgldbl=''
+sSCNfldbl=''
 lseeksize=''
 lseektype=''
 make_set_make=''
@@ -749,12 +763,6 @@ installman3dir=''
 man3dir=''
 man3direxp=''
 man3ext=''
-huge=''
-large=''
-medium=''
-models=''
-small=''
-split=''
 modetype=''
 multiarch=''
 mydomain=''
@@ -775,6 +783,8 @@ hostcat=''
 passcat=''
 orderlib=''
 ranlib=''
+d_perl_otherlibdirs=''
+otherlibdirs=''
 package=''
 spackage=''
 pager=''
@@ -790,6 +800,7 @@ perl5=''
 perladmin=''
 perlpath=''
 d_nv_preserves_uv=''
+d_nv_preserves_uv_bits=''
 i16size=''
 i16type=''
 i32size=''
@@ -813,6 +824,13 @@ u8type=''
 uvsize=''
 uvtype=''
 ivdformat=''
+nvEUformat=''
+nvFUformat=''
+nvGUformat=''
+nveformat=''
+nvfformat=''
+nvgformat=''
+uvXUformat=''
 uvoformat=''
 uvuformat=''
 uvxformat=''
@@ -824,13 +842,13 @@ privlib=''
 privlibexp=''
 prototype=''
 ptrsize=''
-d_PRIX64=''
+d_PRIXU64=''
 d_PRId64=''
 d_PRIi64=''
 d_PRIo64=''
 d_PRIu64=''
 d_PRIx64=''
-sPRIX64=''
+sPRIXU64=''
 sPRId64=''
 sPRIi64=''
 sPRIo64=''
@@ -864,9 +882,11 @@ sitebin=''
 sitebinexp=''
 installsitelib=''
 sitelib=''
+sitelib_stem=''
 sitelibexp=''
 siteprefix=''
 siteprefixexp=''
+sizesize=''
 sizetype=''
 so=''
 socksizetype=''
@@ -889,6 +909,9 @@ uidtype=''
 archname64=''
 use64bitall=''
 use64bitint=''
+ccflags_uselargefiles=''
+ldflags_uselargefiles=''
+libswanted_uselargefiles=''
 uselargefiles=''
 uselongdouble=''
 usemorebits=''
@@ -906,6 +929,10 @@ usethreads=''
 incpath=''
 mips_type=''
 usrinc=''
+d_vendorarch=''
+installvendorarch=''
+vendorarch=''
+vendorarchexp=''
 d_vendorbin=''
 installvendorbin=''
 vendorbin=''
@@ -913,6 +940,7 @@ vendorbinexp=''
 d_vendorlib=''
 installvendorlib=''
 vendorlib=''
+vendorlib_stem=''
 vendorlibexp=''
 usevendorprefix=''
 vendorprefix=''
@@ -938,6 +966,9 @@ if test -f /etc/unixtovms.exe; then
 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.
@@ -946,6 +977,7 @@ useopcode=true
 _exe=''
 : 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"
@@ -962,8 +994,7 @@ loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
 loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
 
 : general looking path for locating libraries
-glibpth="/usr/lib/large /lib /usr/lib $xlibpth"
-glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
+glibpth="/lib /usr/lib $xlibpth"
 glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
 test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
 test -f /shlib/libc.so     && glibpth="/shlib $glibpth"
@@ -977,6 +1008,10 @@ plibpth=''
 libswanted=''
 : some systems want to use only the non-versioned libso:s
 ignore_versioned_solibs=''
+archname64=''
+ccflags_uselargefiles=''
+ldflags_uselargefiles=''
+libswanted_uselargefiles=''
 : set usemultiplicity on the Configure command line to enable multiplicity.
 : set usesocks on the Configure command line to enable socks.
 : set usethreads on the Configure command line to enable threads.
@@ -988,7 +1023,7 @@ defvoidused=15
 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 iconv"
+libswanted="$libswanted ucb bsd BSD PW x iconv util"
 : 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 ! !'`
@@ -1031,7 +1066,7 @@ case "$sh" in
 $me:  Fatal Error:  I can't find a Bourne Shell anywhere.  
 
 Usually it's in /bin/sh.  How did you even get this far?
-Please contact me (Perl Maintainers) at perlbug@perl.com and 
+Please contact me (Perl Maintainers) at perlbug@perl.org and 
 we'll try to straighten this all out.
 EOM
        exit 1
@@ -1330,10 +1365,15 @@ esac
 case "$fastread$alldone" in
 yescont|yesexit) ;;
 *)
-       if test ! -t 0; then
-               echo "Say 'sh Configure', not 'sh <Configure'"
-               exit 1
-       fi
+       case "$extractsh" in
+       true) ;;
+       *)
+               if test ! -t 0; then
+                       echo "Say 'sh Configure', not 'sh <Configure'"
+                       exit 1
+               fi
+               ;;
+       esac
        ;;
 esac
 
@@ -1567,7 +1607,7 @@ THIS PACKAGE SEEMS TO BE INCOMPLETE.
 You have the option of continuing the configuration process, despite the
 distinct possibility that your kit is damaged, by typing 'y'es.  If you
 do, don't blame me if something goes wrong.  I advise you to type 'n'o
-and contact the author (perlbug@perl.com).
+and contact the author (perlbug@perl.org).
 
 EOM
                echo $n "Continue? [n] $c" >&4
@@ -1730,6 +1770,40 @@ persist across sessions for $package.
 You may safely delete it if you wish.
 EOF
 
+xversion=`awk '/define[        ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
+case "$usedevel" in
+$define|true|[yY]*) ;;
+*) case "$xversion" in
+   *[13579])
+       cat >&4 <<EOH
+*** WHOA THERE!!! ***
+
+    This is an UNSTABLE DEVELOPMENT release.
+    The version of this $package distribution is $xversion, that is, odd,
+    (as opposed to even) and that signifies a development release.
+    If you want a maintenance release, you want an even-numbered version.
+
+    Do ***NOT*** install this into production use.
+    Data corruption and crashes are possible.
+
+    It is most seriously suggested that you do not continue any further
+    unless you want to help in developing and debugging Perl.
+
+EOH
+       rp='Do you really want to continue?'
+       dflt='n'
+       . ./myread
+       case "$ans" in
+       [yY]) echo >&4 "Okay, continuing." ;;
+       *) echo >&4 "Okay, bye."
+          exit 1
+          ;;
+       esac
+       ;;
+    esac
+    ;;
+esac
+
 : general instructions
 needman=true
 firsttime=true
@@ -1792,7 +1866,7 @@ Much effort has been expended to ensure that this shell script will run on any
 Unix system.  If despite that it blows up on yours, your best bet is to edit
 Configure and run it again.  If you can't run Configure for some reason,
 you'll have to generate a config.sh file by hand.  Whatever problems you
-have, let me (perlbug@perl.com) know how I blew it.
+have, let me (perlbug@perl.org) know how I blew it.
 
 This installation script affects things in two ways:
 
@@ -2013,6 +2087,62 @@ FOO
        ;;
 esac
 
+cat <<EOS >checkcc
+$startsh
+EOS
+cat <<'EOSC' >>checkcc
+case "$cc" in
+'') ;;
+*)  $rm -f try try.*
+    $cat >try.c <<EOM
+int main(int argc, char *argv[]) {
+  return 0;
+}
+EOM
+    if $cc -o try try.c; then
+       :
+    else
+        echo "Uh-oh, the C compiler '$cc' doesn't seem to be working." >&4
+        despair=yes
+        trygcc=yes
+        case "$cc" in
+        *gcc*) trygcc=no ;;
+        esac
+        case "`$cc -v -c try.c 2>&1`" in
+        *gcc*) trygcc=no ;;
+        esac
+        if $test X"$trygcc" = Xyes; then
+            if gcc -o try -c try.c; then
+                echo " "
+                echo "You seem to have a working gcc, though." >&4
+                rp="Would you like to use it?"
+                dflt=y
+                if $test -f myread; then
+                    . ./myread
+                else
+                    if $test -f UU/myread; then
+                        . ./UU/myread
+                    else
+                        echo "Cannot find myread, sorry.  Aborting." >&2
+                        exit 1
+                    fi
+                fi  
+                case "$ans" in
+                [yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no ;;
+                esac
+            fi
+        fi
+        if $test X"$despair" = Xyes; then
+            echo "You need to find a working C compiler." >&4
+            echo "I cannot continue any further, aborting." >&4
+            exit 1
+        fi
+    fi
+    $rm -f try try.*
+    ;;
+esac
+EOSC
+
 : determine whether symbolic links are supported
 echo " "
 $touch blurfl
@@ -2145,6 +2275,7 @@ if test -f config.sh; then
                ;;
        esac
 fi
+. ./UU/checkcc
 if test ! -f config.sh; then
        $cat <<EOM
 
@@ -2155,7 +2286,7 @@ EOM
        (cd $src/hints; ls -C *.sh) | $sed 's/\.sh/   /g' >&4
        dflt=''
        : Half the following guesses are probably wrong... If you have better
-       : tests or hints, please send them to perlbug@perl.com
+       : tests or hints, please send them to perlbug@perl.org
        : The metaconfig authors would also appreciate a copy...
        $test -f /irix && osname=irix
        $test -f /xenix && osname=sco_xenix
@@ -2329,7 +2460,11 @@ EOM
                osf1|mls+)      case "$5" in
                                alpha)
                                        osname=dec_osf
-                                       osvers=`echo "$3" | sed 's/^[xvt]//'`
+                                       osvers=`sizer -v | awk '{print $3}' |  tr '[A-Z]' '[a-z]' | sed 's/^[xvt]//'`
+                                       case "$osvers" in
+                                       [1-9].[0-9]*) ;;
+                                       *) osvers=`echo "$3" | sed 's/^[xvt]//'` ;;
+                                       esac
                                        ;;
                        hp*)    osname=hp_osf1  ;;
                        mips)   osname=mips_osf1 ;;
@@ -2749,170 +2884,6 @@ esac
 set usemultiplicity
 eval $setvar
 
-: determine where manual pages are on this system
-echo " "
-case "$sysman" in
-'') 
-       syspath='/usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1'
-       syspath="$syspath /usr/man/u_man/man1 /usr/share/man/man1"
-       syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
-       syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
-       syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
-       sysman=`./loc . /usr/man/man1 $syspath`
-       ;;
-esac
-if $test -d "$sysman"; then
-       echo "System manual is in $sysman." >&4
-else
-       echo "Could not find manual pages in source form." >&4
-fi
-
-: see what memory models we can support
-case "$models" in
-'')
-       $cat >pdp11.c <<'EOP'
-int main() {
-#ifdef pdp11
-       exit(0);
-#else
-       exit(1);
-#endif
-}
-EOP
-       ( cc -o pdp11 pdp11.c ) >/dev/null 2>&1
-       if $test -f pdp11 && ./pdp11 2>/dev/null; then
-               dflt='unsplit split'
-       else
-               tans=`./loc . X /lib/small /lib/large /usr/lib/small /usr/lib/large /lib/medium /usr/lib/medium /lib/huge`
-               case "$tans" in
-               X) dflt='none';;
-               *) if $test -d /lib/small || $test -d /usr/lib/small; then
-                               dflt='small'
-                       else
-                               dflt=''
-                       fi
-                       if $test -d /lib/medium || $test -d /usr/lib/medium; then
-                               dflt="$dflt medium"
-                       fi
-                       if $test -d /lib/large || $test -d /usr/lib/large; then
-                               dflt="$dflt large"
-                       fi
-                       if $test -d /lib/huge || $test -d /usr/lib/huge; then
-                               dflt="$dflt huge"
-                       fi
-               esac
-       fi;;
-*) dflt="$models";;
-esac
-$cat <<EOM
-Some systems have different model sizes.  On most systems they are called
-small, medium, large, and huge.  On the PDP11 they are called unsplit and
-split.  If your system doesn't support different memory models, say "none".
-If you wish to force everything to one memory model, say "none" here and
-put the appropriate flags later when it asks you for other cc and ld flags.
-Venix systems may wish to put "none" and let the compiler figure things out.
-(In the following question multiple model names should be space separated.)
-
-The default for most systems is "none".
-
-EOM
-rp="Which memory models are supported?"
-. ./myread
-models="$ans"
-
-case "$models" in
-none)
-       small=''
-       medium=''
-       large=''
-       huge=''
-       unsplit=''
-       split=''
-       ;;
-*split)
-       case "$split" in
-       '') if $contains '\-i' $sysman/ld.1 >/dev/null 2>&1 || \
-                        $contains '\-i' $sysman/cc.1 >/dev/null 2>&1; then
-                       dflt='-i'
-               else
-                       dflt='none'
-               fi;;
-       *) dflt="$split";;
-       esac
-       rp="What flag indicates separate I and D space?"
-       . ./myread
-       tans="$ans"
-       case "$tans" in
-       none) tans='';;
-       esac
-       split="$tans"
-       unsplit='';;
-*large*|*small*|*medium*|*huge*)
-       case "$models" in
-       *large*)
-               case "$large" in
-               '') dflt='-Ml';;
-               *) dflt="$large";;
-               esac
-       rp="What flag indicates large model?"
-       . ./myread
-       tans="$ans"
-       case "$tans" in
-       none) tans='';
-       esac
-       large="$tans";;
-       *) large='';;
-       esac
-       case "$models" in
-       *huge*) case "$huge" in
-               '') dflt='-Mh';;
-               *) dflt="$huge";;
-               esac
-               rp="What flag indicates huge model?"
-               . ./myread
-               tans="$ans"
-               case "$tans" in
-               none) tans='';
-               esac
-               huge="$tans";;
-       *) huge="$large";;
-       esac
-       case "$models" in
-       *medium*) case "$medium" in
-               '') dflt='-Mm';;
-               *) dflt="$medium";;
-               esac
-               rp="What flag indicates medium model?"
-               . ./myread
-               tans="$ans"
-               case "$tans" in
-               none) tans='';
-               esac
-               medium="$tans";;
-       *) medium="$large";;
-       esac
-       case "$models" in
-       *small*) case "$small" in
-               '') dflt='none';;
-               *) dflt="$small";;
-               esac
-               rp="What flag indicates small model?"
-               . ./myread
-               tans="$ans"
-               case "$tans" in
-               none) tans='';
-               esac
-               small="$tans";;
-       *) small='';;
-       esac
-       ;;
-*)
-       echo "Unrecognized memory models--you may have to edit Makefile.SH" >&4
-       ;;
-esac
-$rm -f pdp11.* pdp11
-
 : make some quick guesses about what we are up against
 echo " "
 $echo $n "Hmm...  $c"
@@ -2969,12 +2940,15 @@ EOI
        ;;
 esac
 : Detect OS2.  The p_ variable is set above in the Head.U unit.
+: Note that this also -- wrongly -- detects e.g. dos-djgpp, which also uses
+: semicolon as a patch separator
 case "$p_" in
 :) ;;
 *)
        $cat <<'EOI'
 I have the feeling something is not exactly right, however...don't tell me...
 lemme think...does HAL ring a bell?...no, of course, you're only running OS/2!
+(Or you may be running DOS with DJGPP.)
 EOI
        echo exit 0 >os2
        ;;
@@ -3005,57 +2979,21 @@ chmod +x bsd usg v7 osf1 eunice xenix venix os2
 $eunicefix bsd usg v7 osf1 eunice xenix venix os2
 $rm -f foo
 
-: see if we need a special compiler
-echo " "
-if ./usg; then
-       case "$cc" in
-       '') case "$Mcc" in
-               /*) dflt='Mcc';;
-               *) case "$large" in
-                       -M*) dflt='cc';;
-                       *)      if $contains '\-M' $sysman/cc.1 >/dev/null 2>&1 ; then
-                                       if $contains '\-M' $sysman/cpp.1 >/dev/null 2>&1; then
-                                               dflt='cc'
-                                       else
-                                               dflt='cc -M'
-                                       fi
-                               else
-                                       dflt='cc'
-                               fi;;
-                       esac;;
-               esac;;
-       *)  dflt="$cc";;
-       esac
-       case "$dflt" in
-       *M*)    $cat <<'EOM'
-On some older systems the default C compiler will not resolve multiple global
-references that happen to have the same name.  On some such systems the "Mcc"
-command may be used to force these to be resolved.  On other systems a "cc -M"
-command is required.  (Note that the -M flag on other systems indicates a
-memory model to use!) If you have the Gnu C compiler, you might wish to use
-that instead.
-
-EOM
-       ;;
-       esac
-       rp="Use which C compiler?"
-       . ./myread
-       cc="$ans"
-else
-       case "$cc" in
-       '') dflt=cc;;
-       *) dflt="$cc";;
-       esac
-       rp="Use which C compiler?"
-       . ./myread
-       cc="$ans"
-fi
+case "$cc" in
+'') dflt=cc;;
+*) dflt="$cc";;
+esac
+rp="Use which C compiler?"
+. ./myread
+cc="$ans"
 : Look for a hint-file generated 'call-back-unit'.  Now that the
 : user has specified the compiler, we may need to set or change some
 : other defaults.
 if $test -f cc.cbu; then
     . ./cc.cbu
 fi
+. ./checkcc
+
 echo " "
 echo "Checking for GNU cc in disguise and/or its version number..." >&4
 $cat >gccvers.c <<EOM
@@ -3076,6 +3014,7 @@ if $cc $ldflags -o gccvers gccvers.c; then
        case "$gccversion" in
        '') echo "You are not using GNU cc." ;;
        *)  echo "You are using GNU cc $gccversion."
+           ccname=gcc  
            ;;
        esac
 else
@@ -3093,338 +3032,49 @@ $rm -f gccvers*
 case "$gccversion" in
 1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
 esac
+case "$gccversion" in
+'') gccosandvers='' ;;
+*) gccshortvers=`echo "$gccversion"|sed 's/ .*//'`
+   gccosandvers=`$cc -v 2>&1|grep '/specs$'|sed "s!.*/[^-/]*-[^-/]*-\([^-/]*\)/$gccshortvers/specs!\1!"`
+   gccshortvers=''
+   case "$gccosandvers" in
+   $osname) gccosandvers='' ;; # linux gccs seem to have no linux osvers, grr
+   $osname$osvers) ;; # looking good
+   $osname*) cat <<EOM >&4
 
-: decide how portable to be.  Allow command line overrides.
-case "$d_portable" in
-"$undef") ;;
-*)     d_portable="$define" ;;
-esac
-
-: set up shell script to do ~ expansion
-cat >filexp <<EOSS
-$startsh
-: expand filename
-case "\$1" in
- ~/*|~)
-       echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
-       ;;
- ~*)
-       if $test -f /bin/csh; then
-               /bin/csh -f -c "glob \$1"
-               failed=\$?
-               echo ""
-               exit \$failed
-       else
-               name=\`$expr x\$1 : '..\([^/]*\)'\`
-               dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' </etc/passwd\`
-               if $test ! -d "\$dir"; then
-                       me=\`basename \$0\`
-                       echo "\$me: can't locate home directory for: \$name" >&2
-                       exit 1
-               fi
-               case "\$1" in
-               */*)
-                       echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
-                       ;;
-               *)
-                       echo \$dir
-                       ;;
-               esac
-       fi
-       ;;
-*)
-       echo \$1
-       ;;
-esac
-EOSS
-chmod +x filexp
-$eunicefix filexp
-
-: now set up to get a file name
-cat <<EOS >getfile
-$startsh
-EOS
-cat <<'EOSC' >>getfile
-tilde=''
-fullpath=''
-already=''
-skip=''
-none_ok=''
-exp_file=''
-nopath_ok=''
-orig_rp="$rp"
-orig_dflt="$dflt"
-case "$gfpth" in
-'') gfpth='.' ;;
-esac
-
-case "$fn" in
-*\(*)
-       expr $fn : '.*(\(.*\)).*' | tr ',' $trnl >getfile.ok
-       fn=`echo $fn | sed 's/(.*)//'`
-       ;;
-esac
+*** WHOA THERE!!! ***
 
-case "$fn" in
-*:*)
-       loc_file=`expr $fn : '.*:\(.*\)'`
-       fn=`expr $fn : '\(.*\):.*'`
-       ;;
-esac
+    Your gcc has not been compiled for the exact release of
+    your operating system ($gccosandvers versus $osname$osvers).
 
-case "$fn" in
-*~*) tilde=true;;
-esac
-case "$fn" in
-*/*) fullpath=true;;
-esac
-case "$fn" in
-*+*) skip=true;;
-esac
-case "$fn" in
-*n*) none_ok=true;;
-esac
-case "$fn" in
-*e*) exp_file=true;;
-esac
-case "$fn" in
-*p*) nopath_ok=true;;
-esac
+    In general it is a good idea to keep gcc synchronized with
+    the operating system because otherwise serious problems
+    may ensue when trying to compile software, like Perl.
 
-case "$fn" in
-*f*) type='File';;
-*d*) type='Directory';;
-*l*) type='Locate';;
-esac
+    I'm trying to be optimistic here, though, and will continue.
+    If later during the configuration and build icky compilation
+    problems appear (headerfile conflicts being the most common
+    manifestation), I suggest reinstalling the gcc to match
+    your operating system release.
 
-what="$type"
-case "$what" in
-Locate) what='File';;
+EOM
+      ;;
+   *) gccosandvers='' ;; # failed to parse, better be silent
+   esac
+   ;;
 esac
-
-case "$exp_file" in
-'')
-       case "$d_portable" in
-       "$define") ;;
-       *) exp_file=true;;
-       esac
-       ;;
+case "$ccname" in
+'') ccname="$cc" ;;
 esac
 
-cd ..
-while test "$type"; do
-       redo=''
-       rp="$orig_rp"
-       dflt="$orig_dflt"
-       case "$tilde" in
-       true) rp="$rp (~name ok)";;
-       esac
-       . UU/myread
-       if test -f UU/getfile.ok && \
-               $contains "^$ans\$" UU/getfile.ok >/dev/null 2>&1
-       then
-               value="$ans"
-               ansexp="$ans"
-               break
-       fi
-       case "$ans" in
-       none)
-               value=''
-               ansexp=''
-               case "$none_ok" in
-               true) type='';;
-               esac
-               ;;
-       *)
-               case "$tilde" in
-               '') value="$ans"
-                       ansexp="$ans";;
-               *)
-                       value=`UU/filexp $ans`
-                       case $? in
-                       0)
-                               if test "$ans" != "$value"; then
-                                       echo "(That expands to $value on this system.)"
-                               fi
-                               ;;
-                       *) value="$ans";;
-                       esac
-                       ansexp="$value"
-                       case "$exp_file" in
-                       '') value="$ans";;
-                       esac
-                       ;;
-               esac
-               case "$fullpath" in
-               true)
-                       case "$ansexp" in
-                       /*) value="$ansexp" ;;
-                       *)
-                               redo=true
-                               case "$already" in
-                               true)
-                               echo "I shall only accept a full path name, as in /bin/ls." >&4
-                               echo "Use a ! shell escape if you wish to check pathnames." >&4
-                                       ;;
-                               *)
-                               echo "Please give a full path name, starting with slash." >&4
-                                       case "$tilde" in
-                                       true)
-                               echo "Note that using ~name is ok provided it expands well." >&4
-                                               already=true
-                                               ;;
-                                       esac
-                               esac
-                               ;;
-                       esac
-                       ;;
-               esac
-               case "$redo" in
-               '')
-                       case "$type" in
-                       File)
-                               for fp in $gfpth; do
-                                       if test "X$fp" = X.; then
-                                           pf="$ansexp"
-                                       else    
-                                           pf="$fp/$ansexp"
-                                       fi
-                                       if test -f "$pf"; then
-                                               type=''
-                                       elif test -r "$pf" || (test -h "$pf") >/dev/null 2>&1
-                                       then
-                                               echo "($value is not a plain file, but that's ok.)"
-                                               type=''
-                                       fi
-                                       if test X"$type" = X; then
-                                           value="$pf"
-                                           break
-                                       fi
-                               done
-                               ;;
-                       Directory)
-                               for fp in $gfpth; do
-                                       if test "X$fp" = X.; then
-                                           pf="$ansexp"
-                                       else    
-                                           pf="$fp/$ansexp"
-                                       fi
-                                       if test -d "$pf"; then
-                                               type=''
-                                               value="$pf"
-                                               break
-                                       fi
-                               done
-                               ;;
-                       Locate)
-                               if test -d "$ansexp"; then
-                                       echo "(Looking for $loc_file in directory $value.)"
-                                       value="$value/$loc_file"
-                                       ansexp="$ansexp/$loc_file"
-                               fi
-                               if test -f "$ansexp"; then
-                                       type=''
-                               fi
-                               case "$nopath_ok" in
-                               true)   case "$value" in
-                                       */*) ;;
-                                       *)      echo "Assuming $value will be in people's path."
-                                               type=''
-                                               ;;
-                                       esac
-                                       ;;
-                               esac
-                               ;;
-                       esac
-
-                       case "$skip" in
-                       true) type='';
-                       esac
-
-                       case "$type" in
-                       '') ;;
-                       *)
-                               if test "$fastread" = yes; then
-                                       dflt=y
-                               else
-                                       dflt=n
-                               fi
-                               rp="$what $value doesn't exist.  Use that name anyway?"
-                               . UU/myread
-                               dflt=''
-                               case "$ans" in
-                               y*) type='';;
-                               *) echo " ";;
-                               esac
-                               ;;
-                       esac
-                       ;;
-               esac
-               ;;
-       esac
-done
-cd UU
-ans="$value"
-rp="$orig_rp"
-dflt="$orig_dflt"
-rm -f getfile.ok
-test "X$gfpthkeep" != Xy && gfpth=""
-EOSC
-
-: What should the include directory be ?
-echo " "
-$echo $n "Hmm...  $c"
-dflt='/usr/include'
-incpath=''
-mips_type=''
-if $test -f /bin/mips && /bin/mips; then
-       echo "Looks like a MIPS system..."
-       $cat >usr.c <<'EOCP'
-#ifdef SYSTYPE_BSD43
-/bsd43
-#endif
-EOCP
-       if $cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then
-               dflt='/bsd43/usr/include'
-               incpath='/bsd43'
-               mips_type='BSD 4.3'
-       else
-               mips_type='System V'
-       fi
-       $rm -f usr.c usr.out
-       echo "and you're compiling with the $mips_type compiler and libraries."
-       xxx_prompt=y
-       echo "exit 0" >mips
-else
-       echo "Doesn't look like a MIPS system."
-       xxx_prompt=n
-       echo "exit 1" >mips
-fi
-chmod +x mips
-$eunicefix mips
-case "$usrinc" in
-'') ;;
-*) dflt="$usrinc";;
-esac
-case "$xxx_prompt" in
-y)     fn=d/
-       echo " "
-       rp='Where are the include files you want to use?'
-       . ./getfile
-       usrinc="$ans"
-       ;;
-*)     usrinc="$dflt"
-       ;;
-esac
-
-: see how we invoke the C preprocessor
-echo " "
-echo "Now, how can we feed standard input to your C preprocessor..." >&4
-cat <<'EOT' >testcpp.c
-#define ABC abc
-#define XYZ xyz
-ABC.XYZ
-EOT
+: see how we invoke the C preprocessor
+echo " "
+echo "Now, how can we feed standard input to your C preprocessor..." >&4
+cat <<'EOT' >testcpp.c
+#define ABC abc
+#define XYZ xyz
+ABC.XYZ
+EOT
 cd ..
 if test ! -f cppstdin; then
        if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
@@ -3565,1021 +3215,1943 @@ case "$cppstdin" in
 esac
 $rm -f testcpp.c testcpp.out
 
-: Set private lib path
-case "$plibpth" in
-'') if ./mips; then
-               plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
-       fi;;
-esac
-case "$libpth" in
-' ') dlist='';;
-'') dlist="$loclibpth $plibpth $glibpth";;
-*) dlist="$libpth";;
+: decide how portable to be.  Allow command line overrides.
+case "$d_portable" in
+"$undef") ;;
+*)     d_portable="$define" ;;
 esac
 
-: Now check and see which directories actually exist, avoiding duplicates
-libpth=''
-for xxx in $dlist
-do
-    if $test -d $xxx; then
-               case " $libpth " in
-               *" $xxx "*) ;;
-               *) libpth="$libpth $xxx";;
-               esac
-    fi
-done
-$cat <<'EOM'
-
-Some systems have incompatible or broken versions of libraries.  Among
-the directories listed in the question below, please remove any you
-know not to be holding relevant libraries, and add any that are needed.
-Say "none" for none.
-
-EOM
-case "$libpth" in
-'') dflt='none';;
-*)
-       set X $libpth
-       shift
-       dflt=${1+"$@"}
+: set up shell script to do ~ expansion
+cat >filexp <<EOSS
+$startsh
+: expand filename
+case "\$1" in
+ ~/*|~)
+       echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
        ;;
-esac
-rp="Directories to use for library searches?"
-. ./myread
-case "$ans" in
-none) libpth=' ';;
-*) libpth="$ans";;
-esac
-
-: compute shared library extension
-case "$so" in
-'')
-       if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then
-               dflt='sl'
+ ~*)
+       if $test -f /bin/csh; then
+               /bin/csh -f -c "glob \$1"
+               failed=\$?
+               echo ""
+               exit \$failed
        else
-               dflt='so'
+               name=\`$expr x\$1 : '..\([^/]*\)'\`
+               dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' </etc/passwd\`
+               if $test ! -d "\$dir"; then
+                       me=\`basename \$0\`
+                       echo "\$me: can't locate home directory for: \$name" >&2
+                       exit 1
+               fi
+               case "\$1" in
+               */*)
+                       echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
+                       ;;
+               *)
+                       echo \$dir
+                       ;;
+               esac
        fi
        ;;
-*) dflt="$so";;
-esac
-$cat <<EOM
-
-On some systems, shared libraries may be available.  Answer 'none' if
-you want to suppress searching of shared libraries for the remainder
-of this configuration.
-
-EOM
-rp='What is the file extension used for shared libraries?'
-. ./myread
-so="$ans"
-
-: Define several unixisms.
-: Hints files or command line option can be used to override them.
-: The convoluted testing is in case hints files set either the old
-: or the new name.
-case "$_exe" in
-'')    case "$exe_ext" in
-    '')        ;;
-       *)      _exe="$exe_ext" ;;
-       esac
-       ;;
-esac
-case "$_a" in
-'')    case "$lib_ext" in
-    '')        _a='.a';;
-       *)      _a="$lib_ext" ;;
-       esac
-       ;;
-esac
-case "$_o" in
-'') case "$obj_ext" in
-       '')     _o='.o';;
-       *)      _o="$obj_ext";;
-       esac
-       ;;
-esac
-case "$p_" in
-'') case "$path_sep" in
-       '')     p_=':';;
-       *)      p_="$path_sep";;
-       esac
+*)
+       echo \$1
        ;;
 esac
-exe_ext=$_exe
-lib_ext=$_a
-obj_ext=$_o
-path_sep=$p_
+EOSS
+chmod +x filexp
+$eunicefix filexp
 
-: Which makefile gets called first.  This is used by make depend.
-case "$firstmakefile" in
-'') firstmakefile='makefile';;
+: now set up to get a file name
+cat <<EOS >getfile
+$startsh
+EOS
+cat <<'EOSC' >>getfile
+tilde=''
+fullpath=''
+already=''
+skip=''
+none_ok=''
+exp_file=''
+nopath_ok=''
+orig_rp="$rp"
+orig_dflt="$dflt"
+case "$gfpth" in
+'') gfpth='.' ;;
 esac
 
-case "$usesocks" in
-$define|true|[yY]*)    dflt='y';;
-*) dflt='n';;
+case "$fn" in
+*\(*)
+       expr $fn : '.*(\(.*\)).*' | tr ',' $trnl >getfile.ok
+       fn=`echo $fn | sed 's/(.*)//'`
+       ;;
 esac
-cat <<EOM
-
-Perl can be built to use the SOCKS proxy protocol library.  To do so,
-Configure must be run with -Dusesocks.
 
-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" ;;
+case "$fn" in
+*:*)
+       loc_file=`expr $fn : '.*:\(.*\)'`
+       fn=`expr $fn : '\(.*\):.*'`
+       ;;
 esac
-set usesocks
-eval $setvar
 
-: Looking for optional libraries
-echo " "
-echo "Checking for optional libraries..." >&4
-case "$libs" in
-' '|'') dflt='';;
-*) dflt="$libs";;
+case "$fn" in
+*~*) tilde=true;;
 esac
-case "$libswanted" in
-'') libswanted='c_s';;
+case "$fn" in
+*/*) fullpath=true;;
 esac
-case "$usesocks" in
-"$define") libswanted="$libswanted socks5 socks5_sh" ;;
+case "$fn" in
+*+*) skip=true;;
 esac
-libsfound=''
-libsfiles=''
-libsdirs=''
-libspath=''
-for thisdir in $libpth $xlibpth; do
-  test -d $thisdir && libspath="$libspath $thisdir"
-done
-for thislib in $libswanted; do
-       for thisdir in $libspath; do
-           xxx=''
-           if $test ! -f "$xxx" -a "X$ignore_versioned_solibs" = "X"; then
-               xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|tail -1`
-               $test -f "$xxx" && eval $libscheck
-               $test -f "$xxx" && libstyle=shared
-           fi
-           if test ! -f "$xxx"; then
-               xxx=$thisdir/lib$thislib.$so
-               $test -f "$xxx" && eval $libscheck
-               $test -f "$xxx" && libstyle=shared
-           fi  
-           if test ! -f "$xxx"; then
-               xxx=$thisdir/lib$thislib$_a
-               $test -f "$xxx" && eval $libscheck
-               $test -f "$xxx" && libstyle=static
-           fi
-           if test ! -f "$xxx"; then
-               xxx=$thisdir/$thislib$_a
-               $test -f "$xxx" && eval $libscheck
-               $test -f "$xxx" && libstyle=static
-           fi
-           if test ! -f "$xxx"; then
-               xxx=$thisdir/lib${thislib}_s$_a
-               $test -f "$xxx" && eval $libscheck
-               $test -f "$xxx" && libstyle=static
-               $test -f "$xxx" && thislib=${thislib}_s
-           fi
-           if test ! -f "$xxx"; then
-               xxx=$thisdir/Slib$thislib$_a
-               $test -f "$xxx" && eval $libscheck
-               $test -f "$xxx" && libstyle=static
-           fi
-           if $test -f "$xxx"; then
-               case "$libstyle" in
-               shared) echo "Found -l$thislib (shared)." ;;
-               static) echo "Found -l$thislib." ;;
-               *)      echo "Found -l$thislib ($libstyle)." ;;
-               esac
-               case " $dflt " in
-               *"-l$thislib "*);;
-               *) dflt="$dflt -l$thislib"
-                   libsfound="$libsfound $xxx"
-                   yyy=`basename $xxx`
-                   libsfiles="$libsfiles $yyy"
-                   yyy=`echo $xxx|$sed -e "s%/$yyy\\$%%"`
-                   case " $libsdirs " in
-                   *" $yyy "*) ;;
-                   *) libsdirs="$libsdirs $yyy" ;;
-                   esac
-                  ;;
-               esac
-               break
-           fi  
-       done
-       if $test ! -f "$xxx"; then
-           echo "No -l$thislib."
-       fi
-done
-set X $dflt
-shift
-dflt="$*"
-case "$libs" in
-'') dflt="$dflt";;
-*) dflt="$libs";;
+case "$fn" in
+*n*) none_ok=true;;
 esac
-case "$dflt" in
-' '|'') dflt='none';;
+case "$fn" in
+*e*) exp_file=true;;
+esac
+case "$fn" in
+*p*) nopath_ok=true;;
 esac
 
-$cat <<EOM
-
-In order to compile $package on your machine, a number of libraries
-are usually needed.  Include any other special libraries here as well.
-Say "none" for none.  The default list is almost always right.
-EOM
-
-echo " "
-rp="What libraries to use?"
-. ./myread
-case "$ans" in
-none) libs=' ';;
-*) libs="$ans";;
+case "$fn" in
+*f*) type='File';;
+*d*) type='Directory';;
+*l*) type='Locate';;
 esac
 
-: determine optimization, if desired, or use for debug flag also
-case "$optimize" in
-' '|$undef) dflt='none';;
-'') dflt='-O';;
-*) dflt="$optimize";;
+what="$type"
+case "$what" in
+Locate) what='File';;
 esac
-$cat <<EOH
 
-By default, $package compiles with the -O flag to use the optimizer.
+case "$exp_file" in
+'')
+       case "$d_portable" in
+       "$define") ;;
+       *) exp_file=true;;
+       esac
+       ;;
+esac
+
+cd ..
+while test "$type"; do
+       redo=''
+       rp="$orig_rp"
+       dflt="$orig_dflt"
+       case "$tilde" in
+       true) rp="$rp (~name ok)";;
+       esac
+       . UU/myread
+       if test -f UU/getfile.ok && \
+               $contains "^$ans\$" UU/getfile.ok >/dev/null 2>&1
+       then
+               value="$ans"
+               ansexp="$ans"
+               break
+       fi
+       case "$ans" in
+       none)
+               value=''
+               ansexp=''
+               case "$none_ok" in
+               true) type='';;
+               esac
+               ;;
+       *)
+               case "$tilde" in
+               '') value="$ans"
+                       ansexp="$ans";;
+               *)
+                       value=`UU/filexp $ans`
+                       case $? in
+                       0)
+                               if test "$ans" != "$value"; then
+                                       echo "(That expands to $value on this system.)"
+                               fi
+                               ;;
+                       *) value="$ans";;
+                       esac
+                       ansexp="$value"
+                       case "$exp_file" in
+                       '') value="$ans";;
+                       esac
+                       ;;
+               esac
+               case "$fullpath" in
+               true)
+                       case "$ansexp" in
+                       /*) value="$ansexp" ;;
+                       [a-zA-Z]:/*) value="$ansexp" ;;
+                       *)
+                               redo=true
+                               case "$already" in
+                               true)
+                               echo "I shall only accept a full path name, as in /bin/ls." >&4
+                               echo "Use a ! shell escape if you wish to check pathnames." >&4
+                                       ;;
+                               *)
+                               echo "Please give a full path name, starting with slash." >&4
+                                       case "$tilde" in
+                                       true)
+                               echo "Note that using ~name is ok provided it expands well." >&4
+                                               already=true
+                                               ;;
+                                       esac
+                               esac
+                               ;;
+                       esac
+                       ;;
+               esac
+               case "$redo" in
+               '')
+                       case "$type" in
+                       File)
+                               for fp in $gfpth; do
+                                       if test "X$fp" = X.; then
+                                           pf="$ansexp"
+                                       else    
+                                           pf="$fp/$ansexp"
+                                       fi
+                                       if test -f "$pf"; then
+                                               type=''
+                                       elif test -r "$pf" || (test -h "$pf") >/dev/null 2>&1
+                                       then
+                                               echo "($value is not a plain file, but that's ok.)"
+                                               type=''
+                                       fi
+                                       if test X"$type" = X; then
+                                           value="$pf"
+                                           break
+                                       fi
+                               done
+                               ;;
+                       Directory)
+                               for fp in $gfpth; do
+                                       if test "X$fp" = X.; then
+                                           dir="$ans"
+                                           direxp="$ansexp"
+                                       else    
+                                           dir="$fp/$ansexp"
+                                           direxp="$fp/$ansexp"
+                                       fi
+                                       if test -d "$direxp"; then
+                                               type=''
+                                               value="$dir"
+                                               break
+                                       fi
+                               done
+                               ;;
+                       Locate)
+                               if test -d "$ansexp"; then
+                                       echo "(Looking for $loc_file in directory $value.)"
+                                       value="$value/$loc_file"
+                                       ansexp="$ansexp/$loc_file"
+                               fi
+                               if test -f "$ansexp"; then
+                                       type=''
+                               fi
+                               case "$nopath_ok" in
+                               true)   case "$value" in
+                                       */*) ;;
+                                       *)      echo "Assuming $value will be in people's path."
+                                               type=''
+                                               ;;
+                                       esac
+                                       ;;
+                               esac
+                               ;;
+                       esac
+
+                       case "$skip" in
+                       true) type='';
+                       esac
+
+                       case "$type" in
+                       '') ;;
+                       *)
+                               if test "$fastread" = yes; then
+                                       dflt=y
+                               else
+                                       dflt=n
+                               fi
+                               rp="$what $value doesn't exist.  Use that name anyway?"
+                               . UU/myread
+                               dflt=''
+                               case "$ans" in
+                               y*) type='';;
+                               *) echo " ";;
+                               esac
+                               ;;
+                       esac
+                       ;;
+               esac
+               ;;
+       esac
+done
+cd UU
+ans="$value"
+rp="$orig_rp"
+dflt="$orig_dflt"
+rm -f getfile.ok
+test "X$gfpthkeep" != Xy && gfpth=""
+EOSC
+
+: What should the include directory be ?
+echo " "
+$echo $n "Hmm...  $c"
+dflt='/usr/include'
+incpath=''
+mips_type=''
+if $test -f /bin/mips && /bin/mips; then
+       echo "Looks like a MIPS system..."
+       $cat >usr.c <<'EOCP'
+#ifdef SYSTYPE_BSD43
+/bsd43
+#endif
+EOCP
+       if cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then
+               dflt='/bsd43/usr/include'
+               incpath='/bsd43'
+               mips_type='BSD 4.3'
+       else
+               mips_type='System V'
+       fi
+       $rm -f usr.c usr.out
+       echo "and you're compiling with the $mips_type compiler and libraries."
+       xxx_prompt=y
+       echo "exit 0" >mips
+else
+       echo "Doesn't look like a MIPS system."
+       xxx_prompt=n
+       echo "exit 1" >mips
+fi
+chmod +x mips
+$eunicefix mips
+case "$usrinc" in
+'') ;;
+*) dflt="$usrinc";;
+esac
+case "$xxx_prompt" in
+y)     fn=d/
+       echo " "
+       rp='Where are the include files you want to use?'
+       . ./getfile
+       usrinc="$ans"
+       ;;
+*)     usrinc="$dflt"
+       ;;
+esac
+
+: Set private lib path
+case "$plibpth" in
+'') if ./mips; then
+               plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
+       fi;;
+esac
+case "$libpth" in
+' ') dlist='';;
+'') dlist="$loclibpth $plibpth $glibpth";;
+*) dlist="$libpth";;
+esac
+
+: Now check and see which directories actually exist, avoiding duplicates
+libpth=''
+for xxx in $dlist
+do
+    if $test -d $xxx; then
+               case " $libpth " in
+               *" $xxx "*) ;;
+               *) libpth="$libpth $xxx";;
+               esac
+    fi
+done
+$cat <<'EOM'
+
+Some systems have incompatible or broken versions of libraries.  Among
+the directories listed in the question below, please remove any you
+know not to be holding relevant libraries, and add any that are needed.
+Say "none" for none.
+
+EOM
+case "$libpth" in
+'') dflt='none';;
+*)
+       set X $libpth
+       shift
+       dflt=${1+"$@"}
+       ;;
+esac
+rp="Directories to use for library searches?"
+. ./myread
+case "$ans" in
+none) libpth=' ';;
+*) libpth="$ans";;
+esac
+
+: compute shared library extension
+case "$so" in
+'')
+       if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then
+               dflt='sl'
+       else
+               dflt='so'
+       fi
+       ;;
+*) dflt="$so";;
+esac
+$cat <<EOM
+
+On some systems, shared libraries may be available.  Answer 'none' if
+you want to suppress searching of shared libraries for the remainder
+of this configuration.
+
+EOM
+rp='What is the file extension used for shared libraries?'
+. ./myread
+so="$ans"
+
+: Define several unixisms.
+: Hints files or command line option can be used to override them.
+: The convoluted testing is in case hints files set either the old
+: or the new name.
+case "$_exe" in
+'')    case "$exe_ext" in
+    '')        ;;
+       *)      _exe="$exe_ext" ;;
+       esac
+       ;;
+esac
+case "$_a" in
+'')    case "$lib_ext" in
+    '')        _a='.a';;
+       *)      _a="$lib_ext" ;;
+       esac
+       ;;
+esac
+case "$_o" in
+'') case "$obj_ext" in
+       '')     _o='.o';;
+       *)      _o="$obj_ext";;
+       esac
+       ;;
+esac
+case "$p_" in
+'') case "$path_sep" in
+       '')     p_=':';;
+       *)      p_="$path_sep";;
+       esac
+       ;;
+esac
+exe_ext=$_exe
+lib_ext=$_a
+obj_ext=$_o
+path_sep=$p_
+
+: Which makefile gets called first.  This is used by make depend.
+case "$firstmakefile" in
+'') 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 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
+
+: Looking for optional libraries
+echo " "
+echo "Checking for optional libraries..." >&4
+case "$libs" in
+' '|'') dflt='';;
+*) dflt="$libs";;
+esac
+case "$libswanted" in
+'') libswanted='c_s';;
+esac
+case "$usesocks" in
+"$define") libswanted="$libswanted socks5 socks5_sh" ;;
+esac
+libsfound=''
+libsfiles=''
+libsdirs=''
+libspath=''
+for thisdir in $libpth $xlibpth; do
+  test -d $thisdir && libspath="$libspath $thisdir"
+done
+for thislib in $libswanted; do
+       for thisdir in $libspath; do
+           xxx=''
+           if $test ! -f "$xxx" -a "X$ignore_versioned_solibs" = "X"; then
+               xxx=`ls $thisdir/lib$thislib.$so.[0-9] 2>/dev/null|tail -1`
+               $test -f "$xxx" && eval $libscheck
+               $test -f "$xxx" && libstyle=shared
+           fi
+           if test ! -f "$xxx"; then
+               xxx=$thisdir/lib$thislib.$so
+               $test -f "$xxx" && eval $libscheck
+               $test -f "$xxx" && libstyle=shared
+           fi  
+           if test ! -f "$xxx"; then
+               xxx=$thisdir/lib$thislib$_a
+               $test -f "$xxx" && eval $libscheck
+               $test -f "$xxx" && libstyle=static
+           fi
+           if test ! -f "$xxx"; then
+               xxx=$thisdir/$thislib$_a
+               $test -f "$xxx" && eval $libscheck
+               $test -f "$xxx" && libstyle=static
+           fi
+           if test ! -f "$xxx"; then
+               xxx=$thisdir/lib${thislib}_s$_a
+               $test -f "$xxx" && eval $libscheck
+               $test -f "$xxx" && libstyle=static
+               $test -f "$xxx" && thislib=${thislib}_s
+           fi
+           if test ! -f "$xxx"; then
+               xxx=$thisdir/Slib$thislib$_a
+               $test -f "$xxx" && eval $libscheck
+               $test -f "$xxx" && libstyle=static
+           fi
+           if $test -f "$xxx"; then
+               case "$libstyle" in
+               shared) echo "Found -l$thislib (shared)." ;;
+               static) echo "Found -l$thislib." ;;
+               *)      echo "Found -l$thislib ($libstyle)." ;;
+               esac
+               case " $dflt " in
+               *"-l$thislib "*);;
+               *) dflt="$dflt -l$thislib"
+                   libsfound="$libsfound $xxx"
+                   yyy=`basename $xxx`
+                   libsfiles="$libsfiles $yyy"
+                   yyy=`echo $xxx|$sed -e "s%/$yyy\\$%%"`
+                   case " $libsdirs " in
+                   *" $yyy "*) ;;
+                   *) libsdirs="$libsdirs $yyy" ;;
+                   esac
+                  ;;
+               esac
+               break
+           fi  
+       done
+       if $test ! -f "$xxx"; then
+           echo "No -l$thislib."
+       fi
+done
+set X $dflt
+shift
+dflt="$*"
+case "$libs" in
+'') dflt="$dflt";;
+*) dflt="$libs";;
+esac
+case "$dflt" in
+' '|'') dflt='none';;
+esac
+
+$cat <<EOM
+
+In order to compile $package on your machine, a number of libraries
+are usually needed.  Include any other special libraries here as well.
+Say "none" for none.  The default list is almost always right.
+EOM
+
+echo " "
+rp="What libraries to use?"
+. ./myread
+case "$ans" in
+none) libs=' ';;
+*) libs="$ans";;
+esac
+
+: determine optimization, if desired, or use for debug flag also
+case "$optimize" in
+' '|$undef) dflt='none';;
+'') dflt='-O';;
+*) dflt="$optimize";;
+esac
+$cat <<EOH
+
+By default, $package compiles with the -O flag to use the optimizer.
 Alternately, you might want to use the symbolic debugger, which uses
 the -g flag (on traditional Unix systems).  Either flag can be
 specified here.  To use neither flag, specify the word "none".
 
-EOH
-rp="What optimizer/debugger flag should be used?"
-. ./myread
-optimize="$ans"
-case "$optimize" in
-'none') optimize=" ";;
+EOH
+rp="What optimizer/debugger flag should be used?"
+. ./myread
+optimize="$ans"
+case "$optimize" in
+'none') optimize=" ";;
+esac
+
+dflt=''
+: We will not override a previous value, but we might want to
+: augment a hint file
+case "$hint" in
+default|recommended)
+       case "$gccversion" in
+       1*) dflt='-fpcc-struct-return' ;;
+       esac
+       case "$optimize" in
+       *-g*) dflt="$dflt -DDEBUGGING";;
+       esac
+       case "$gccversion" in
+       2*) if test -d /etc/conf/kconfig.d &&
+                       $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
+               then
+                       dflt="$dflt -posix"
+               fi
+               ;;
+       esac
+       case "$gccversion" in
+       1*) ;;
+       2.[0-8]*) ;;
+       ?*)     echo " "
+               echo "Checking if your compiler accepts -fno-strict-aliasing" 2>&1
+               echo 'int main(void) { return 0; }' > gcctest.c
+               if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then
+                       echo "Yes, it does." 2>&1
+                       case "$ccflags" in
+                       *strict-aliasing*) 
+                               echo "Leaving current flags $ccflags alone." 2>&1
+                               ;;
+                       *) dflt="$dflt -fno-strict-aliasing" ;;
+                       esac
+               else
+                       echo "Nope, it doesn't, but that's ok." 2>&1
+               fi
+               ;;
+       esac
+       ;;
+esac
+
+case "$mips_type" in
+*BSD*|'') inclwanted="$locincpth $usrinc";;
+*) inclwanted="$locincpth $inclwanted $usrinc/bsd";;
+esac
+for thisincl in $inclwanted; do
+       if $test -d $thisincl; then
+               if $test x$thisincl != x$usrinc; then
+                       case "$dflt" in
+                        *" -I$thisincl "*);;
+                        *) dflt="$dflt -I$thisincl ";;
+                       esac
+               fi
+       fi
+done
+
+inctest='if $contains $2 $usrinc/$1 >/dev/null 2>&1; then
+       xxx=true;
+elif $contains $2 $usrinc/sys/$1 >/dev/null 2>&1; then
+       xxx=true;
+else
+       xxx=false;
+fi;
+if $xxx; then
+       case "$dflt" in
+       *$2*);;
+       *) dflt="$dflt -D$2";;
+       esac;
+fi'
+
+set signal.h LANGUAGE_C; eval $inctest
+
+case "$usesocks" in
+$define)
+       ccflags="$ccflags -DSOCKS"
+       ;;
+esac
+
+case "$hint" in
+default|recommended) dflt="$ccflags $dflt" ;;
+*) dflt="$ccflags";;
+esac
+
+case "$dflt" in
+''|' ') dflt=none;;
+esac
+
+$cat <<EOH
+
+Your C compiler may want other flags.  For this question you should include
+-I/whatever and -DWHATEVER flags and any other flags used by the C compiler,
+but you should NOT include libraries or ld flags like -lwhatever.  If you
+want $package to honor its debug switch, you should include -DDEBUGGING here.
+Your C compiler might also need additional flags, such as -D_POSIX_SOURCE.
+
+To use no flags, specify the word "none".
+
+EOH
+set X $dflt
+shift
+dflt=${1+"$@"}
+rp="Any additional cc flags?"
+. ./myread
+case "$ans" in
+none) ccflags='';;
+*) ccflags="$ans";;
+esac
+
+: the following weeds options from ccflags that are of no interest to cpp
+cppflags="$ccflags"
+case "$gccversion" in
+1*) cppflags="$cppflags -D__GNUC__"
+esac
+case "$mips_type" in
+'');;
+*BSD*) cppflags="$cppflags -DSYSTYPE_BSD43";;
+esac
+case "$cppflags" in
+'');;
+*)
+       echo " "
+       echo "Let me guess what the preprocessor flags are..." >&4
+       set X $cppflags
+       shift
+       cppflags=''
+       $cat >cpp.c <<'EOM'
+#define BLURFL foo
+
+BLURFL xx LFRULB
+EOM
+       previous=''
+       for flag in $*
+       do
+               case "$flag" in
+               -*) ftry="$flag";;
+               *) ftry="$previous $flag";;
+               esac
+               if $cppstdin -DLFRULB=bar $cppflags $ftry $cppminus <cpp.c \
+                       >cpp1.out 2>/dev/null && \
+                       $cpprun -DLFRULB=bar $cppflags $ftry $cpplast <cpp.c \
+                       >cpp2.out 2>/dev/null && \
+                       $contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \
+                       $contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1
+               then
+                       cppflags="$cppflags $ftry"
+                       previous=''
+               else
+                       previous="$flag"
+               fi
+       done
+       set X $cppflags
+       shift
+       cppflags=${1+"$@"}
+       case "$cppflags" in
+       *-*)  echo "They appear to be: $cppflags";;
+       esac
+       $rm -f cpp.c cpp?.out
+       ;;
+esac
+
+: flags used in final linking phase
+case "$ldflags" in
+'') if ./venix; then
+               dflt='-i -z'
+       else
+               dflt=''
+       fi
+       case "$ccflags" in
+       *-posix*) dflt="$dflt -posix" ;;
+       esac
+       ;;
+*) dflt="$ldflags";;
+esac
+
+: Try to guess additional flags to pick up local libraries.
+for thislibdir in $libpth; do
+       case " $loclibpth " in
+       *" $thislibdir "*)
+               case "$dflt " in 
+               *"-L$thislibdir "*) ;;
+               *)  dflt="$dflt -L$thislibdir" ;;
+               esac
+               ;;
+       esac
+done
+
+case "$dflt" in
+'') dflt='none' ;;
+esac
+
+$cat <<EOH
+
+Your C linker may need flags.  For this question you should
+include -L/whatever and any other flags used by the C linker, but you
+should NOT include libraries like -lwhatever.
+
+Make sure you include the appropriate -L/path flags if your C linker
+does not normally search all of the directories you specified above,
+namely
+       $libpth
+To use no flags, specify the word "none".
+
+EOH
+
+rp="Any additional ld flags (NOT including libraries)?"
+. ./myread
+case "$ans" in
+none) ldflags='';;
+*) ldflags="$ans";;
+esac
+rmlist="$rmlist pdp11"
+
+: coherency check
+echo " "
+echo "Checking your choice of C compiler and flags for coherency..." >&4
+$cat > try.c <<'EOF'
+#include <stdio.h>
+int main() { printf("Ok\n"); exit(0); }
+EOF
+set X $cc $optimize $ccflags -o try $ldflags try.c $libs
+shift
+$cat >try.msg <<'EOM'
+I've tried to compile and run the following simple program:
+
+EOM
+$cat try.c >> try.msg
+
+$cat >> try.msg <<EOM
+
+I used the command:
+
+       $*
+       ./try
+
+and I got the following output:
+
+EOM
+dflt=y
+if sh -c "$cc $optimize $ccflags -o try $ldflags try.c $libs" >>try.msg 2>&1; then
+       if sh -c './try' >>try.msg 2>&1; then
+               xxx=`./try`
+               case "$xxx" in
+               "Ok") dflt=n ;;
+               *)      echo 'The program compiled OK, but produced no output.' >> try.msg
+                       case " $libs " in
+                       *" -lsfio "*)
+                               cat >> try.msg <<'EOQS'
+If $libs contains -lsfio, and sfio is mis-configured, then it
+sometimes (apparently) runs and exits with a 0 status, but with no
+output!  It may have to do with sfio's use of _exit vs. exit.
+
+EOQS
+                               rp="You have a big problem.  Shall I abort Configure"
+                               dflt=y
+                               ;;
+                       esac
+                       ;;
+               esac
+       else
+               echo "The program compiled OK, but exited with status $?." >>try.msg
+               rp="You have a problem.  Shall I abort Configure"
+               dflt=y
+       fi
+else
+       echo "I can't compile the test program." >>try.msg
+       rp="You have a BIG problem.  Shall I abort Configure"
+       dflt=y
+fi
+case "$dflt" in
+y)
+       $cat try.msg >&4
+       case "$knowitall" in
+       '')
+               echo "(The supplied flags or libraries might be incorrect.)"
+               ;;
+       *) dflt=n;;
+       esac
+       echo " "
+       . ./myread
+       case "$ans" in
+       n*|N*) ;;
+       *)      echo "Ok.  Stopping Configure." >&4
+               exit 1
+               ;;
+       esac
+       ;;
+n) echo "OK, that should do.";;
+esac
+$rm -f try try.* core
+
+: define an is-a-typedef? function
+typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
+case "$inclist" in
+"") inclist="sys/types.h";;
+esac;
+eval "varval=\$$var";
+case "$varval" in
+"")
+       $rm -f temp.c;
+       for inc in $inclist; do
+               echo "#include <$inc>" >>temp.c;
+       done;
+       echo "#ifdef $type" >> temp.c;
+       echo "printf(\"We have $type\");" >> temp.c;
+       echo "#endif" >> temp.c;
+       $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
+       if $contains $type temp.E >/dev/null 2>&1; then
+               eval "$var=\$type";
+       else
+               eval "$var=\$def";
+       fi;
+       $rm -f temp.?;;
+*) eval "$var=\$varval";;
+esac'
+
+: define an is-a-typedef? function that prompts if the type is not available.
+typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
+case "$inclist" in
+"") inclist="sys/types.h";;
+esac;
+eval "varval=\$$var";
+case "$varval" in
+"")
+       $rm -f temp.c;
+       for inc in $inclist; do
+               echo "#include <$inc>" >>temp.c;
+       done;
+       echo "#ifdef $type" >> temp.c;
+       echo "printf(\"We have $type\");" >> temp.c;
+       echo "#endif" >> temp.c;
+       $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
+       echo " " ;
+       echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
+       if $contains $type temp.E >/dev/null 2>&1; then
+               echo "$type found." >&4;
+               eval "$var=\$type";
+       else
+               echo "$type NOT found." >&4;
+               dflt="$def";
+               . ./myread ;
+               eval "$var=\$ans";
+       fi;
+       $rm -f temp.?;;
+*) eval "$var=\$varval";;
+esac'
+
+: define a shorthand compile call
+compile='
+mc_file=$1;
+shift;
+$cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs > /dev/null 2>&1;'
+: define a shorthand compile call for compilations that should be ok.
+compile_ok='
+mc_file=$1;
+shift;
+$cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs;'
+
+: check for lengths of integral types
+echo " "
+case "$intsize" in
+'')
+       echo "Checking to see how big your integers are..." >&4
+       $cat >intsize.c <<'EOCP'
+#include <stdio.h>
+int main()
+{
+       printf("intsize=%d;\n", (int)sizeof(int));
+       printf("longsize=%d;\n", (int)sizeof(long));
+       printf("shortsize=%d;\n", (int)sizeof(short));
+       exit(0);
+}
+EOCP
+       set intsize
+       if eval $compile_ok && ./intsize > /dev/null; then
+               eval `./intsize`
+               echo "Your integers are $intsize bytes long."
+               echo "Your long integers are $longsize bytes long."
+               echo "Your short integers are $shortsize bytes long."
+       else
+               $cat >&4 <<EOM
+!
+Help! I can't compile and run the intsize test program: please enlighten me!
+(This is probably a misconfiguration in your system or libraries, and
+you really ought to fix it.  Still, I'll try anyway.)
+!
+EOM
+               dflt=4
+               rp="What is the size of an integer (in bytes)?"
+               . ./myread
+               intsize="$ans"
+               dflt=$intsize
+               rp="What is the size of a long integer (in bytes)?"
+               . ./myread
+               longsize="$ans"
+               dflt=2
+               rp="What is the size of a short integer (in bytes)?"
+               . ./myread
+               shortsize="$ans"
+       fi
+       ;;
 esac
+$rm -f intsize intsize.*
 
-dflt=''
-: We will not override a previous value, but we might want to
-: augment a hint file
-case "$hint" in
-default|recommended)
-       case "$gccversion" in
-       1*) dflt='-fpcc-struct-return' ;;
-       esac
-       case "$optimize" in
-       *-g*) dflt="$dflt -DDEBUGGING";;
-       esac
-       case "$gccversion" in
-       2*) if test -d /etc/conf/kconfig.d &&
-                       $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
-               then
-                       dflt="$dflt -posix"
-               fi
+: see what type lseek is declared as in the kernel
+rp="What is the type used for lseek's offset on this system?"
+set off_t lseektype long stdio.h sys/types.h
+eval $typedef_ask
+
+echo " "
+echo "Checking to see how big your file offsets are..." >&4
+$cat >try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main()
+{
+    printf("%d\n", (int)sizeof($lseektype));
+    return(0); 
+}
+EOCP
+set try
+if eval $compile_ok; then
+       lseeksize=`./try`
+       echo "Your file offsets are $lseeksize bytes long."
+else
+       dflt=$longsize
+       echo " "
+       echo "(I can't seem to compile the test program.  Guessing...)"
+       rp="What is the size of your file offsets (in bytes)?"
+       . ./myread
+       lseeksize="$ans"
+fi
+$rm -f try.c try
+
+: see what type file positions are declared as in the library
+rp="What is the type for file position used by fsetpos()?"
+set fpos_t fpostype long stdio.h sys/types.h
+eval $typedef_ask
+
+echo " "
+case "$fpostype" in
+*_t) zzz="$fpostype"   ;;
+*)   zzz="fpos_t"      ;;
+esac
+echo "Checking the size of $zzz..." >&4 
+cat > try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main() {
+    printf("%d\n", (int)sizeof($fpostype));
+    exit(0);
+}
+EOCP
+set try
+if eval $compile_ok; then
+       yyy=`./try`
+       case "$yyy" in
+       '')     fpossize=4
+               echo "(I can't execute the test program--guessing $fpossize.)" >&4
+               ;;
+       *)      fpossize=$yyy
+               echo "Your $zzz is $fpossize bytes long."
                ;;
        esac
-       case "$gccversion" in
-       1*) ;;
-       2.[0-8]*) ;;
-       ?*)     echo " "
-               echo "Checking if your compiler accepts -fno-strict-aliasing" 2>&1
-               echo 'int main(void) { return 0; }' > gcctest.c
-               if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then
-                       echo "Yes, it does." 2>&1
-                       case "$ccflags" in
-                       *strict-aliasing*) 
-                               echo "Leaving current flags $ccflags alone." 2>&1
+else
+       dflt="$longsize"
+       echo " " >&4
+       echo "(I can't compile the test program.  Guessing...)" >&4
+       rp="What is the size of your file positions (in bytes)?"
+       . ./myread
+       fpossize="$ans"
+fi
+
+
+
+# Backward compatibility (uselfs is deprecated).
+case "$uselfs" in
+"$define"|true|[yY]*)
+       cat <<EOM >&4
+
+*** Configure -Duselfs is deprecated, using -Duselargefiles instead.
+EOM
+       uselargefiles="$define"
+       ;;
+esac                          
+
+case "$lseeksize:$fpossize" in
+8:8) cat <<EOM
+
+You can have files larger than 2 gigabytes.
+EOM
+   val="$define" ;;
+*)    case "$uselargefiles" in
+   "$undef"|false|[nN]*) dflt='n' ;;
+   *)  dflt='y' ;;
+   esac
+   cat <<EOM
+
+Perl can be built to understand large files (files larger than 2 gigabytes)
+on some systems.  To do so, Configure can be run with -Duselargefiles.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+   rp='Try to understand large files, if available?'
+   . ./myread
+   case "$ans" in
+   y|Y)        val="$define" ;;
+   *)          val="$undef"  ;;
+   esac
+   ;;
+esac
+set uselargefiles
+eval $setvar
+case "$uselargefiles" in
+"$define")
+: Look for a hint-file generated 'call-back-unit'.  If the
+: user has specified that a large files perl is to be built,
+: we may need to set or change some other defaults.
+       if $test -f uselargefiles.cbu; then
+               echo "Your platform has some specific hints for large file builds, using them..."
+               . ./uselargefiles.cbu
+               echo " "
+               echo "Rechecking to see how big your file offsets are..." >&4
+               $cat >try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main()
+{
+    printf("%d\n", (int)sizeof($lseektype));
+    return(0); 
+}
+EOCP
+               set try
+               if eval $compile_ok; then
+                       lseeksize=`./try`
+                       $echo "Your file offsets are now $lseeksize bytes long."
+               else
+                       dflt="$lseeksize"
+                       echo " "
+                       echo "(I can't seem to compile the test program.  Guessing...)"
+                       rp="What is the size of your file offsets (in bytes)?"
+                       . ./myread
+                       lseeksize="$ans"
+               fi
+               case "$fpostype" in
+               *_t) zzz="$fpostype"    ;;
+               *)   zzz="fpos_t"       ;;
+               esac
+               $echo $n "Rechecking the size of $zzz...$c" >&4 
+               $cat > try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main() {
+    printf("%d\n", (int)sizeof($fpostype));
+    exit(0);
+}
+EOCP
+               set try
+               if eval $compile_ok; then
+                       yyy=`./try`
+                       dflt="$lseeksize"
+                       case "$yyy" in
+                       '')     echo " "
+                               echo "(I can't execute the test program--guessing $fpossize.)" >&4
+                               ;;
+                       *)      fpossize=$yyy
+                               echo " $fpossize bytes." >&4
                                ;;
-                       *) dflt="$dflt -fno-strict-aliasing" ;;
                        esac
                else
-                       echo "Nope, it doesn't, but that's ok." 2>&1
-               fi
-               ;;
-       esac
-       ;;
-esac
-
-case "$mips_type" in
-*BSD*|'') inclwanted="$locincpth $usrinc";;
-*) inclwanted="$locincpth $inclwanted $usrinc/bsd";;
-esac
-for thisincl in $inclwanted; do
-       if $test -d $thisincl; then
-               if $test x$thisincl != x$usrinc; then
-                       case "$dflt" in
-                       *$thisincl*);;
-                       *) dflt="$dflt -I$thisincl";;
-                       esac
+                       dflt="$fpossize"
+                       echo " "
+                       echo "(I can't compile the test program.  Guessing...)" >&4
+                       rp="What is the size of your file positions (in bytes)?"
+                       . ./myread
+                       fpossize="$ans"
                fi
+               $rm -f try.c try
        fi
-done
-
-inctest='if $contains $2 $usrinc/$1 >/dev/null 2>&1; then
-       xxx=true;
-elif $contains $2 $usrinc/sys/$1 >/dev/null 2>&1; then
-       xxx=true;
-else
-       xxx=false;
-fi;
-if $xxx; then
-       case "$dflt" in
-       *$2*);;
-       *) dflt="$dflt -D$2";;
-       esac;
-fi'
-
-set signal.h LANGUAGE_C; eval $inctest
-
-case "$usesocks" in
-$define)
-       ccflags="$ccflags -DSOCKS"
        ;;
 esac
 
-case "$hint" in
-default|recommended) dflt="$ccflags $dflt" ;;
-*) dflt="$ccflags";;
-esac
 
-case "$dflt" in
-''|' ') dflt=none;;
+case "$usemorebits" in
+"$define"|true|[yY]*)
+       use64bitint="$define"
+       uselongdouble="$define"
+       usemorebits="$define"
+       ;;
+*)     usemorebits="$undef"
+       ;;
 esac
-$cat <<EOH
-
-Your C compiler may want other flags.  For this question you should include
--I/whatever and -DWHATEVER flags and any other flags used by the C compiler,
-but you should NOT include libraries or ld flags like -lwhatever.  If you
-want $package to honor its debug switch, you should include -DDEBUGGING here.
-Your C compiler might also need additional flags, such as -D_POSIX_SOURCE.
-
-To use no flags, specify the word "none".
 
-EOH
-set X $dflt
-shift
-dflt=${1+"$@"}
-rp="Any additional cc flags?"
-. ./myread
-case "$ans" in
-none) ccflags='';;
-*) ccflags="$ans";;
-esac
 
-: the following weeds options from ccflags that are of no interest to cpp
-cppflags="$ccflags"
-case "$gccversion" in
-1*) cppflags="$cppflags -D__GNUC__"
-esac
-case "$mips_type" in
-'');;
-*BSD*) cppflags="$cppflags -DSYSTYPE_BSD43";;
-esac
-case "$cppflags" in
-'');;
-*)
-       echo " "
-       echo "Let me guess what the preprocessor flags are..." >&4
-       set X $cppflags
-       shift
-       cppflags=''
-       $cat >cpp.c <<'EOM'
-#define BLURFL foo
+case "$uselonglong" in
+"$define"|true|[yY]*)
+       cat <<EOM >&4
 
-BLURFL xx LFRULB
+*** Configure -Duselonglong is deprecated, using -Duse64bitint instead.
 EOM
-       previous=''
-       for flag in $*
-       do
-               case "$flag" in
-               -*) ftry="$flag";;
-               *) ftry="$previous $flag";;
-               esac
-               if $cppstdin -DLFRULB=bar $cppflags $ftry $cppminus <cpp.c \
-                       >cpp1.out 2>/dev/null && \
-                       $cpprun -DLFRULB=bar $cppflags $ftry $cpplast <cpp.c \
-                       >cpp2.out 2>/dev/null && \
-                       $contains 'foo.*xx.*bar' cpp1.out >/dev/null 2>&1 && \
-                       $contains 'foo.*xx.*bar' cpp2.out >/dev/null 2>&1
-               then
-                       cppflags="$cppflags $ftry"
-                       previous=''
-               else
-                       previous="$flag"
-               fi
-       done
-       set X $cppflags
-       shift
-       cppflags=${1+"$@"}
-       case "$cppflags" in
-       *-*)  echo "They appear to be: $cppflags";;
-       esac
-       $rm -f cpp.c cpp?.out
+       use64bitint="$define"
        ;;
-esac
+esac                          
+case "$use64bits" in
+"$define"|true|[yY]*)
+       cat <<EOM >&4
 
-: flags used in final linking phase
-case "$ldflags" in
-'') if ./venix; then
-               dflt='-i -z'
-       else
-               dflt=''
-       fi
-       case "$ccflags" in
-       *-posix*) dflt="$dflt -posix" ;;
-       esac
+*** Configure -Duse64bits is deprecated, using -Duse64bitint instead.
+EOM
+       use64bitint="$define"
        ;;
-*) dflt="$ldflags";;
-esac
-
-: Try to guess additional flags to pick up local libraries.
-for thislibdir in $libpth; do
-       case " $loclibpth " in
-       *" $thislibdir "*)
-               case "$dflt " in 
-               *"-L$thislibdir "*) ;;
-               *)  dflt="$dflt -L$thislibdir" ;;
-               esac
-               ;;
-       esac
-done
-
-case "$dflt" in
-'') dflt='none' ;;
-esac
+esac                          
+case "$use64bitints" in
+"$define"|true|[yY]*)
+       cat <<EOM >&4
 
-$cat <<EOH
+*** There is no Configure -Duse64bitints, using -Duse64bitint instead.
+EOM
+       use64bitint="$define"
+       ;;
+esac                          
+case "$use64bitsint" in
+"$define"|true|[yY]*)
+       cat <<EOM >&4
 
-Your C linker may need flags.  For this question you should
-include -L/whatever and any other flags used by the C linker, but you
-should NOT include libraries like -lwhatever.
+*** There is no Configure -Duse64bitsint, using -Duse64bitint instead.
+EOM
+       use64bitint="$define"
+       ;;
+esac                          
+case "$uselonglongs" in
+"$define"|true|[yY]*)
+       cat <<EOM >&4
 
-Make sure you include the appropriate -L/path flags if your C linker
-does not normally search all of the directories you specified above,
-namely
-       $libpth
-To use no flags, specify the word "none".
+*** There is no Configure -Duselonglongs, using -Duse64bitint instead.
+EOM
+       use64bitint="$define"
+       ;;
+esac                          
+case "$use64bitsall" in
+"$define"|true|[yY]*)
+       cat <<EOM >&4
 
-EOH
+*** There is no Configure -Duse64bitsall, using -Duse64bitall instead.
+EOM
+       use64bitall="$define"
+       ;;
+esac                          
 
-rp="Any additional ld flags (NOT including libraries)?"
-. ./myread
-case "$ans" in
-none) ldflags='';;
-*) ldflags="$ans";;
+case "$ccflags" in
+*-DUSE_LONG_LONG*|*-DUSE_64_BIT_INT*|*-DUSE_64_BIT_ALL*) use64bitint="$define";;
 esac
-rmlist="$rmlist pdp11"
-
-: coherency check
-echo " "
-echo "Checking your choice of C compiler and flags for coherency..." >&4
-$cat > try.c <<'EOF'
-#include <stdio.h>
-int main() { printf("Ok\n"); exit(0); }
-EOF
-set X $cc $optimize $ccflags -o try $ldflags try.c $libs
-shift
-$cat >try.msg <<'EOM'
-I've tried to compile and run the following simple program:
+case "$use64bitall" in
+"$define"|true|[yY]*) use64bitint="$define" ;;
+esac
+
+case "$longsize" in
+8) cat <<EOM
 
+You have natively 64-bit long integers.
 EOM
-$cat try.c >> try.msg
+   val="$define"
+   ;;
+*) case "$use64bitint" in
+   "$define"|true|[yY]*) dflt='y';;
+   *) dflt='n';;
+   esac
+   cat <<EOM
 
-$cat >> try.msg <<EOM
+Perl can be built to take advantage of 64-bit integer types
+on some systems.  To do so, Configure can be run with -Duse64bitint.
+Choosing this option will most probably introduce binary incompatibilities.
 
-I used the command:
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+   rp='Try to use 64-bit integers, if available?'
+   . ./myread
+   case "$ans" in
+   [yY]*) val="$define" ;;
+   *)     val="$undef"  ;;
+   esac
+   ;;
+esac
+set use64bitint
+eval $setvar
 
-       $*
-       ./try
+case "$use64bitall" in
+"$define"|true|[yY]*) dflt='y' ;;
+*) case "$longsize" in
+   8) dflt='y' ;;
+   *) dflt='n' ;;
+   esac
+   ;;
+esac   
+cat <<EOM
 
-and I got the following output:
+You may also choose to try maximal 64-bitness.  It means using as much
+64-bitness as possible on the platform.  This in turn means even more
+binary incompatibilities.  On the other hand, your platform may not
+have any more 64-bitness available than what you already have chosen.
 
+If this doesn't make any sense to you, just accept the default '$dflt'.
 EOM
-dflt=y
-if sh -c "$cc $optimize $ccflags -o try $ldflags try.c $libs" >>try.msg 2>&1; then
-       if sh -c './try' >>try.msg 2>&1; then
-               xxx=`./try`
-               case "$xxx" in
-               "Ok") dflt=n ;;
-               *)      echo 'The program compiled OK, but produced no output.' >> try.msg
-                       case " $libs " in
-                       *" -lsfio "*)
-                               cat >> try.msg <<'EOQS'
-If $libs contains -lsfio, and sfio is mis-configured, then it
-sometimes (apparently) runs and exits with a 0 status, but with no
-output!  It may have to do with sfio's use of _exit vs. exit.
+rp='Try to use maximal 64-bit support, if available?'
+. ./myread
+case "$ans" in
+[yY]*) val="$define" ;;
+*)     val="$undef"  ;;
+esac
+set use64bitall
+eval $setvar
+case "$use64bitall" in
+"$define")
+       case "$use64bitint" in
+       "$undef")
+               cat <<EOM
 
-EOQS
-                               rp="You have a big problem.  Shall I abort Configure"
-                               dflt=y
-                               ;;
-                       esac
-                       ;;
-               esac
-       else
-               echo "The program compiled OK, but exited with status $?." >>try.msg
-               rp="You have a problem.  Shall I abort Configure"
-               dflt=y
-       fi
-else
-       echo "I can't compile the test program." >>try.msg
-       rp="You have a BIG problem.  Shall I abort Configure"
-       dflt=y
-fi
-case "$dflt" in
-y)
-       $cat try.msg >&4
-       case "$knowitall" in
-       '')
-               echo "(The supplied flags or libraries might be incorrect.)"
-               ;;
-       *) dflt=n;;
-       esac
-       echo " "
-       . ./myread
-       case "$ans" in
-       n*|N*) ;;
-       *)      echo "Ok.  Stopping Configure." >&4
-               exit 1
-               ;;
+Since you have chosen a maximally 64-bit build, I'm also turning on
+the use of 64-bit integers.
+EOM
+               use64bitint="$define" ;;
        esac
        ;;
-n) echo "OK, that should do.";;
 esac
-$rm -f try try.* core
-
-: define an is-a-typedef? function
-typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
-case "$inclist" in
-"") inclist="sys/types.h";;
-esac;
-eval "varval=\$$var";
-case "$varval" in
-"")
-       $rm -f temp.c;
-       for inc in $inclist; do
-               echo "#include <$inc>" >>temp.c;
-       done;
-       echo "#ifdef $type" >> temp.c;
-       echo "printf(\"We have $type\");" >> temp.c;
-       echo "#endif" >> temp.c;
-       $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
-       if $contains $type temp.E >/dev/null 2>&1; then
-               eval "$var=\$type";
-       else
-               eval "$var=\$def";
-       fi;
-       $rm -f temp.?;;
-*) eval "$var=\$varval";;
-esac'
-
-: define an is-a-typedef? function that prompts if the type is not available.
-typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
-case "$inclist" in
-"") inclist="sys/types.h";;
-esac;
-eval "varval=\$$var";
-case "$varval" in
-"")
-       $rm -f temp.c;
-       for inc in $inclist; do
-               echo "#include <$inc>" >>temp.c;
-       done;
-       echo "#ifdef $type" >> temp.c;
-       echo "printf(\"We have $type\");" >> temp.c;
-       echo "#endif" >> temp.c;
-       $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
-       echo " " ;
-       echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
-       if $contains $type temp.E >/dev/null 2>&1; then
-               echo "$type found." >&4;
-               eval "$var=\$type";
-       else
-               echo "$type NOT found." >&4;
-               dflt="$def";
-               . ./myread ;
-               eval "$var=\$ans";
-       fi;
-       $rm -f temp.?;;
-*) eval "$var=\$varval";;
-esac'
-
-: define a shorthand compile call
-compile='
-mc_file=$1;
-shift;
-$cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs > /dev/null 2>&1;'
-: define a shorthand compile call for compilations that should be ok.
-compile_ok='
-mc_file=$1;
-shift;
-$cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs;'
 
-: check for lengths of integral types
-echo " "
-case "$intsize" in
-'')
-       echo "Checking to see how big your integers are..." >&4
-       $cat >intsize.c <<'EOCP'
-#include <stdio.h>
-int main()
-{
-       printf("intsize=%d;\n", (int)sizeof(int));
-       printf("longsize=%d;\n", (int)sizeof(long));
-       printf("shortsize=%d;\n", (int)sizeof(short));
-       exit(0);
-}
-EOCP
-       set intsize
-       if eval $compile_ok && ./intsize > /dev/null; then
-               eval `./intsize`
-               echo "Your integers are $intsize bytes long."
-               echo "Your long integers are $longsize bytes long."
-               echo "Your short integers are $shortsize bytes long."
-       else
-               $cat >&4 <<EOM
-!
-Help! I can't compile and run the intsize test program: please enlighten me!
-(This is probably a misconfiguration in your system or libraries, and
-you really ought to fix it.  Still, I'll try anyway.)
-!
-EOM
-               dflt=4
-               rp="What is the size of an integer (in bytes)?"
-               . ./myread
-               intsize="$ans"
-               dflt=$intsize
-               rp="What is the size of a long integer (in bytes)?"
-               . ./myread
-               longsize="$ans"
-               dflt=2
-               rp="What is the size of a short integer (in bytes)?"
-               . ./myread
-               shortsize="$ans"
+case "$use64bitint" in
+"$define"|true|[yY]*)
+: Look for a hint-file generated 'call-back-unit'.  If the
+: user has specified that a 64-bit perl is to be built,
+: we may need to set or change some other defaults.
+       if $test -f use64bitint.cbu; then
+               echo "Your platform has some specific hints for 64-bit integers, using them..."
+               . ./use64bitint.cbu
        fi
+       case "$longsize" in
+       4) case "$archname64" in
+          '') archname64=64int ;;
+          esac
+          ;;
+       esac
        ;;
 esac
-$rm -f intsize intsize.*
 
-: see what type lseek is declared as in the kernel
-rp="What is the type used for lseek's offset on this system?"
-set off_t lseektype long stdio.h sys/types.h
-eval $typedef_ask
+case "$use64bitall" in
+"$define"|true|[yY]*)
+: Look for a hint-file generated 'call-back-unit'.  If the
+: user has specified that a maximally 64-bit perl is to be built,
+: we may need to set or change some other defaults.
+       if $test -f use64bitall.cbu; then
+               echo "Your platform has some specific hints for 64-bit builds, using them..."
+               . ./use64bitall.cbu
+       fi
+       case "$longsize" in
+       4) case "$archname64" in
+          ''|64int) archname64=64all ;;
+          esac
+          ;;
+       esac
+       ;;
+esac
 
 echo " "
-echo "Checking to see how big your file offsets are..." >&4
-$cat >try.c <<EOCP
-#include <sys/types.h>
+echo "Checking for GNU C Library..." >&4
+cat >gnulibc.c <<EOM
 #include <stdio.h>
 int main()
 {
-    printf("%d\n", (int)sizeof($lseektype));
-    return(0); 
+#ifdef __GLIBC__
+    exit(0);
+#else
+    exit(1);
+#endif
 }
-EOCP
-set try
-if eval $compile_ok; then
-       lseeksize=`./try`
-       echo "Your file offsets are $lseeksize bytes long."
+EOM
+set gnulibc
+if eval $compile_ok && ./gnulibc; then
+       val="$define"
+       echo "You are using the GNU C Library"
 else
-       dflt=$longsize
-       echo " "
-       echo "(I can't seem to compile the test program.  Guessing...)"
-       rp="What is the size of your file offsets (in bytes)?"
-       . ./myread
-       lseeksize="$ans"
+       val="$undef"
+       echo "You are not using the GNU C Library"
 fi
-$rm -f try.c try
+$rm -f gnulibc*
+set d_gnulibc
+eval $setvar
 
-: see what type file positions are declared as in the library
-rp="What is the type for file position used by fsetpos()?"
-set fpos_t fpostype long stdio.h sys/types.h
-eval $typedef_ask
+: see if nm is to be used to determine whether a symbol is defined or not
+case "$usenm" in
+'')
+       dflt=''
+       case "$d_gnulibc" in
+       "$define")
+               echo " "
+               echo "nm probably won't work on the GNU C Library." >&4
+               dflt=n
+               ;;
+       esac
+       case "$dflt" in
+       '') 
+               if $test "$osname" = aix -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
+                       dflt=n
+               fi
+               ;;
+       esac
+       case "$dflt" in
+       '') dflt=`$egrep 'inlibc|csym' $rsrc/Configure | wc -l 2>/dev/null`
+               if $test $dflt -gt 20; then
+                       dflt=y
+               else
+                       dflt=n
+               fi
+               ;;
+       esac
+       ;;
+*)
+       case "$usenm" in
+       true|$define) dflt=y;;
+       *) dflt=n;;
+       esac
+       ;;
+esac
+$cat <<EOM
+
+I can use $nm to extract the symbols from your C libraries. This
+is a time consuming task which may generate huge output on the disk (up
+to 3 megabytes) but that should make the symbols extraction faster. The
+alternative is to skip the 'nm' extraction part and to compile a small
+test program instead to determine whether each symbol is present. If
+you have a fast C compiler and/or if your 'nm' output cannot be parsed,
+this may be the best solution.
+
+You probably shouldn't let me use 'nm' if you are using the GNU C Library.
+
+EOM
+rp="Shall I use $nm to extract C symbols from the libraries?"
+. ./myread
+case "$ans" in
+[Nn]*) usenm=false;;
+*) usenm=true;;
+esac
+
+runnm=$usenm
+case "$reuseval" in
+true) runnm=false;;
+esac
+
+: nm options which may be necessary
+case "$nm_opt" in
+'') if $test -f /mach_boot; then
+               nm_opt=''       # Mach
+       elif $test -d /usr/ccs/lib; then
+               nm_opt='-p'     # Solaris (and SunOS?)
+       elif $test -f /dgux; then
+               nm_opt='-p'     # DG-UX
+       elif $test -f /lib64/rld; then
+               nm_opt='-p'     # 64-bit Irix
+       else
+               nm_opt=''
+       fi;;
+esac
+
+: nm options which may be necessary for shared libraries but illegal
+: for archive libraries.  Thank you, Linux.
+case "$nm_so_opt" in
+'')    case "$myuname" in
+       *linux*)
+               if $nm --help | $grep 'dynamic' > /dev/null 2>&1; then
+                       nm_so_opt='--dynamic'
+               fi
+               ;;
+       esac
+       ;;
+esac
 
+case "$runnm" in
+true)
+: get list of predefined functions in a handy place
 echo " "
-case "$fpostype" in
-*_t) zzz="$fpostype"   ;;
-*)   zzz="fpos_t"      ;;
+case "$libc" in
+'') libc=unknown
+       case "$libs" in
+       *-lc_s*) libc=`./loc libc_s$_a $libc $libpth`
+       esac
+       ;;
 esac
-echo "Checking the size of $zzz..." >&4 
-cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
-    printf("%d\n", (int)sizeof($fpostype));
-    exit(0);
-}
-EOCP
-set try
-if eval $compile_ok; then
-       yyy=`./try`
-       case "$yyy" in
-       '')     fpossize=4
-               echo "(I can't execute the test program--guessing $fpossize.)" >&4
+libnames='';
+case "$libs" in
+'') ;;
+*)  for thislib in $libs; do
+       case "$thislib" in
+       -lc|-lc_s)
+               : Handle C library specially below.
                ;;
-       *)      fpossize=$yyy
-               echo "Your $zzz is $fpossize bytes long."
+       -l*)
+               thislib=`echo $thislib | $sed -e 's/^-l//'`
+               if try=`./loc lib$thislib.$so.'*' X $libpth`; $test -f "$try"; then
+                       :
+               elif try=`./loc lib$thislib.$so X $libpth`; $test -f "$try"; then
+                       :
+               elif try=`./loc lib$thislib$_a X $libpth`; $test -f "$try"; then
+                       :
+               elif try=`./loc $thislib$_a X $libpth`; $test -f "$try"; then
+                       :
+               elif try=`./loc lib$thislib X $libpth`; $test -f "$try"; then
+                       :
+               elif try=`./loc $thislib X $libpth`; $test -f "$try"; then
+                       :
+               elif try=`./loc Slib$thislib$_a X $xlibpth`; $test -f "$try"; then
+                       :
+               else
+                       try=''
+               fi
+               libnames="$libnames $try"
                ;;
+       *) libnames="$libnames $thislib" ;;
        esac
+       done
+       ;;
+esac
+xxx=normal
+case "$libc" in
+unknown)
+       set /lib/libc.$so
+       for xxx in $libpth; do
+               $test -r $1 || set $xxx/libc.$so
+               : The messy sed command sorts on library version numbers.
+               $test -r $1 || \
+                       set `echo blurfl; echo $xxx/libc.$so.[0-9]* | \
+                       tr ' ' $trnl | egrep -v '\.[A-Za-z]*$' | $sed -e '
+                               h
+                               s/[0-9][0-9]*/0000&/g
+                               s/0*\([0-9][0-9][0-9][0-9][0-9]\)/\1/g
+                               G
+                               s/\n/ /' | \
+                        sort | $sed -e 's/^.* //'`
+               eval set \$$#
+       done
+       $test -r $1 || set /usr/ccs/lib/libc.$so
+       $test -r $1 || set /lib/libsys_s$_a
+       ;;
+*)
+       set blurfl
+       ;;
+esac
+if $test -r "$1"; then
+       echo "Your (shared) C library seems to be in $1."
+       libc="$1"
+elif $test -r /lib/libc && $test -r /lib/clib; then
+       echo "Your C library seems to be in both /lib/clib and /lib/libc."
+       xxx=apollo
+       libc='/lib/clib /lib/libc'
+       if $test -r /lib/syslib; then
+               echo "(Your math library is in /lib/syslib.)"
+               libc="$libc /lib/syslib"
+       fi
+elif $test -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then
+       echo "Your C library seems to be in $libc, as you said before."
+elif $test -r $incpath/usr/lib/libc$_a; then
+       libc=$incpath/usr/lib/libc$_a;
+       echo "Your C library seems to be in $libc.  That's fine."
+elif $test -r /lib/libc$_a; then
+       libc=/lib/libc$_a;
+       echo "Your C library seems to be in $libc.  You're normal."
 else
-       dflt="$longsize"
-       echo " " >&4
-       echo "(I can't compile the test program.  Guessing...)" >&4
-       rp="What is the size of your file positions (in bytes)?"
-       . ./myread
-       fpossize="$ans"
+       if tans=`./loc libc$_a blurfl/dyick $libpth`; $test -r "$tans"; then
+               :
+       elif tans=`./loc libc blurfl/dyick $libpth`; $test -r "$tans"; then
+               libnames="$libnames "`./loc clib blurfl/dyick $libpth`
+       elif tans=`./loc clib blurfl/dyick $libpth`; $test -r "$tans"; then
+               :
+       elif tans=`./loc Slibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then
+               :
+       elif tans=`./loc Mlibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then
+               :
+       else
+               tans=`./loc Llibc$_a blurfl/dyick $xlibpth`
+       fi
+       if $test -r "$tans"; then
+               echo "Your C library seems to be in $tans, of all places."
+               libc=$tans
+       else
+               libc='blurfl'
+       fi
 fi
+if $test $xxx = apollo -o -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then
+       dflt="$libc"
+       cat <<EOM
 
+If the guess above is wrong (which it might be if you're using a strange
+compiler, or your machine supports multiple models), you can override it here.
 
+EOM
+else
+       dflt=''
+       echo $libpth | tr ' ' $trnl | sort | uniq > libpath
+       cat >&4 <<EOM
+I can't seem to find your C library.  I've looked in the following places:
 
-# Backward compatibility (uselfs is deprecated).
-case "$uselfs" in
-"$define"|true|[yY]*)
-       cat <<EOM >&4
-
-*** Configure -Duselfs is deprecated, using -Duselargefiles instead.
 EOM
-       uselargefiles="$define"
-       ;;
-esac                          
+       $sed 's/^/      /' libpath
+       cat <<EOM
 
-case "$lseeksize:$fpossize" in
-8:8) cat <<EOM
+None of these seems to contain your C library. I need to get its name...
 
-You can have files larger than 2 gigabytes.
 EOM
-   val="$define" ;;
-*)    case "$uselargefiles" in
-   "$undef"|false|[nN]*) dflt='n' ;;
-   *)  dflt='y' ;;
-   esac
-   cat <<EOM
+fi
+fn=f
+rp='Where is your C library?'
+. ./getfile
+libc="$ans"
 
-Perl can be built to understand large files (files larger than 2 gigabytes)
-on some systems.  To do so, Configure can be run with -Duselargefiles.
+echo " "
+echo $libc $libnames | tr ' ' $trnl | sort | uniq > libnames
+set X `cat libnames`
+shift
+xxx=files
+case $# in 1) xxx=file; esac
+echo "Extracting names from the following $xxx for later perusal:" >&4
+echo " "
+$sed 's/^/     /' libnames >&4
+echo " "
+$echo $n "This may take a while...$c" >&4
 
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-   rp='Try to understand large files, if available?'
-   . ./myread
-   case "$ans" in
-   y|Y)        val="$define" ;;
-   *)          val="$undef"  ;;
-   esac
-   ;;
-esac
-set uselargefiles
-eval $setvar
-case "$uselargefiles" in
-"$define")
-: Look for a hint-file generated 'call-back-unit'.  If the
-: user has specified that a large files perl is to be built,
-: we may need to set or change some other defaults.
-       if $test -f uselargefiles.cbu; then
-               echo "Your platform has some specific hints for large file builds, using them..."
-               . ./uselargefiles.cbu
+for file in $*; do
+       case $file in
+       *$so*) $nm $nm_so_opt $nm_opt $file 2>/dev/null;;
+       *) $nm $nm_opt $file 2>/dev/null;;
+       esac
+done >libc.tmp
+
+$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'
+xxx='[ADTSIW]'
+if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx  *_[_.]*//p' -e 's/^.* $xxx  *//p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+elif com="$sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+elif com="$sed -n -e '/|UNDEF/d' -e '/FUNC..GL/s/^.*|__*//p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+elif com="$sed -n -e 's/^.* D __*//p' -e 's/^.* D //p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+elif com="$sed -n -e 's/^_//' -e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+elif com="$grep '|' | $sed -n -e '/|COMMON/d' -e '/|DATA/d' \
+                               -e '/ file/d' -e 's/^\([^       ]*\).*/\1/p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p' -e 's/^.*|FUNC |WEAK .*|//p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+elif com="$sed -n -e 's/^__//' -e '/|Undef/d' -e '/|Proc/s/ .*//p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+elif com="$sed -n -e 's/^.*|Proc .*|Text *| *//p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+elif com="$sed -n -e '/Def. Text/s/.* \([^ ]*\)\$/\1/p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+elif com="$sed -n -e 's/^[-0-9a-f ]*_\(.*\)=.*/\1/p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+elif com="$sed -n -e 's/.*\.text n\ \ \ \.//p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+elif com="sed -n -e 's/^__.*//' -e 's/[       ]*D[    ]*[0-9]*.*//p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+else
+       $nm -p $* 2>/dev/null >libc.tmp
+       $grep fprintf libc.tmp > libc.ptf
+       if com="$sed -n -e 's/^.* [ADTSIW]  *_[_.]*//p' -e 's/^.* [ADTSIW] //p'";\
+               eval $xscan; $contains '^fprintf$' libc.list >/dev/null 2>&1
+       then
+               nm_opt='-p'
+               eval $xrun
+       else
                echo " "
-               echo "Rechecking to see how big your file offsets are..." >&4
-               $cat >try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main()
-{
-    printf("%d\n", (int)sizeof($lseektype));
-    return(0); 
-}
-EOCP
-               set try
-               if eval $compile_ok; then
-                       lseeksize=`./try`
-                       $echo "Your file offsets are now $lseeksize bytes long."
-               else
-                       dflt="$lseeksize"
-                       echo " "
-                       echo "(I can't seem to compile the test program.  Guessing...)"
-                       rp="What is the size of your file offsets (in bytes)?"
-                       . ./myread
-                       lseeksize="$ans"
-               fi
-               case "$fpostype" in
-               *_t) zzz="$fpostype"    ;;
-               *)   zzz="fpos_t"       ;;
-               esac
-               $echo $n "Rechecking the size of $zzz...$c" >&4 
-               $cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
-    printf("%d\n", (int)sizeof($fpostype));
-    exit(0);
-}
-EOCP
-               set try
-               if eval $compile_ok; then
-                       yyy=`./try`
-                       dflt="$lseeksize"
-                       case "$yyy" in
-                       '')     echo " "
-                               echo "(I can't execute the test program--guessing $fpossize.)" >&4
-                               ;;
-                       *)      fpossize=$yyy
-                               echo " $fpossize bytes." >&4
-                               ;;
-                       esac
+               echo "$nm didn't seem to work right. Trying $ar instead..." >&4
+               com=''
+               if $ar t $libc > libc.tmp && $contains '^fprintf$' libc.tmp >/dev/null 2>&1; then
+                       for thisname in $libnames $libc; do
+                               $ar t $thisname >>libc.tmp
+                       done
+                       $sed -e "s/\\$_o\$//" < libc.tmp > libc.list
+                       echo "Ok." >&4
+               elif test "X$osname" = "Xos2" && $ar tv $libc > libc.tmp; then
+                       # Repeat libc to extract forwarders to DLL entries too
+                       for thisname in $libnames $libc; do
+                               $ar tv $thisname >>libc.tmp
+                               # Revision 50 of EMX has bug in $ar.
+                               # it will not extract forwarders to DLL entries
+                               # Use emximp which will extract exactly them.
+                               emximp -o tmp.imp $thisname \
+                                   2>/dev/null && \
+                                   $sed -e 's/^\([_a-zA-Z0-9]*\) .*$/\1/p' \
+                                   < tmp.imp >>libc.tmp
+                               $rm tmp.imp
+                       done
+                       $sed -e "s/\\$_o\$//" -e 's/^ \+//' < libc.tmp > libc.list
+                       echo "Ok." >&4
                else
-                       dflt="$fpossize"
-                       echo " "
-                       echo "(I can't compile the test program.  Guessing...)" >&4
-                       rp="What is the size of your file positions (in bytes)?"
-                       . ./myread
-                       fpossize="$ans"
+                       echo "$ar didn't seem to work right." >&4
+                       echo "Maybe this is a Cray...trying bld instead..." >&4
+                       if bld t $libc | $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" > libc.list
+                       then
+                               for thisname in $libnames; do
+                                       bld t $libnames | \
+                                       $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" >>libc.list
+                                       $ar t $thisname >>libc.tmp
+                               done
+                               echo "Ok." >&4
+                       else
+                               echo "That didn't work either.  Giving up." >&4
+                               exit 1
+                       fi
                fi
-               $rm -f try.c try
        fi
-       ;;
-esac
-
-
-case "$usemorebits" in
-"$define"|true|[yY]*)
-       use64bitint="$define"
-       uselongdouble="$define"
-       usemorebits="$define"
-       ;;
-*)     usemorebits="$undef"
-       ;;
+fi
+nm_extract="$com"
+if $test -f /lib/syscalls.exp; then
+       echo " "
+       echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4
+       $sed -n 's/^\([^        ]*\)[   ]*syscall[0-9]*$/\1/p' /lib/syscalls.exp >>libc.list
+fi
+;;
 esac
+$rm -f libnames libpath
 
+: is a C symbol defined?
+csym='tlook=$1;
+case "$3" in
+-v) tf=libc.tmp; tc=""; tdc="";;
+-a) tf=libc.tmp; tc="[0]"; tdc="[]";;
+*) tlook="^$1\$"; tf=libc.list; tc="()"; tdc="()";;
+esac;
+tx=yes;
+case "$reuseval-$4" in
+true-) ;;
+true-*) tx=no; eval "tval=\$$4"; case "$tval" in "") tx=yes;; esac;;
+esac;
+case "$tx" in
+yes)
+       case "$runnm" in
+       true)
+               if $contains $tlook $tf >/dev/null 2>&1;
+               then tval=true;
+               else tval=false;
+               fi;;
+       *)
+               echo "int main() { extern short $1$tdc; printf(\"%hd\", $1$tc); }" > t.c;
+               if $cc $optimize $ccflags $ldflags -o t t.c $libs >/dev/null 2>&1;
+               then tval=true;
+               else tval=false;
+               fi;
+               $rm -f t t.c;;
+       esac;;
+*)
+       case "$tval" in
+       $define) tval=true;;
+       *) tval=false;;
+       esac;;
+esac;
+eval "$2=$tval"'
 
-case "$uselonglong" in
-"$define"|true|[yY]*)
-       cat <<EOM >&4
-
-*** Configure -Duselonglong is deprecated, using -Duse64bitint instead.
-EOM
-       use64bitint="$define"
-       ;;
-esac                          
-case "$use64bits" in
-"$define"|true|[yY]*)
-       cat <<EOM >&4
-
-*** Configure -Duse64bits is deprecated, using -Duse64bitint instead.
-EOM
-       use64bitint="$define"
-       ;;
-esac                          
-case "$use64bitints" in
-"$define"|true|[yY]*)
-       cat <<EOM >&4
-
-*** There is no Configure -Duse64bitints, using -Duse64bitint instead.
-EOM
-       use64bitint="$define"
-       ;;
-esac                          
-case "$use64bitsint" in
-"$define"|true|[yY]*)
-       cat <<EOM >&4
-
-*** There is no Configure -Duse64bitsint, using -Duse64bitint instead.
-EOM
-       use64bitint="$define"
-       ;;
-esac                          
-case "$uselonglongs" in
-"$define"|true|[yY]*)
-       cat <<EOM >&4
-
-*** There is no Configure -Duselonglongs, using -Duse64bitint instead.
-EOM
-       use64bitint="$define"
-       ;;
-esac                          
-case "$use64bitsall" in
-"$define"|true|[yY]*)
-       cat <<EOM >&4
+: define an is-in-libc? function
+inlibc='echo " "; td=$define; tu=$undef;
+sym=$1; var=$2; eval "was=\$$2";
+tx=yes;
+case "$reuseval$was" in
+true) ;;
+true*) tx=no;;
+esac;
+case "$tx" in
+yes)
+       set $sym tres -f;
+       eval $csym;
+       case "$tres" in
+       true)
+               echo "$sym() found." >&4;
+               case "$was" in $undef) . ./whoa; esac; eval "$var=\$td";;
+       *)
+               echo "$sym() NOT found." >&4;
+               case "$was" in $define) . ./whoa; esac; eval "$var=\$tu";;
+       esac;;
+*)
+       case "$was" in
+       $define) echo "$sym() found." >&4;;
+       *) echo "$sym() NOT found." >&4;;
+       esac;;
+esac'
 
-*** There is no Configure -Duse64bitsall, using -Duse64bitall instead.
-EOM
-       use64bitall="$define"
-       ;;
-esac                          
+: see if sqrtl exists
+set sqrtl d_sqrtl
+eval $inlibc
 
 case "$ccflags" in
-*-DUSE_LONG_LONG*|*-DUSE_64_BIT_INT*|*-DUSE_64_BIT_ALL*) use64bitint="$define";;
-esac
-case "$use64bitall" in
-"$define"|true|[yY]*) use64bitint="$define" ;;
+*-DUSE_LONG_DOUBLE*|*-DUSE_MORE_BITS*) uselongdouble="$define" ;;
 esac
 
-case "$longsize" in
-8) cat <<EOM
-
-You have natively 64-bit long integers.
-EOM
-   val="$define"
-   ;;
-*) case "$use64bitint" in
-   "$define"|true|[yY]*) dflt='y';;
-   *) dflt='n';;
-   esac
-   cat <<EOM
-
-Perl can be built to take advantage of 64-bit integer types
-on some systems.  To do so, Configure can be run with -Duse64bitint.
-Choosing this option will most probably introduce binary incompatibilities.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-   rp='Try to use 64-bit integers, if available?'
-   . ./myread
-   case "$ans" in
-   [yY]*) val="$define" ;;
-   *)     val="$undef"  ;;
-   esac
-   ;;
+case "$uselongdouble" in
+$define|true|[yY]*)    dflt='y';;
+*) dflt='n';;
 esac
-set use64bitint
-eval $setvar
-
 cat <<EOM
 
-You may also choose to try maximal 64-bitness.  It means using as much
-64-bitness as possible on the platform.  This in turn means even more
-binary incompatibilities.  On the other hand, your platform may not
-have any more 64-bitness available than what you already have chosen.
+Perl can be built to take advantage of long doubles which
+(if available) may give more accuracy and range for floating point numbers.
 
 If this doesn't make any sense to you, just accept the default '$dflt'.
 EOM
-rp='Try to use maximal 64-bit support, if available?'
-case "$use64bitall" in
-"$define"|true|[yY]*) dflt='y' ;;
-*) case "$longsize" in
-   8) dflt='y' ;;
-   *) dflt='n' ;;
-   esac
-   ;;
-esac   
+rp='Try to use long doubles if available?'
 . ./myread
 case "$ans" in
-[yY]*) val="$define" ;;
-*)     val="$undef"  ;;
+y|Y)   val="$define"   ;;
+*)      val="$undef"   ;;
 esac
-set use64bitall
+set uselongdouble
 eval $setvar
-case "$use64bitall" in
-"$define")
-       case "$use64bitint" in
-       "$undef")
-               cat <<EOM
 
-Since you have chosen a maximally 64-bit build, I'm also turning on
-the use of 64-bit integers.
-EOM
-               use64bitint="$define" ;;
-       esac
-       ;;
+case "$uselongdouble" in
+true|[yY]*) uselongdouble="$define" ;;
 esac
 
-case "$use64bitint" in
-"$define"|true|[yY]*)
+case "$uselongdouble" in
+$define)
 : Look for a hint-file generated 'call-back-unit'.  If the
-: user has specified that a 64-bit perl is to be built,
+: user has specified that long doubles should be used,
 : we may need to set or change some other defaults.
-       if $test -f use64bitint.cbu; then
-               echo "Your platform has some specific hints for 64-bit integers, using them..."
-               . ./use64bitint.cbu
+       if $test -f uselongdouble.cbu; then
+               echo "Your platform has some specific hints for long doubles, using them..."
+               . ./uselongdouble.cbu
+       else
+               $cat <<EOM
+(Your platform doesn't have any specific hints for long doubles.)
+EOM
+       fi
+       ;;
+esac
+
+case "$uselongdouble:$d_sqrtl" in
+$define:$undef)
+               $cat <<EOM >&4
+
+*** You requested the use of long doubles but you do not seem to have
+*** the mathematic functions for long doubles.  I'm disabling the use
+*** of long doubles.
+
+EOM
+       uselongdouble=$undef
+       ;;
+esac
+
+: check for length of double
+echo " "
+case "$doublesize" in
+'')
+       echo "Checking to see how big your double precision numbers are..." >&4
+       $cat >try.c <<'EOCP'
+#include <stdio.h>
+int main()
+{
+    printf("%d\n", (int)sizeof(double));
+    exit(0);
+}
+EOCP
+       set try
+       if eval $compile_ok; then
+               doublesize=`./try`
+               echo "Your double is $doublesize bytes long."
+       else
+               dflt='8'
+               echo "(I can't seem to compile the test program.  Guessing...)"
+               rp="What is the size of a double precision number (in bytes)?"
+               . ./myread
+               doublesize="$ans"
        fi
-       case "$longsize" in
-       4) case "$archname64" in
-          '') archname64=64int ;;
-          esac
-          ;;
-       esac
        ;;
 esac
+$rm -f try.c try
 
-case "$use64bitall" in
-"$define"|true|[yY]*)
-: Look for a hint-file generated 'call-back-unit'.  If the
-: user has specified that a maximally 64-bit perl is to be built,
-: we may need to set or change some other defaults.
-       if $test -f use64bitall.cbu; then
-               echo "Your platform has some specific hints for 64-bit builds, using them..."
-               . ./use64bitall.cbu
+: check for long doubles
+echo " "
+echo "Checking to see if you have long double..." >&4
+echo 'int main() { long double x = 7.0; }' > try.c
+set try
+if eval $compile; then
+       val="$define"
+       echo "You have long double."
+else
+       val="$undef"
+       echo "You do not have long double."
+fi
+$rm try.*
+set d_longdbl
+eval $setvar
+
+: check for length of long double
+case "${d_longdbl}${longdblsize}" in
+$define)
+       echo " "
+       echo "Checking to see how big your long doubles are..." >&4
+       $cat >try.c <<'EOCP'
+#include <stdio.h>
+int main()
+{
+       printf("%d\n", sizeof(long double));
+}
+EOCP
+       set try
+       set try
+       if eval $compile; then
+               longdblsize=`./try$exe_ext`
+               echo "Your long doubles are $longdblsize bytes long."
+       else
+               dflt='8'
+               echo " "
+               echo "(I can't seem to compile the test program.  Guessing...)" >&4
+               rp="What is the size of a long double (in bytes)?"
+               . ./myread
+               longdblsize="$ans"
        fi
-       case "$longsize" in
-       4) case "$archname64" in
-          ''|64int) archname64=64all ;;
-          esac
-          ;;
-       esac
+       if $test "X$doublesize" = "X$longdblsize"; then
+               echo "(That isn't any different from an ordinary double.)"
+       fi      
        ;;
 esac
+$rm -f try.* try
 
 : determine the architecture name
 echo " "
@@ -4635,12 +5207,19 @@ $define)
         esac
        ;;
 esac
-case "$use64bitint" in
-$define)
+case "$use64bitint$use64bitall" in
+*"$define"*)
        case "$archname64" in
        '')
+               echo "This architecture is naturally 64-bit, not changing architecture name." >&4
                ;;
        *)
+               case "$use64bitint" in
+               "$define") echo "64 bit integers selected." >&4 ;;
+               esac
+               case "$use64bitall" in
+               "$define") echo "Maximal 64 bitness selected." >&4 ;;
+               esac
                case "$archname" in
                *-$archname64*) echo "...and architecture name already has $archname64." >&4
                        ;;
@@ -4651,6 +5230,25 @@ $define)
                ;;
        esac
 esac
+case "$uselongdouble" in
+$define)
+       echo "Long doubles selected." >&4
+       case "$longdblsize" in
+       $doublesize)
+               "...but long doubles are equal to doubles, not changing architecture name." >&4
+               ;;
+       *)
+               case "$archname" in
+               *-ld*) echo "...and architecture name already has -ld." >&4
+                       ;;
+               *)      archname="$archname-ld"
+                       echo "...setting architecture name to $archname." >&4
+                       ;;
+               esac
+               ;;
+       esac
+       ;;
+esac
 
 : determine root of directory hierarchy where package will be installed.
 case "$prefix" in
@@ -4784,10 +5382,7 @@ else
        api_version=0
        api_subversion=0
 fi
-$echo $n "(You have $package revision $revision" $c
-$echo $n " patchlevel $patchlevel" $c
-test 0 -eq "$subversion" || $echo $n " subversion $subversion" $c
-echo ".)"
+$echo "(You have $package version $patchlevel subversion $subversion.)"
 case "$osname" in
 dos|vms)
        : XXX Should be a Configure test for double-dots in filenames.
@@ -4908,9 +5503,9 @@ case "$usethreads$usemultiplicity" in
        ;;
 *)     $cat <<EOM
 
-Perl 5.006 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.
+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
@@ -5216,194 +5811,22 @@ case "$malloctype" in
                malloctype='void *'
        else
                malloctype='char *'
-       fi
-       ;;
-esac
-echo "Your system wants malloc to return '$malloctype', it would seem." >&4
-
-case "$freetype" in
-'')
-       if $cc $ccflags -c -DTRY_FREE malloc.c >/dev/null 2>&1; then
-               freetype='void'
-       else
-               freetype='int'
-       fi
-       ;;
-esac
-echo "Your system uses $freetype free(), it would seem." >&4
-$rm -f malloc.[co]
-$cat <<EOM
-
-The installation process will also create a directory for
-vendor-supplied add-ons.  Vendors who supply perl with their system
-may find it convenient to place all vendor-supplied files in this
-directory rather than in the main distribution directory.  This will
-ease upgrades between binary-compatible maintenance versions of perl.
-
-Of course you may also use these directories in whatever way you see
-fit.  For example, you might use them to access modules shared over a
-company-wide network.
-
-The default answer should be fine for most people.
-This causes further questions about vendor add-ons to be skipped
-and no vendor-specific directories will be configured for perl.
-
-EOM
-rp='Do you want to configure vendor-specific add-on directories?'
-case "$usevendorprefix" in
-define|true|[yY]*) dflt=y ;;
-*)     : User may have set vendorprefix directly on Configure command line.
-       case "$vendorprefix" in
-       ''|' ') dflt=n ;;
-       *)      dflt=y ;;
-       esac
-       ;;
-esac
-. ./myread
-case "$ans" in
-[yY]*) fn=d~+
-       rp='Installation prefix to use for vendor-supplied add-ons?'
-       case "$vendorprefix" in
-       '') dflt='' ;;
-       *)  dflt=$vendorprefix ;;
-       esac
-       . ./getfile
-       : XXX Prefixit unit does not yet support siteprefix and vendorprefix
-       oldvendorprefix=''
-       case "$vendorprefix" in
-       '') ;;
-       *)      case "$ans" in
-               "$prefix") ;;
-               *) oldvendorprefix="$prefix";;
-               esac
-               ;;
-       esac
-       usevendorprefix="$define"
-       vendorprefix="$ans"
-       vendorprefixexp="$ansexp"
-       ;;
-*)     usevendorprefix="$undef"
-       vendorprefix=''
-       vendorprefixexp=''
-       ;;
-esac
-
-case "$vendorprefix" in
-'')    d_vendorlib="$undef"
-       vendorlib=''
-       vendorlibexp=''
-       ;;
-*)     d_vendorlib="$define"
-       : determine where vendor-supplied modules go.
-       : Usual default is /usr/local/lib/perl5/vendor_perl/$version
-       case "$vendorlib" in
-       '')
-               prog=`echo $package | $sed 's/-*[0-9.]*$//'`
-               case "$installstyle" in
-               *lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;;
-               *)           dflt=$vendorprefix/lib/vendor_$prog/$version ;;
-               esac
-               ;;
-       *)      dflt="$vendorlib"
-               ;;
-       esac
-       fn=d~+
-       rp='Pathname for the vendor-supplied library files?'
-       . ./getfile
-       vendorlib="$ans"
-       vendorlibexp="$ansexp"
-       ;;
-esac
-: Change installation prefix, if necessary.
-if $test X"$prefix" != X"$installprefix"; then
-       installvendorlib=`echo $vendorlibexp | $sed "s#^$prefix#$installprefix#"`
-else
-       installvendorlib="$vendorlibexp"
-fi
-
-: Cruising for prototypes
-echo " "
-echo "Checking out function prototypes..." >&4
-$cat >prototype.c <<'EOCP'
-int main(int argc, char *argv[]) {
-       exit(0);}
-EOCP
-if $cc $ccflags -c prototype.c >prototype.out 2>&1 ; then
-       echo "Your C compiler appears to support function prototypes."
-       val="$define"
-else
-       echo "Your C compiler doesn't seem to understand function prototypes."
-       val="$undef"
-fi
-set prototype
-eval $setvar
-$rm -f prototype*
-
-case "$prototype" in
-"$define") ;;
-*)     ansi2knr='ansi2knr'
-       echo " "
-       cat <<EOM >&4
-
-$me:  FATAL ERROR:
-This version of $package can only be compiled by a compiler that 
-understands function prototypes.  Unfortunately, your C compiler 
-       $cc $ccflags
-doesn't seem to understand them.  Sorry about that.
-
-If GNU cc is available for your system, perhaps you could try that instead.  
-
-Eventually, we hope to support building Perl with pre-ANSI compilers.
-If you would like to help in that effort, please contact <perlbug@perl.org>.
-
-Aborting Configure now.
-EOM
-       exit 2
-       ;;
-esac
-
-: determine where public executables go
-echo " "
-set dflt bin bin
-eval $prefixit
-fn=d~
-rp='Pathname where the public executables will reside?'
-. ./getfile
-if $test "X$ansexp" != "X$binexp"; then
-       installbin=''
-fi
-bin="$ans"
-binexp="$ansexp"
-: Change installation prefix, if necessary.
-: XXX Bug? -- ignores Configure -Dinstallprefix setting.
-if $test X"$prefix" != X"$installprefix"; then
-       installbin=`echo $binexp | sed "s#^$prefix#$installprefix#"`
-else
-       installbin="$binexp"
-fi
-
-: Find perl5.005 or later.
-echo "Looking for a previously installed perl5.005 or later... "
-case "$perl5" in
-'')    for tdir in `echo "$binexp:$PATH" | $sed "s/$path_sep/ /g"`; do
-               : Check if this perl is recent and can load a simple module
-               if $test -x $tdir/perl && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then
-                       perl5=$tdir/perl
-                       break;
-               elif $test -x $tdir/perl5 && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then
-                       perl5=$tdir/perl
-                       break;
-               fi
-       done
-       ;;
-*)     perl5="$perl5"
+       fi
        ;;
 esac
-case "$perl5" in
-'')    echo "None found.  That's ok.";;
-*)     echo "Using $perl5." ;;
-esac
+echo "Your system wants malloc to return '$malloctype', it would seem." >&4
 
+case "$freetype" in
+'')
+       if $cc $ccflags -c -DTRY_FREE malloc.c >/dev/null 2>&1; then
+               freetype='void'
+       else
+               freetype='int'
+       fi
+       ;;
+esac
+echo "Your system uses $freetype free(), it would seem." >&4
+$rm -f malloc.[co]
 $cat <<EOM
 
 After $package is installed, you may wish to install various
@@ -5467,6 +5890,7 @@ rp='Pathname for the site-specific library files?'
 . ./getfile
 sitelib="$ans"
 sitelibexp="$ansexp"
+sitelib_stem=`echo "$sitelibexp" | sed "s,/$version$,,"`
 : Change installation prefix, if necessary.
 if $test X"$prefix" != X"$installprefix"; then
        installsitelib=`echo $sitelibexp | $sed "s#^$prefix#$installprefix#"`
@@ -5474,587 +5898,425 @@ else
        installsitelib="$sitelibexp"
 fi
 
-: Determine list of previous versions to include in @INC
-$cat > getverlist <<EOPL
-#!$perl5 -w
-use File::Basename;
-\$api_versionstring = "$api_versionstring";
-\$version = "$version";
-\$sitelib = "$sitelib";
-\$archname = "$archname";
-EOPL
-       $cat >> getverlist <<'EOPL'
-# Can't have leading @ because metaconfig interprets it as a command!
-;@inc_version_list=();
-$stem=dirname($sitelib);
-# XXX Redo to do opendir/readdir? 
-if (-d $stem) {
-    chdir($stem);
-    ;@candidates = glob("5.*");
-}
-else {
-    ;@candidates = ();
-}
-
-# XXX ToDo:  These comparisons must be reworked when two-digit
-# subversions come along, so that 5.7.10 compares as greater than
-# 5.7.3!  By that time, hope that 5.6.x is sufficiently
-# widespread that we can use the built-in version vectors rather
-# than reinventing them here.  For 5.6.0, however, we must
-# assume this script will likely be run by 5.005_0x.  --AD 1/2000.
-foreach $d (@candidates) {
-    if ($d lt $version) {
-       if ($d ge $api_versionstring) {
-           unshift(@inc_version_list, "$d/$archname", $d);
-       }
-       elsif ($d ge "5.005") {
-           unshift(@inc_version_list, $d);
-       }
-    }
-    else {
-       # Skip newer version.  I.e. don't look in
-       # 5.7.0 if we're installing 5.6.1.
-    }
-}
-
-if (@inc_version_list) {
-    print join(' ', @inc_version_list);
-}
-else {
-    # Blank space to preserve value for next Configure run.
-    print " ";
-}
-EOPL
-chmod +x getverlist
-case "$inc_version_list" in
-'')    if test -x "$perl5"; then
-               dflt=`$perl5 getverlist`
-       else
-               dflt='none'
-       fi
+: determine where site specific architecture-dependent libraries go.
+: sitelib  default is /usr/local/lib/perl5/site_perl/$version
+: sitearch default is /usr/local/lib/perl5/site_perl/$version/$archname
+: sitelib may have an optional trailing /share.
+case "$sitearch" in
+'')    dflt=`echo $sitelib | $sed 's,/share$,,'`
+       dflt="$dflt/$archname"
        ;;
-$undef) dflt='none' ;;
-*)  dflt="$inc_version_list" ;;
-esac
-case "$dflt" in
-''|' ') dflt=none ;;
-esac
-$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 
-versions of perl that were installed under $prefix.  Specify here
-the list of earlier versions that this version of perl should check.
-If Configure detected no earlier versions of perl installed under
-$prefix, then the list will be empty.  Answer 'none' to tell perl
-to not search earlier versions.
-
-The default should almost always be sensible, so if you're not sure,
-just accept the default.
-EOM
-
-rp='List of earlier versions to include in @INC?'
-. ./myread
-case "$ans" in
-[Nn]one|''|' ') inc_version_list=' ' ;;
-*) inc_version_list="$ans" ;;
-esac
-case "$inc_version_list" in
-''|' ') 
-       inc_version_list_init='0';;
-*)     inc_version_list_init=`echo $inc_version_list |
-               $sed -e 's/^/"/' -e 's/ /","/g' -e 's/$/",0/'`
+*)     dflt="$sitearch"
        ;;
 esac
-$rm -f getverlist
+set sitearch sitearch none
+eval $prefixit
+$cat <<EOM
 
-: determine whether to install perl also as /usr/bin/perl
+The installation process will also create a directory for
+architecture-dependent site-specific extensions and modules.
 
-echo " "
-if $test -d /usr/bin -a "X$installbin" != X/usr/bin; then
-       $cat <<EOM
-Many scripts expect to 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).
 EOM
-       case "$installusrbinperl" in
-       "$undef"|[nN]*) dflt='n';;
-       *)              dflt='y';;
-       esac
-       rp="Do you want to install perl as /usr/bin/perl?"
-       . ./myread
-       case "$ans" in
-       [yY]*)  val="$define";;
-       *)      val="$undef" ;;
-       esac
+fn=d~+
+rp='Pathname for the site-specific architecture-dependent library files?'
+. ./getfile
+sitearch="$ans"
+sitearchexp="$ansexp"
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installsitearch=`echo $sitearchexp | sed "s#^$prefix#$installprefix#"`
 else
-       val="$undef"
+       installsitearch="$sitearchexp"
 fi
-set installusrbinperl
-eval $setvar
 
-echo " "
-echo "Checking for GNU C Library..." >&4
-cat >gnulibc.c <<EOM
-#include <stdio.h>
-int main()
-{
-#ifdef __GLIBC__
-    exit(0);
-#else
-    exit(1);
-#endif
-}
-EOM
-set gnulibc
-if eval $compile_ok && ./gnulibc; then
-       val="$define"
-       echo "You are using the GNU C Library"
-else
-       val="$undef"
-       echo "You are not using the GNU C Library"
-fi
-$rm -f gnulibc*
-set d_gnulibc
-eval $setvar
+$cat <<EOM
 
-: see if nm is to be used to determine whether a symbol is defined or not
-case "$usenm" in
-'')
-       dflt=''
-       case "$d_gnulibc" in
-       "$define")
-               echo " "
-               echo "nm probably won't work on the GNU C Library." >&4
-               dflt=n
-               ;;
+The installation process will also create a directory for
+vendor-supplied add-ons.  Vendors who supply perl with their system
+may find it convenient to place all vendor-supplied files in this
+directory rather than in the main distribution directory.  This will
+ease upgrades between binary-compatible maintenance versions of perl.
+
+Of course you may also use these directories in whatever way you see
+fit.  For example, you might use them to access modules shared over a
+company-wide network.
+
+The default answer should be fine for most people.
+This causes further questions about vendor add-ons to be skipped
+and no vendor-specific directories will be configured for perl.
+
+EOM
+rp='Do you want to configure vendor-specific add-on directories?'
+case "$usevendorprefix" in
+define|true|[yY]*) dflt=y ;;
+*)     : User may have set vendorprefix directly on Configure command line.
+       case "$vendorprefix" in
+       ''|' ') dflt=n ;;
+       *)      dflt=y ;;
        esac
-       case "$dflt" in
-       '') 
-               if $test "$osname" = aix -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
-                       dflt=n
-               fi
+       ;;
+esac
+. ./myread
+case "$ans" in
+[yY]*) fn=d~+
+       rp='Installation prefix to use for vendor-supplied add-ons?'
+       case "$vendorprefix" in
+       '') dflt='' ;;
+       *)  dflt=$vendorprefix ;;
+       esac
+       . ./getfile
+       : XXX Prefixit unit does not yet support siteprefix and vendorprefix
+       oldvendorprefix=''
+       case "$vendorprefix" in
+       '') ;;
+       *)      case "$ans" in
+               "$prefix") ;;
+               *) oldvendorprefix="$prefix";;
+               esac
                ;;
        esac
-       case "$dflt" in
-       '') dflt=`$egrep 'inlibc|csym' $rsrc/Configure | wc -l 2>/dev/null`
-               if $test $dflt -gt 20; then
-                       dflt=y
-               else
-                       dflt=n
-               fi
+       usevendorprefix="$define"
+       vendorprefix="$ans"
+       vendorprefixexp="$ansexp"
+       ;;
+*)     usevendorprefix="$undef"
+       vendorprefix=''
+       vendorprefixexp=''
+       ;;
+esac
+
+case "$vendorprefix" in
+'')    d_vendorlib="$undef"
+       vendorlib=''
+       vendorlibexp=''
+       ;;
+*)     d_vendorlib="$define"
+       : determine where vendor-supplied modules go.
+       : Usual default is /usr/local/lib/perl5/vendor_perl/$version
+       case "$vendorlib" in
+       '')
+               prog=`echo $package | $sed 's/-*[0-9.]*$//'`
+               case "$installstyle" in
+               *lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;;
+               *)           dflt=$vendorprefix/lib/vendor_$prog/$version ;;
+               esac
+               ;;
+       *)      dflt="$vendorlib"
                ;;
        esac
+       fn=d~+
+       rp='Pathname for the vendor-supplied library files?'
+       . ./getfile
+       vendorlib="$ans"
+       vendorlibexp="$ansexp"
        ;;
-*)
-       case "$usenm" in
-       true|$define) dflt=y;;
-       *) dflt=n;;
+esac
+vendorlib_stem=`echo "$vendorlibexp" | sed "s,/$version$,,"`
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installvendorlib=`echo $vendorlibexp | $sed "s#^$prefix#$installprefix#"`
+else
+       installvendorlib="$vendorlibexp"
+fi
+
+case "$vendorprefix" in
+'')    d_vendorarch="$undef"
+       vendorarch=''
+       vendorarchexp=''
+       ;;
+*)     d_vendorarch="$define"
+       : determine where vendor-supplied architecture-dependent libraries go.
+       : vendorlib  default is /usr/local/lib/perl5/vendor_perl/$version
+       : vendorarch default is /usr/local/lib/perl5/vendor_perl/$version/$archname
+       : vendorlib may have an optional trailing /share.
+       case "$vendorarch" in
+       '')     dflt=`echo $vendorlib | $sed 's,/share$,,'`
+               dflt="$dflt/$archname"
+               ;;
+       *)      dflt="$vendorarch" ;;
        esac
+       fn=d~+
+       rp='Pathname for vendor-supplied architecture-dependent files?'
+       . ./getfile
+       vendorarch="$ans"
+       vendorarchexp="$ansexp"
        ;;
 esac
-$cat <<EOM
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installvendorarch=`echo $vendorarchexp | sed "s#^$prefix#$installprefix#"`
+else
+       installvendorarch="$vendorarchexp"
+fi
 
-I can use $nm to extract the symbols from your C libraries. This
-is a time consuming task which may generate huge output on the disk (up
-to 3 megabytes) but that should make the symbols extraction faster. The
-alternative is to skip the 'nm' extraction part and to compile a small
-test program instead to determine whether each symbol is present. If
-you have a fast C compiler and/or if your 'nm' output cannot be parsed,
-this may be the best solution.
+: Final catch-all directories to search
+$cat <<EOM
 
-You probably shouldn't let me use 'nm' if you are using the GNU C Library.
+Lastly, you can have perl look in other directories for extensions and
+modules in addition to those already specified.
+These directories will be searched after 
+       $sitearch 
+       $sitelib 
+EOM
+test X"$vendorlib" != "X" && echo '    ' $vendorlib
+test X"$vendorarch" != "X" && echo '   ' $vendorarch
+echo ' '
+case "$otherlibdirs" in
+''|' ') dflt='none' ;;
+*)     dflt="$otherlibdirs" ;;
+esac
+$cat <<EOM
+Enter a colon-separated set of extra paths to include in perl's @INC
+search path, or enter 'none' for no extra paths.
 
 EOM
-rp="Shall I use $nm to extract C symbols from the libraries?"
+
+rp='Colon-separated list of additional directories for perl to search?'
 . ./myread
 case "$ans" in
-[Nn]*) usenm=false;;
-*) usenm=true;;
+' '|''|none)   otherlibdirs=' ' ;;     
+*)     otherlibdirs="$ans" ;;
 esac
-
-runnm=$usenm
-case "$reuseval" in
-true) runnm=false;;
+case "$otherlibdirs" in
+' ') val=$undef ;;
+*)     val=$define ;;
 esac
+set d_perl_otherlibdirs
+eval $setvar
 
-: nm options which may be necessary
-case "$nm_opt" in
-'') if $test -f /mach_boot; then
-               nm_opt=''       # Mach
-       elif $test -d /usr/ccs/lib; then
-               nm_opt='-p'     # Solaris (and SunOS?)
-       elif $test -f /dgux; then
-               nm_opt='-p'     # DG-UX
-       elif $test -f /lib64/rld; then
-               nm_opt='-p'     # 64-bit Irix
-       else
-               nm_opt=''
-       fi;;
-esac
+: Cruising for prototypes
+echo " "
+echo "Checking out function prototypes..." >&4
+$cat >prototype.c <<'EOCP'
+int main(int argc, char *argv[]) {
+       exit(0);}
+EOCP
+if $cc $ccflags -c prototype.c >prototype.out 2>&1 ; then
+       echo "Your C compiler appears to support function prototypes."
+       val="$define"
+else
+       echo "Your C compiler doesn't seem to understand function prototypes."
+       val="$undef"
+fi
+set prototype
+eval $setvar
+$rm -f prototype*
 
-: nm options which may be necessary for shared libraries but illegal
-: for archive libraries.  Thank you, Linux.
-case "$nm_so_opt" in
-'')    case "$myuname" in
-       *linux*)
-               if $nm --help | $grep 'dynamic' > /dev/null 2>&1; then
-                       nm_so_opt='--dynamic'
-               fi
-               ;;
-       esac
+case "$prototype" in
+"$define") ;;
+*)     ansi2knr='ansi2knr'
+       echo " "
+       cat <<EOM >&4
+
+$me:  FATAL ERROR:
+This version of $package can only be compiled by a compiler that 
+understands function prototypes.  Unfortunately, your C compiler 
+       $cc $ccflags
+doesn't seem to understand them.  Sorry about that.
+
+If GNU cc is available for your system, perhaps you could try that instead.  
+
+Eventually, we hope to support building Perl with pre-ANSI compilers.
+If you would like to help in that effort, please contact <perlbug@perl.org>.
+
+Aborting Configure now.
+EOM
+       exit 2
        ;;
 esac
 
-case "$runnm" in
-true)
-: get list of predefined functions in a handy place
+: determine where public executables go
 echo " "
-case "$libc" in
-'') libc=unknown
-       case "$libs" in
-       *-lc_s*) libc=`./loc libc_s$_a $libc $libpth`
-       esac
-       ;;
-esac
-libnames='';
-case "$libs" in
-'') ;;
-*)  for thislib in $libs; do
-       case "$thislib" in
-       -lc|-lc_s)
-               : Handle C library specially below.
-               ;;
-       -l*)
-               thislib=`echo $thislib | $sed -e 's/^-l//'`
-               if try=`./loc lib$thislib.$so.'*' X $libpth`; $test -f "$try"; then
-                       :
-               elif try=`./loc lib$thislib.$so X $libpth`; $test -f "$try"; then
-                       :
-               elif try=`./loc lib$thislib$_a X $libpth`; $test -f "$try"; then
-                       :
-               elif try=`./loc $thislib$_a X $libpth`; $test -f "$try"; then
-                       :
-               elif try=`./loc lib$thislib X $libpth`; $test -f "$try"; then
-                       :
-               elif try=`./loc $thislib X $libpth`; $test -f "$try"; then
-                       :
-               elif try=`./loc Slib$thislib$_a X $xlibpth`; $test -f "$try"; then
-                       :
-               else
-                       try=''
+set dflt bin bin
+eval $prefixit
+fn=d~
+rp='Pathname where the public executables will reside?'
+. ./getfile
+if $test "X$ansexp" != "X$binexp"; then
+       installbin=''
+fi
+bin="$ans"
+binexp="$ansexp"
+: Change installation prefix, if necessary.
+: XXX Bug? -- ignores Configure -Dinstallprefix setting.
+if $test X"$prefix" != X"$installprefix"; then
+       installbin=`echo $binexp | sed "s#^$prefix#$installprefix#"`
+else
+       installbin="$binexp"
+fi
+
+: Find perl5.005 or later.
+echo "Looking for a previously installed perl5.005 or later... "
+case "$perl5" in
+'')    for tdir in `echo "$binexp:$PATH" | $sed "s/$path_sep/ /g"`; do
+               : Check if this perl is recent and can load a simple module
+               if $test -x $tdir/perl && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then
+                       perl5=$tdir/perl
+                       break;
+               elif $test -x $tdir/perl5 && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then
+                       perl5=$tdir/perl
+                       break;
                fi
-               libnames="$libnames $try"
-               ;;
-       *) libnames="$libnames $thislib" ;;
-       esac
-       done
-       ;;
-esac
-xxx=normal
-case "$libc" in
-unknown)
-       set /lib/libc.$so
-       for xxx in $libpth; do
-               $test -r $1 || set $xxx/libc.$so
-               : The messy sed command sorts on library version numbers.
-               $test -r $1 || \
-                       set `echo blurfl; echo $xxx/libc.$so.[0-9]* | \
-                       tr ' ' $trnl | egrep -v '\.[A-Za-z]*$' | $sed -e '
-                               h
-                               s/[0-9][0-9]*/0000&/g
-                               s/0*\([0-9][0-9][0-9][0-9][0-9]\)/\1/g
-                               G
-                               s/\n/ /' | \
-                        sort | $sed -e 's/^.* //'`
-               eval set \$$#
        done
-       $test -r $1 || set /usr/ccs/lib/libc.$so
-       $test -r $1 || set /lib/libsys_s$_a
        ;;
-*)
-       set blurfl
+*)     perl5="$perl5"
        ;;
 esac
-if $test -r "$1"; then
-       echo "Your (shared) C library seems to be in $1."
-       libc="$1"
-elif $test -r /lib/libc && $test -r /lib/clib; then
-       echo "Your C library seems to be in both /lib/clib and /lib/libc."
-       xxx=apollo
-       libc='/lib/clib /lib/libc'
-       if $test -r /lib/syslib; then
-               echo "(Your math library is in /lib/syslib.)"
-               libc="$libc /lib/syslib"
-       fi
-elif $test -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then
-       echo "Your C library seems to be in $libc, as you said before."
-elif $test -r $incpath/usr/lib/libc$_a; then
-       libc=$incpath/usr/lib/libc$_a;
-       echo "Your C library seems to be in $libc.  That's fine."
-elif $test -r /lib/libc$_a; then
-       libc=/lib/libc$_a;
-       echo "Your C library seems to be in $libc.  You're normal."
-else
-       if tans=`./loc libc$_a blurfl/dyick $libpth`; $test -r "$tans"; then
-               :
-       elif tans=`./loc libc blurfl/dyick $libpth`; $test -r "$tans"; then
-               libnames="$libnames "`./loc clib blurfl/dyick $libpth`
-       elif tans=`./loc clib blurfl/dyick $libpth`; $test -r "$tans"; then
-               :
-       elif tans=`./loc Slibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then
-               :
-       elif tans=`./loc Mlibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then
-               :
-       else
-               tans=`./loc Llibc$_a blurfl/dyick $xlibpth`
-       fi
-       if $test -r "$tans"; then
-               echo "Your C library seems to be in $tans, of all places."
-               libc=$tans
+case "$perl5" in
+'')    echo "None found.  That's ok.";;
+*)     echo "Using $perl5." ;;
+esac
+
+: Determine list of previous versions to include in @INC
+$cat > getverlist <<EOPL
+#!$perl5 -w
+use File::Basename;
+\$api_versionstring = "$api_versionstring";
+\$version = "$version";
+\$stem = "$sitelib_stem";
+\$archname = "$archname";
+EOPL
+       $cat >> getverlist <<'EOPL'
+# Can't have leading @ because metaconfig interprets it as a command!
+;@inc_version_list=();
+# XXX Redo to do opendir/readdir? 
+if (-d $stem) {
+    chdir($stem);
+    ;@candidates = glob("5.*");
+}
+else {
+    ;@candidates = ();
+}
+
+# XXX ToDo:  These comparisons must be reworked when two-digit
+# subversions come along, so that 5.7.10 compares as greater than
+# 5.7.3!  By that time, hope that 5.6.x is sufficiently
+# widespread that we can use the built-in version vectors rather
+# than reinventing them here.  For 5.6.0, however, we must
+# assume this script will likely be run by 5.005_0x.  --AD 1/2000.
+foreach $d (@candidates) {
+    if ($d lt $version) {
+       if ($d ge $api_versionstring) {
+           unshift(@inc_version_list, grep { -d } "$d/$archname", $d);
+       }
+       elsif ($d ge "5.005") {
+           unshift(@inc_version_list, grep { -d } $d);
+       }
+    }
+    else {
+       # Skip newer version.  I.e. don't look in
+       # 5.7.0 if we're installing 5.6.1.
+    }
+}
+
+if (@inc_version_list) {
+    print join(' ', @inc_version_list);
+}
+else {
+    # Blank space to preserve value for next Configure run.
+    print " ";
+}
+EOPL
+chmod +x getverlist
+case "$inc_version_list" in
+'')    if test -x "$perl5"; then
+               dflt=`$perl5 getverlist`
        else
-               libc='blurfl'
+               dflt='none'
        fi
-fi
-if $test $xxx = apollo -o -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then
-       dflt="$libc"
-       cat <<EOM
+       ;;
+$undef) dflt='none' ;;
+*)  dflt="$inc_version_list" ;;
+esac
+case "$dflt" in
+''|' ') dflt=none ;;
+esac
+case "$dflt" in
+5.005) case "$bincompat5005" in
+       $define|true|[yY]*) ;;
+       *) dflt=none ;;
+       esac
+       ;;
+esac
+$cat <<'EOM'
 
-If the guess above is wrong (which it might be if you're using a strange
-compiler, or your machine supports multiple models), you can override it here.
+In order to ease the process of upgrading, this version of perl 
+can be configured to use modules built and installed with earlier 
+versions of perl that were installed under $prefix.  Specify here
+the list of earlier versions that this version of perl should check.
+If Configure detected no earlier versions of perl installed under
+$prefix, then the list will be empty.  Answer 'none' to tell perl
+to not search earlier versions.
 
+The default should almost always be sensible, so if you're not sure,
+just accept the default.
 EOM
-else
-       dflt=''
-       echo $libpth | tr ' ' $trnl | sort | uniq > libpath
-       cat >&4 <<EOM
-I can't seem to find your C library.  I've looked in the following places:
 
-EOM
-       $sed 's/^/      /' libpath
-       cat <<EOM
+rp='List of earlier versions to include in @INC?'
+. ./myread
+case "$ans" in
+[Nn]one|''|' ') inc_version_list=' ' ;;
+*) inc_version_list="$ans" ;;
+esac
+case "$inc_version_list" in
+''|' ') 
+       inc_version_list_init='0';;
+*)     inc_version_list_init=`echo $inc_version_list |
+               $sed -e 's/^/"/' -e 's/ /","/g' -e 's/$/",0/'`
+       ;;
+esac
+$rm -f getverlist
 
-None of these seems to contain your C library. I need to get its name...
+: determine whether to install the scripts
+
+echo " "
+$cat <<EOM
+Do you want to install the various scripts accompanying Perl?
+Usually you do want this.
 
 EOM
-fi
-fn=f
-rp='Where is your C library?'
-. ./getfile
-libc="$ans"
+case "$installscripts" in
+"$undef"|[nN]*)        dflt='n';;
+*)             dflt='y';;
+esac
+rp="Do you want to install the scripts?"
+. ./myread
+case "$ans" in
+[yY]*) val="$define";;
+*)     val="$undef" ;;
+esac
+set installscripts
+eval $setvar
 
-echo " "
-echo $libc $libnames | tr ' ' $trnl | sort | uniq > libnames
-set X `cat libnames`
-shift
-xxx=files
-case $# in 1) xxx=file; esac
-echo "Extracting names from the following $xxx for later perusal:" >&4
-echo " "
-$sed 's/^/     /' libnames >&4
-echo " "
-$echo $n "This may take a while...$c" >&4
+: determine whether to install perl also as /usr/bin/perl
 
-for file in $*; do
-       case $file in
-       *$so*) $nm $nm_so_opt $nm_opt $file 2>/dev/null;;
-       *) $nm $nm_opt $file 2>/dev/null;;
+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.
+I can install the perl you are about to compile also as /usr/bin/perl
+(in addition to $installbin/perl).
+EOM
+       case "$installusrbinperl" in
+       "$undef"|[nN]*) dflt='n';;
+       *)              dflt='y';;
        esac
-done >libc.tmp
-
-$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'
-xxx='[ADTSIW]'
-if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx  *_[_.]*//p' -e 's/^.* $xxx  *//p'";\
-       eval $xscan;\
-       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
-               eval $xrun
-elif com="$sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p'";\
-       eval $xscan;\
-       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
-               eval $xrun
-elif com="$sed -n -e '/|UNDEF/d' -e '/FUNC..GL/s/^.*|__*//p'";\
-       eval $xscan;\
-       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
-               eval $xrun
-elif com="$sed -n -e 's/^.* D __*//p' -e 's/^.* D //p'";\
-       eval $xscan;\
-       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
-               eval $xrun
-elif com="$sed -n -e 's/^_//' -e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p'";\
-       eval $xscan;\
-       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
-               eval $xrun
-elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p'";\
-       eval $xscan;\
-       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
-               eval $xrun
-elif com="$grep '|' | $sed -n -e '/|COMMON/d' -e '/|DATA/d' \
-                               -e '/ file/d' -e 's/^\([^       ]*\).*/\1/p'";\
-       eval $xscan;\
-       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
-               eval $xrun
-elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p' -e 's/^.*|FUNC |WEAK .*|//p'";\
-       eval $xscan;\
-       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
-               eval $xrun
-elif com="$sed -n -e 's/^__//' -e '/|Undef/d' -e '/|Proc/s/ .*//p'";\
-       eval $xscan;\
-       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
-               eval $xrun
-elif com="$sed -n -e 's/^.*|Proc .*|Text *| *//p'";\
-       eval $xscan;\
-       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
-               eval $xrun
-elif com="$sed -n -e '/Def. Text/s/.* \([^ ]*\)\$/\1/p'";\
-       eval $xscan;\
-       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
-               eval $xrun
-elif com="$sed -n -e 's/^[-0-9a-f ]*_\(.*\)=.*/\1/p'";\
-       eval $xscan;\
-       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
-               eval $xrun
-elif com="$sed -n -e 's/.*\.text n\ \ \ \.//p'";\
-       eval $xscan;\
-       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
-               eval $xrun
-elif com="sed -n -e 's/^__.*//' -e 's/[       ]*D[    ]*[0-9]*.*//p'";\
-       eval $xscan;\
-       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
-               eval $xrun
-else
-       $nm -p $* 2>/dev/null >libc.tmp
-       $grep fprintf libc.tmp > libc.ptf
-       if com="$sed -n -e 's/^.* [ADTSIW]  *_[_.]*//p' -e 's/^.* [ADTSIW] //p'";\
-               eval $xscan; $contains '^fprintf$' libc.list >/dev/null 2>&1
-       then
-               nm_opt='-p'
-               eval $xrun
-       else
-               echo " "
-               echo "$nm didn't seem to work right. Trying $ar instead..." >&4
-               com=''
-               if $ar t $libc > libc.tmp && $contains '^fprintf$' libc.tmp >/dev/null 2>&1; then
-                       for thisname in $libnames $libc; do
-                               $ar t $thisname >>libc.tmp
-                       done
-                       $sed -e "s/\\$_o\$//" < libc.tmp > libc.list
-                       echo "Ok." >&4
-               elif test "X$osname" = "Xos2" && $ar tv $libc > libc.tmp; then
-                       # Repeat libc to extract forwarders to DLL entries too
-                       for thisname in $libnames $libc; do
-                               $ar tv $thisname >>libc.tmp
-                               # Revision 50 of EMX has bug in $ar.
-                               # it will not extract forwarders to DLL entries
-                               # Use emximp which will extract exactly them.
-                               emximp -o tmp.imp $thisname \
-                                   2>/dev/null && \
-                                   $sed -e 's/^\([_a-zA-Z0-9]*\) .*$/\1/p' \
-                                   < tmp.imp >>libc.tmp
-                               $rm tmp.imp
-                       done
-                       $sed -e "s/\\$_o\$//" -e 's/^ \+//' < libc.tmp > libc.list
-                       echo "Ok." >&4
-               else
-                       echo "$ar didn't seem to work right." >&4
-                       echo "Maybe this is a Cray...trying bld instead..." >&4
-                       if bld t $libc | $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" > libc.list
-                       then
-                               for thisname in $libnames; do
-                                       bld t $libnames | \
-                                       $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" >>libc.list
-                                       $ar t $thisname >>libc.tmp
-                               done
-                               echo "Ok." >&4
-                       else
-                               echo "That didn't work either.  Giving up." >&4
-                               exit 1
-                       fi
-               fi
-       fi
-fi
-nm_extract="$com"
-if $test -f /lib/syscalls.exp; then
-       echo " "
-       echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4
-       $sed -n 's/^\([^        ]*\)[   ]*syscall[0-9]*$/\1/p' /lib/syscalls.exp >>libc.list
+       rp="Do you want to install perl as /usr/bin/perl?"
+       . ./myread
+       case "$ans" in
+       [yY]*)  val="$define";;
+       *)      val="$undef" ;;
+       esac
+else
+       val="$undef"
 fi
-;;
-esac
-$rm -f libnames libpath
+set installusrbinperl
+eval $setvar
 
 : see if dld is available
 set dld.h i_dld
 eval $inhdr
 
-: is a C symbol defined?
-csym='tlook=$1;
-case "$3" in
--v) tf=libc.tmp; tc=""; tdc="";;
--a) tf=libc.tmp; tc="[0]"; tdc="[]";;
-*) tlook="^$1\$"; tf=libc.list; tc="()"; tdc="()";;
-esac;
-tx=yes;
-case "$reuseval-$4" in
-true-) ;;
-true-*) tx=no; eval "tval=\$$4"; case "$tval" in "") tx=yes;; esac;;
-esac;
-case "$tx" in
-yes)
-       case "$runnm" in
-       true)
-               if $contains $tlook $tf >/dev/null 2>&1;
-               then tval=true;
-               else tval=false;
-               fi;;
-       *)
-               echo "int main() { extern short $1$tdc; printf(\"%hd\", $1$tc); }" > t.c;
-               if $cc $optimize $ccflags $ldflags -o t t.c $libs >/dev/null 2>&1;
-               then tval=true;
-               else tval=false;
-               fi;
-               $rm -f t t.c;;
-       esac;;
-*)
-       case "$tval" in
-       $define) tval=true;;
-       *) tval=false;;
-       esac;;
-esac;
-eval "$2=$tval"'
-
-: define an is-in-libc? function
-inlibc='echo " "; td=$define; tu=$undef;
-sym=$1; var=$2; eval "was=\$$2";
-tx=yes;
-case "$reuseval$was" in
-true) ;;
-true*) tx=no;;
-esac;
-case "$tx" in
-yes)
-       set $sym tres -f;
-       eval $csym;
-       case "$tres" in
-       true)
-               echo "$sym() found." >&4;
-               case "$was" in $undef) . ./whoa; esac; eval "$var=\$td";;
-       *)
-               echo "$sym() NOT found." >&4;
-               case "$was" in $define) . ./whoa; esac; eval "$var=\$tu";;
-       esac;;
-*)
-       case "$was" in
-       $define) echo "$sym() found." >&4;;
-       *) echo "$sym() NOT found." >&4;;
-       esac;;
-esac'
-
 : see if dlopen exists
 xxx_runnm="$runnm"
 runnm=false
@@ -6226,7 +6488,7 @@ EOM
        esac
        for thisflag in $ldflags; do
                case "$thisflag" in
-               -L*)
+               -L*|-R*)
                        case " $dflt " in
                        *" $thisflag "*) ;;
                        *) dflt="$dflt $thisflag" ;;
@@ -6401,7 +6663,7 @@ case "$shrpdir" in
 *)     $cat >&4 <<EOM
 WARNING:  Use of the shrpdir variable for the installation location of
 the shared $libperl is not supported.  It was never documented and
-will not work in this version.  Let me (perlbug@perl.com)
+will not work in this version.  Let me (perlbug@perl.org)
 know of any problems this may cause.
 
 EOM
@@ -6492,6 +6754,24 @@ case "$ldlibpthname" in
 none)  ldlibpthname='' ;;
 esac
 
+: determine where manual pages are on this system
+echo " "
+case "$sysman" in
+'') 
+       syspath='/usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1'
+       syspath="$syspath /usr/man/u_man/man1 /usr/share/man/man1"
+       syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
+       syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
+       syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
+       sysman=`./loc . /usr/man/man1 $syspath`
+       ;;
+esac
+if $test -d "$sysman"; then
+       echo "System manual is in $sysman." >&4
+else
+       echo "Could not find manual pages in source form." >&4
+fi
+
 : determine where manual pages go
 set man1dir man1dir none
 eval $prefixit
@@ -6578,46 +6858,26 @@ esac
 
 : see if we can have long filenames
 echo " "
-rmlist="$rmlist /tmp/cf$$"
-$test -d /tmp/cf$$ || mkdir /tmp/cf$$
 first=123456789abcdef
-second=/tmp/cf$$/$first
-$rm -f $first $second
+$rm -f $first
 if (echo hi >$first) 2>/dev/null; then
        if $test -f 123456789abcde; then
                echo 'You cannot have filenames longer than 14 characters.  Sigh.' >&4
                val="$undef"
        else
-               if (echo hi >$second) 2>/dev/null; then
-                       if $test -f /tmp/cf$$/123456789abcde; then
-                               $cat <<'EOM'
-That's peculiar... You can have filenames longer than 14 characters, but only
-on some of the filesystems.  Maybe you are using NFS.  Anyway, to avoid problems
-I shall consider your system cannot support long filenames at all.
-EOM
-                               val="$undef"
-                       else
-                               echo 'You can have filenames longer than 14 characters.' >&4
-                               val="$define"
-                       fi
-               else
-                       $cat <<'EOM'
-How confusing! Some of your filesystems are sane enough to allow filenames
-longer than 14 characters but some others like /tmp can't even think about them.
-So, for now on, I shall assume your kernel does not allow them at all.
-EOM
-                       val="$undef"
-               fi
+               echo 'You can have filenames longer than 14 characters.'>&4
+               val="$define"
        fi
 else
        $cat <<'EOM'
-You can't have filenames longer than 14 chars.  You can't even think about them!
+You can't have filenames longer than 14 chars.
+You can't even think about them!
 EOM
        val="$undef"
 fi 
 set d_flexfnam
 eval $setvar
-$rm -rf /tmp/cf$$ 123456789abcde*
+$rm -rf 123456789abcde*
 
 : determine where library module manual pages go
 set man3dir man3dir none
@@ -6650,7 +6910,7 @@ esac
 echo "If you don't want the manual sources installed, answer 'none'."
 prog=`echo $package | $sed 's/-*[0-9.]*$//'`
 case "$man3dir" in
-'')    dflt=`echo $man1dir | $sed -e 's/man1/man3/g' -e 's/man\.1/man\.3/g'`
+'')    dflt=`echo "$man1dir" | $sed -e 's/man1/man3/g' -e 's/man\.1/man\.3/g'`
        if $test -d "$privlib/man/man3"; then
                cat <<EOM >&4
 
@@ -6668,16 +6928,18 @@ EOM
                esac
     fi
        ;;
-' ') dflt=none;;
 *)     dflt="$man3dir" ;;
 esac
+case "$dflt" in
+' ') dflt=none ;;
+esac
 echo " "
 fn=dn+~
 rp="Where do the $package library man pages (source) go?"
 . ./getfile
 man3dir="$ans"
 man3direxp="$ansexp"
-case "$man1dir" in
+case "$man3dir" in
 '')    man3dir=' '
        installman3dir='';;
 esac
@@ -6876,18 +7138,23 @@ case "$myhostname" in
                                        /[       ]$myhostname[  . ]/p" > hosts
                }
                tmp_re="[       . ]"
-               $test x`$awk "/[0-9].*[  ]$myhostname$tmp_re/ { sum++ }
+               if $test -f hosts; then
+                       $test x`$awk "/[0-9].*[  ]$myhostname$tmp_re/ { sum++ }
                             END { print sum }" hosts` = x1 || tmp_re="[         ]"
-               dflt=.`$awk "/[0-9].*[   ]$myhostname$tmp_re/ {for(i=2; i<=NF;i++) print \\\$i}" \
-                       hosts | $sort | $uniq | \
-                       $sed -n -e "s/$myhostname\.\([-a-zA-Z0-9_.]\)/\1/p"`
-               case `$echo X$dflt` in
-               X*\ *)  echo "(Several hosts in /etc/hosts matched hostname)"
+                       dflt=.`$awk "/[0-9].*[   ]$myhostname$tmp_re/ {for(i=2; i<=NF;i++) print \\\$i}" \
+                               hosts | $sort | $uniq | \
+                               $sed -n -e "s/$myhostname\.\([-a-zA-Z0-9_.]\)/\1/p"`
+                       case `$echo X$dflt` in
+                       X*\ *)  echo "(Several hosts in the database matched hostname)"
+                               dflt=.
+                               ;;
+                       X.) echo "(You do not have fully-qualified names in the hosts database)"
+                               ;;
+                       esac
+               else
+                       echo "(I cannot locate a hosts database anywhere)"
                        dflt=.
-                       ;;
-               X.) echo "(You do not have fully-qualified names in /etc/hosts)"
-                       ;;
-               esac
+               fi
                case "$dflt" in
                .)
                        tans=`./loc resolv.conf X /etc /usr/etc`
@@ -7003,7 +7270,7 @@ $cat <<EOM
 If you or somebody else will be maintaining perl at your site, please
 fill in the correct e-mail address here so that they may be contacted
 if necessary. Currently, the "perlbug" program included with perl
-will send mail to this address in addition to perlbug@perl.com. You may
+will send mail to this address in addition to perlbug@perl.org. You may
 enter "none" for no administrator.
 
 EOM
@@ -7122,37 +7389,6 @@ else
        installscript="$scriptdirexp"
 fi
 
-: determine where site specific architecture-dependent libraries go.
-: sitelib  default is /usr/local/lib/perl5/site_perl/$version
-: sitearch default is /usr/local/lib/perl5/site_perl/$version/$archname
-: sitelib may have an optional trailing /share.
-case "$sitearch" in
-'')    dflt=`echo $sitelib | $sed 's,/share$,,'`
-       dflt="$dflt/$archname"
-       ;;
-*)     dflt="$sitearch"
-       ;;
-esac
-set sitearch sitearch none
-eval $prefixit
-$cat <<EOM
-
-The installation process will also create a directory for
-architecture-dependent site-specific extensions and modules.
-
-EOM
-fn=d~+
-rp='Pathname for the site-specific architecture-dependent library files?'
-. ./getfile
-sitearch="$ans"
-sitearchexp="$ansexp"
-: Change installation prefix, if necessary.
-if $test X"$prefix" != X"$installprefix"; then
-       installsitearch=`echo $sitearchexp | sed "s#^$prefix#$installprefix#"`
-else
-       installsitearch="$sitearchexp"
-fi
-
 : determine where add-on public executables go
 case "$sitebin" in
 '')    dflt=$siteprefix/bin ;;
@@ -7170,67 +7406,6 @@ else
        installsitebin="$sitebinexp"
 fi
 
-: see if sqrtl exists
-set sqrtl d_sqrtl
-eval $inlibc
-
-case "$ccflags" in
-*-DUSE_LONG_DOUBLE*|*-DUSE_MORE_BITS*) uselongdouble="$define" ;;
-esac
-
-case "$uselongdouble" in
-$define|true|[yY]*)    dflt='y';;
-*) dflt='n';;
-esac
-cat <<EOM
-
-Perl can be built to take advantage of long doubles which
-(if available) may give more accuracy and range for floating point numbers.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-rp='Try to use long doubles if available?'
-. ./myread
-case "$ans" in
-y|Y)   val="$define"   ;;
-*)      val="$undef"   ;;
-esac
-set uselongdouble
-eval $setvar
-
-case "$uselongdouble" in
-true|[yY]*) uselongdouble="$define" ;;
-esac
-
-case "$uselongdouble" in
-$define)
-: Look for a hint-file generated 'call-back-unit'.  If the
-: user has specified that long doubles should be used,
-: we may need to set or change some other defaults.
-       if $test -f uselongdouble.cbu; then
-               echo "Your platform has some specific hints for long doubles, using them..."
-               . ./uselongdouble.cbu
-       else
-               $cat <<EOM
-(Your platform doesn't have any specific hints for long doubles.)
-EOM
-       fi
-       ;;
-esac
-
-case "$uselongdouble:$d_sqrtl" in
-$define:$undef)
-               $cat <<EOM >&4
-
-*** You requested the use of long doubles but you do not seem to have
-*** the mathematic functions for long doubles.  I'm disabling the use
-*** of long doubles.
-
-EOM
-       uselongdouble=$undef
-       ;;
-esac
-
 case "$useperlio" in
 $define|true|[yY]*)    dflt='y';;
 *) dflt='n';;
@@ -7276,95 +7451,19 @@ case "$vendorprefix" in
        rp='Pathname for the vendor-supplied executables directory?'
        . ./getfile
        vendorbin="$ans"
-       vendorbinexp="$ansexp"
-       ;;
-esac
-: Change installation prefix, if necessary.
-if $test X"$prefix" != X"$installprefix"; then
-       installvendorbin=`echo $vendorbinexp | $sed "s#^$prefix#$installprefix#"`
-else
-       installvendorbin="$vendorbinexp"
-fi
-
-: see if qgcvt exists
-set qgcvt d_qgcvt
-eval $inlibc
-
-: check for length of double
-echo " "
-case "$doublesize" in
-'')
-       echo "Checking to see how big your double precision numbers are..." >&4
-       $cat >try.c <<'EOCP'
-#include <stdio.h>
-int main()
-{
-    printf("%d\n", (int)sizeof(double));
-    exit(0);
-}
-EOCP
-       set try
-       if eval $compile_ok; then
-               doublesize=`./try`
-               echo "Your double is $doublesize bytes long."
-       else
-               dflt='8'
-               echo "(I can't seem to compile the test program.  Guessing...)"
-               rp="What is the size of a double precision number (in bytes)?"
-               . ./myread
-               doublesize="$ans"
-       fi
-       ;;
-esac
-$rm -f try.c try
-
-: check for long doubles
-echo " "
-echo "Checking to see if you have long double..." >&4
-echo 'int main() { long double x = 7.0; }' > try.c
-set try
-if eval $compile; then
-       val="$define"
-       echo "You have long double."
+       vendorbinexp="$ansexp"
+       ;;
+esac
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installvendorbin=`echo $vendorbinexp | $sed "s#^$prefix#$installprefix#"`
 else
-       val="$undef"
-       echo "You do not have long double."
+       installvendorbin="$vendorbinexp"
 fi
-$rm try.*
-set d_longdbl
-eval $setvar
 
-: check for length of long double
-case "${d_longdbl}${longdblsize}" in
-$define)
-       echo " "
-       echo "Checking to see how big your long doubles are..." >&4
-       $cat >try.c <<'EOCP'
-#include <stdio.h>
-int main()
-{
-       printf("%d\n", sizeof(long double));
-}
-EOCP
-       set try
-       set try
-       if eval $compile; then
-               longdblsize=`./try$exe_ext`
-               echo "Your long doubles are $longdblsize bytes long."
-       else
-               dflt='8'
-               echo " "
-               echo "(I can't seem to compile the test program.  Guessing...)" >&4
-               rp="What is the size of a long double (in bytes)?"
-               . ./myread
-               longdblsize="$ans"
-       fi
-       if $test "X$doublesize" = "X$longdblsize"; then
-               echo "(That isn't any different from an ordinary double.)"
-       fi      
-       ;;
-esac
-$rm -f try.* try
+: see if qgcvt exists
+set qgcvt d_qgcvt
+eval $inlibc
 
 echo " "
 
@@ -7387,7 +7486,7 @@ EOCP
                case "$yyy" in
                123.456)
                        sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"';
-                       sPRIFldbl='"F"'; sPRIGldbl='"G"'; sPRIEldbl='"E"';
+                       sPRIFUldbl='"F"'; sPRIGUldbl='"G"'; sPRIEUldbl='"E"';
                        echo "We will use %f."
                        ;;
                esac
@@ -7409,7 +7508,7 @@ EOCP
                case "$yyy" in
                123.456)
                        sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"';
-                       sPRIFldbl='"llF"'; sPRIGldbl='"llG"'; sPRIEldbl='"llE"';
+                       sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"';
                        echo "We will use %llf."
                        ;;
                esac
@@ -7431,7 +7530,7 @@ EOCP
                case "$yyy" in
                123.456)
                        sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"';
-                       sPRIFldbl='"LF"'; sPRIGldbl='"LG"'; sPRIEldbl='"LE"';
+                       sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"';
                        echo "We will use %Lf."
                        ;;
                esac
@@ -7453,7 +7552,7 @@ EOCP
                case "$yyy" in
                123.456)
                        sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"';
-                       sPRIFldbl='"lF"'; sPRIGldbl='"lG"'; sPRIEldbl='"lE"';
+                       sPRIFUldbl='"lF"'; sPRIGUldbl='"lG"'; sPRIEUldbl='"lE"';
                        echo "We will use %lf."
                        ;;
                esac
@@ -7462,6 +7561,8 @@ fi
 
 if $test X"$sPRIfldbl" = X; then
        echo "Cannot figure out how to print long doubles." >&4
+else
+       sSCNfldbl=$sPRIfldbl    # expect consistency
 fi
 
 $rm -f try try.*
@@ -7470,28 +7571,29 @@ fi # d_longdbl
 
 case "$sPRIfldbl" in
 '')    d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef"; 
-       d_PRIFldbl="$undef"; d_PRIGldbl="$undef"; d_PRIEldbl="$undef"; 
+       d_PRIFUldbl="$undef"; d_PRIGUldbl="$undef"; d_PRIEUldbl="$undef"; 
+       d_SCNfldbl="$undef";
        ;;
 *)     d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define"; 
-       d_PRIFldbl="$define"; d_PRIGldbl="$define"; d_PRIEldbl="$define"; 
+       d_PRIFUldbl="$define"; d_PRIGUldbl="$define"; d_PRIEUldbl="$define"; 
+       d_SCNfldbl="$define";
        ;;
 esac
 
 : Check how to convert floats to strings.
-if test "X$d_Gconvert" = X; then
-       echo " "
-       echo "Checking for an efficient way to convert floats to strings."
-       echo " " > try.c
-       case "$uselongdouble" in
-       "$define") echo "#define USE_LONG_DOUBLE" >>try.c ;;
-       esac
-       case "$d_longdbl" in
-       "$define") echo "#define HAS_LONG_DOUBLE" >>try.c ;;
-       esac
-       case "$d_PRIgldbl" in
-       "$define") echo "#define HAS_PRIgldbl"    >>try.c ;;
-       esac
-       $cat >>try.c <<EOP
+echo " "
+echo "Checking for an efficient way to convert floats to strings."
+echo " " > try.c
+case "$uselongdouble" in
+"$define") echo "#define USE_LONG_DOUBLE" >>try.c ;;
+esac
+case "$d_longdbl" in
+"$define") echo "#define HAS_LONG_DOUBLE" >>try.c ;;
+esac
+case "$d_PRIgldbl" in
+"$define") echo "#define HAS_PRIgldbl"    >>try.c ;;
+esac
+$cat >>try.c <<EOP
 #ifdef TRY_gconvert
 #define Gconvert(x,n,t,b) gconvert((x),(n),(t),(b))
 char *myname = "gconvert";
@@ -7586,49 +7688,58 @@ int main()
        Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf); 
        checkit("-100000", buf);
 
+       Gconvert((DOUBLETYPE)123.456, 8, 0, buf); 
+       checkit("123.456", buf);
+
        exit(0);
 }
 EOP
-       case "$d_Gconvert" in
-       gconvert*) xxx_list='gconvert gcvt sprintf' ;;
-       gcvt*) xxx_list='gcvt gconvert sprintf' ;;
-       sprintf*) xxx_list='sprintf gconvert gcvt' ;;
-       *) xxx_list='gconvert gcvt sprintf' ;;
-       esac
-
-        case "$d_longdbl$uselongdouble$d_qgcvt" in
-        "$define$define$define") xxx_list="`echo $xxx_list|sed 's/gcvt/qgcvt gcvt/'`" ;;
-       esac
+case "$d_Gconvert" in
+gconvert*) xxx_list='gconvert gcvt sprintf' ;;
+gcvt*) xxx_list='gcvt gconvert sprintf' ;;
+sprintf*) xxx_list='sprintf gconvert gcvt' ;;
+*) xxx_list='gconvert gcvt sprintf' ;;
+esac
+
+case "$d_longdbl$uselongdouble$d_PRIgldbl" in
+"$define$define$define")
+    # for long doubles prefer first qgcvt, then sprintf
+    xxx_list="`echo $xxx_list|sed s/sprintf//`" 
+    xxx_list="sprintf $xxx_list"
+    case "$d_qgcvt" in
+    "$define") xxx_list="qgcvt $xxx_list" ;;
+    esac
+    ;;
+esac
 
-       for xxx_convert in $xxx_list; do
-               echo "Trying $xxx_convert..."
-               $rm -f try try$_o
-               set try -DTRY_$xxx_convert
-               if eval $compile; then
-                       echo "$xxx_convert() found." >&4
-                       if ./try; then
-                               echo "I'll use $xxx_convert to convert floats into a string." >&4
-                               break;
-                       else
-                               echo "...But $xxx_convert didn't work as I expected."
-                       fi
+for xxx_convert in $xxx_list; do
+       echo "Trying $xxx_convert..."
+       $rm -f try try$_o
+       set try -DTRY_$xxx_convert
+       if eval $compile; then
+               echo "$xxx_convert() found." >&4
+               if ./try; then
+                       echo "I'll use $xxx_convert to convert floats into a string." >&4
+                       break;
                else
-                       echo "$xxx_convert NOT found." >&4
+                       echo "...But $xxx_convert didn't work as I expected."
                fi
-       done
-               
-       case "$xxx_convert" in
-       gconvert) d_Gconvert='gconvert((x),(n),(t),(b))' ;;
-       gcvt) d_Gconvert='gcvt((x),(n),(b))' ;;
-       qgcvt) d_Gconvert='qgcvt((x),(n),(b))' ;;
-       *) case "$uselongdouble$d_longdbl$d_PRIgldbl" in
-          "$define$define$define")
-             d_Gconvert="sprintf((b),\"%.*$sPRIgldbl\",(n),(x))" ;;
-          *) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;;
-          esac
-          ;;  
-       esac
-fi
+       else
+               echo "$xxx_convert NOT found." >&4
+       fi
+done
+       
+case "$xxx_convert" in
+gconvert) d_Gconvert='gconvert((x),(n),(t),(b))' ;;
+gcvt) d_Gconvert='gcvt((x),(n),(b))' ;;
+qgcvt) d_Gconvert='qgcvt((x),(n),(b))' ;;
+*) case "$uselongdouble$d_longdbl$d_PRIgldbl" in
+   "$define$define$define")
+      d_Gconvert="sprintf((b),\"%.*\"$sPRIgldbl,(n),(x))" ;;
+   *) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;;
+   esac
+   ;;  
+esac
 
 : Initialize h_fcntl
 h_fcntl=false
@@ -8456,10 +8567,6 @@ eval $inlibc
 set endservent d_endsent
 eval $inlibc
 
-: see if endspent exists
-set endspent d_endspent
-eval $inlibc
-
 : Locate the flags for 'open()'
 echo " "
 $cat >open3.c <<'EOCP'
@@ -8598,7 +8705,8 @@ extern int errno;
 #ifdef I_UNISTD
 #include <unistd.h>
 #endif
-#ifdef $i_string
+#$i_string I_STRING
+#ifdef I_STRING
 #include <string.h>
 #else
 #include <strings.h>
@@ -9038,6 +9146,10 @@ $rm -f try.* try
 set d_fpos64_t
 eval $setvar
 
+: see if frexpl exists
+set frexpl d_frexpl
+eval $inlibc
+
 hasstruct='varname=$1; struct=$2; shift; shift;
 while $test $# -ge 2; do
        case "$1" in
@@ -9115,6 +9227,10 @@ esac
 set getcwd d_getcwd
 eval $inlibc
 
+: see if getespwnam exists
+set getespwnam d_getespwnam
+eval $inlibc
+
 
 : see if getfsstat exists
 set getfsstat d_getfsstat
@@ -9293,6 +9409,10 @@ echo " "
 set d_getprotoprotos getprotoent $i_netdb netdb.h
 eval $hasproto
 
+: see if getprpwnam exists
+set getprpwnam d_getprpwnam
+eval $inlibc
+
 : see if getpwent exists
 set getpwent d_getpwent
 eval $inlibc
@@ -9315,10 +9435,6 @@ echo " "
 set d_getservprotos getservent $i_netdb netdb.h
 eval $hasproto
 
-: see if getspent exists
-set getspent d_getspent
-eval $inlibc
-
 : see if getspnam exists
 set getspnam d_getspnam
 eval $inlibc
@@ -9528,6 +9644,14 @@ set d_isascii
 eval $setvar
 $rm -f isascii*
 
+: see if isnan exists
+set isnan d_isnan
+eval $inlibc
+
+: see if isnanl exists
+set isnanl d_isnanl
+eval $inlibc
+
 : see if killpg exists
 set killpg d_killpg
 eval $inlibc
@@ -9610,7 +9734,7 @@ echo 'int main() { long long x = 7; return 0; }' > try.c
 set try
 if eval $compile; then
        val="$define"
-       echo "You have have long long."
+       echo "You have long long."
 else
        val="$undef"
        echo "You do not have long long."
@@ -9747,6 +9871,10 @@ esac
 
 
 
+: see if modfl exists
+set modfl d_modfl
+eval $inlibc
+
 : see if mprotect exists
 set mprotect d_mprotect
 eval $inlibc
@@ -10116,6 +10244,38 @@ esac
 
 $rm -f try.* try
 
+case "$d_nv_preserves_uv" in
+"$define") d_nv_preserves_uv_bits=`expr $uvsize \* 8` ;;
+*)     $echo "Checking how many bits of your UVs your NVs can preserve..." >&4
+       $cat <<EOP >try.c
+#include <stdio.h>
+int main() {
+    $uvtype u = 0;
+    int     n = 8 * $uvsize;
+    int     i;
+    for (i = 0; i < n; i++) {
+      u = u << 1 | ($uvtype)1;
+      if (($uvtype)($nvtype)u != u)
+        break;
+    }
+    printf("%d\n", i);
+    exit(0);
+}
+EOP
+       set try
+       if eval $compile; then
+               d_nv_preserves_uv_bits="`./try$exe_ext`"
+       fi
+       case "$d_nv_preserves_uv_bits" in
+       [1-9]*) $echo "Your NVs can preserve $d_nv_preserves_uv_bits bits of your UVs."  2>&1 ;;
+       *)      $echo "Can't figure out how many bits your NVs preserve." 2>&1
+               d_nv_preserves_uv_bits="$undef"
+               ;;
+       esac
+       $rm -f try.* try
+       ;;
+esac
+
 
 : check for off64_t
 echo " "
@@ -10910,6 +11070,10 @@ eval $inlibc
 set setpriority d_setprior
 eval $inlibc
 
+: see if setproctitle exists
+set setproctitle d_setproctitle
+eval $inlibc
+
 : see if setpwent exists
 set setpwent d_setpwent
 eval $inlibc
@@ -10942,10 +11106,6 @@ eval $inlibc
 set setsid d_setsid
 eval $inlibc
 
-: see if setspent exists
-set setspent d_setspent
-eval $inlibc
-
 : see if setvbuf exists
 set setvbuf d_setvbuf
 eval $inlibc
@@ -10974,10 +11134,19 @@ $define)
        *) dflt='n';;
        esac
        echo "$package can use the sfio library, but it is experimental."
+       case "$useperlio" in
+       "$undef")
+           echo "For sfio also the PerlIO abstraction layer is needed."
+           echo "Earlier you said you wouldn't want that."
+           ;;
+       esac
        rp="You seem to have sfio available, do you want to try using it?"
        . ./myread
        case "$ans" in
-       y|Y) ;;
+       y|Y)    echo "Ok, turning on both sfio and PerlIO, then."
+               useperlio="$define"
+               val="$define"
+               ;;
        *)      echo "Ok, avoiding sfio this time.  I'll use stdio instead."
                val="$undef"
                : Remove sfio from list of libraries to use
@@ -10990,8 +11159,9 @@ $define)
        ;;
 *)     case "$usesfio" in
        true|$define|[yY]*)
-               echo "Sorry, cannot find sfio on this machine" >&4
-               echo "Ignoring your setting of usesfio=$usesfio" >&4
+               echo "Sorry, cannot find sfio on this machine." >&4
+               echo "Ignoring your setting of usesfio=$usesfio." >&4
+               val="$undef"
                ;;
        esac
        ;;
@@ -11160,6 +11330,10 @@ set d_sigsetjmp
 eval $setvar
 $rm -f try.c try
 
+: see if socks5_init exists
+set socks5_init d_socks5_init
+eval $inlibc
+
 : see if sys/stat.h is available
 set sys/stat.h i_sysstat
 eval $inhdr
@@ -11456,6 +11630,61 @@ eval $inlibc
 set strtoll d_strtoll
 eval $inlibc
 
+case "$d_longlong-$d_strtoll" in
+"$define-$define")
+       $cat <<EOM
+Checking whether your strtoll() works okay...
+EOM
+       $cat >try.c <<'EOCP'
+#include <errno.h>
+#ifdef __hpux
+#define strtoll __strtoll
+#endif
+#ifdef __EMX__
+#define strtoll _strtoll
+#endif
+#include <stdio.h>
+extern long long int strtoll(char *s, char **, int); 
+static int bad = 0;
+int check(char *s, long long ell, int een) {
+       long long gll;
+       errno = 0;
+       gll = strtoll(s, 0, 10);
+       if (!((gll == ell) && (errno == een)))
+               bad++;
+}
+int main() {
+       check(" 1",                                      1LL, 0);
+       check(" 0",                                      0LL, 0);
+       check("-1",                                     -1LL, 0);
+       check("-9223372036854775808", -9223372036854775808LL, 0);
+       check("-9223372036854775808", -9223372036854775808LL, 0);
+       check(" 9223372036854775807",  9223372036854775807LL, 0);
+       check("-9223372036854775808", -9223372036854775808LL, 0);
+       check(" 9223372036854775808",  9223372036854775807LL, ERANGE);
+       check("-9223372036854775809", -9223372036854775808LL, ERANGE);
+       if (!bad)
+               printf("ok\n");
+}
+EOCP
+       set try
+       if eval $compile; then
+               yyy=`./try`
+               case "$yyy" in
+               ok) echo "Your strtoll() seems to be working okay." ;;
+               *) cat <<EOM >&4
+Your strtoll() doesn't seem to be working okay.
+EOM
+                  d_strtoll="$undef"
+                  ;;
+               esac
+       else
+               echo "(I can't seem to compile the test program--assuming it doesn't)"
+               d_strtoll="$undef"
+       fi
+       ;;
+esac
+
 : see if strtoul exists
 set strtoul d_strtoul
 eval $inlibc
@@ -11464,6 +11693,49 @@ eval $inlibc
 set strtoull d_strtoull
 eval $inlibc
 
+case "$d_longlong-$d_strtoull" in
+"$define-$define")
+       $cat <<EOM
+Checking whether your strtoull() works okay...
+EOM
+       $cat >try.c <<'EOCP'
+#include <errno.h>
+#ifdef __hpux
+#define strtoull __strtoull
+#endif
+#include <stdio.h>
+extern unsigned long long int strtoull(char *s, char **, int); 
+static int bad = 0;
+int check(char *s, long long eull, int een) {
+       long long gull;
+       errno = 0;
+       gull = strtoull(s, 0, 10);
+       if (!((gull == eull) && (errno == een)))
+               bad++;
+}
+int main() {
+       check(" 1",                                       1LL, 0);
+       check(" 0",                                       0LL, 0);
+       check("18446744073709551615", 18446744073709551615ULL, 0);
+       check("18446744073709551616", 18446744073709551615ULL, ERANGE);
+       if (!bad)
+               printf("ok\n");
+}
+EOCP
+       set try
+       if eval $compile; then
+               case "`./try`" in
+               ok) echo "Your strtoull() seems to be working okay." ;;
+               *) cat <<EOM >&4
+Your strtoull() doesn't seem to be working okay.
+EOM
+                  d_strtoull="$undef"
+                  ;;
+               esac
+       fi
+       ;;
+esac
+
 : see if strtouq exists
 set strtouq d_strtouq
 eval $inlibc
@@ -12297,14 +12569,14 @@ val=$undef
 set tebcdic
 if eval $compile_ok; then
        if ./tebcdic; then
-               echo "You have EBCDIC." >&4
+               echo "You seem to speak EBCDIC." >&4
                val="$define"
        else
-               echo "Nope, no EBCDIC, probably ASCII or some ISO Latin." >&4
+               echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF8." >&4
        fi
 else
        echo "I'm unable to compile the test program." >&4
-       echo "I'll assume ASCII or some ISO Latin." >&4
+       echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4
 fi
 $rm -f tebcdic.c tebcdic
 set ebcdic
@@ -12424,9 +12696,52 @@ EOM
        $rm -f core try.core core.try.*
        case "$fflushNULL" in
        x)      $cat >&4 <<EOM
-Your fflush(NULL) works okay.
+Your fflush(NULL) works okay for output streams.
+Let's see if it clobbers input pipes...
+EOM
+# As of mid-March 2000 all versions of Solaris appear to have a stdio
+# bug that improperly flushes the input end of pipes.  So we avoid the
+# autoflush on fork/system/exec support for now. :-(
+$cat >tryp.c <<EOCP
+#include <stdio.h>
+int
+main(int argc, char **argv)
+{
+    char buf[1024];
+    int i;
+    char *bp = buf;
+    while (1) {
+        while ((i = getc(stdin)) != -1
+               && (*bp++ = i) != '\n'
+               && bp < &buf[1024])
+       /* DO NOTHING */ ;
+        *bp = '\0';
+        fprintf(stdout, "%s", buf);
+        fflush(NULL);
+        if (i == -1)
+           return 0;
+        bp = buf;
+    }
+}
+EOCP
+                fflushNULL="$define"
+                set tryp
+                if eval $compile; then
+                    $rm -f tryp.out
+                    $cat tryp.c | ./tryp$exe_ext 2>/dev/null > tryp.out
+                    if cmp tryp.c tryp.out >/dev/null 2>&1; then
+                       $cat >&4 <<EOM
+fflush(NULL) seems to behave okay with input streams.
+EOM
+                       fflushNULL="$define"
+                    else
+                       $cat >&4 <<EOM
+Ouch, fflush(NULL) clobbers input pipes!  We will not use it.
 EOM
-               fflushNULL="$define"
+                        fflushNULL="$undef"
+                    fi
+                fi
+               $rm -f core tryp.c tryp.core core.tryp.*
                ;;
        '')     $cat >&4 <<EOM
 Your fflush(NULL) isn't working (contrary to ANSI C).
@@ -12448,57 +12763,100 @@ $define|true|[yY]*)
        fflushNULL="$undef"
        ;;
 esac
-: check explicit looping only if NULL did not work
+: check explicit looping only if NULL did not work, and if the pipe
+: bug does not show up on an explicit flush too
 case "$fflushNULL" in
 "$undef")
-       : check for fflush all behaviour
-       case "$fflushall" in
-       '')     set try -DTRY_FFLUSH_ALL $output
-               if eval $compile; then
-                       $cat >&4 <<EOM
-(Now testing the other method--but note that also this may fail.)
+       $cat >tryp.c <<EOCP
+#include <stdio.h>
+int
+main(int argc, char **argv)
+{
+    char buf[1024];
+    int i;
+    char *bp = buf;
+    while (1) {
+       while ((i = getc(stdin)) != -1
+              && (*bp++ = i) != '\n'
+              && bp < &buf[1024])
+       /* DO NOTHING */ ;
+       *bp = '\0';
+       fprintf(stdout, "%s", buf);
+       fflush(stdin);
+       if (i == -1)
+           return 0;
+       bp = buf;
+    }
+}
+EOCP
+       set tryp
+       if eval $compile; then
+           $rm -f tryp.out
+           $cat tryp.c | ./tryp$exe_ext 2>/dev/null > tryp.out
+           if cmp tryp.c tryp.out >/dev/null 2>&1; then
+              $cat >&4 <<EOM
+Good, at least fflush(stdin) seems to behave okay when stdin is a pipe.
 EOM
-                       $rm -f try.out
-                       ./try$exe_ext 2>/dev/null
-                       if $test -s try.out -a "X$?" = X42; then
-                               fflushall="`$cat try.out`"
-                       fi
-               fi
-               $rm -f core try.core core.try.*
+               : now check for fflushall behaviour
                case "$fflushall" in
-               x)      $cat >&4 <<EOM
+               '')     set try -DTRY_FFLUSH_ALL $output
+                       if eval $compile; then
+                               $cat >&4 <<EOM
+(Now testing the other method--but note that this also may fail.)
+EOM
+                               $rm -f try.out
+                               ./try$exe_ext 2>/dev/null
+                               if $test -s try.out -a "X$?" = X42; then
+                                       fflushall="`$cat try.out`"
+                               fi
+                       fi
+                       $rm -f core try.core core.try.*
+                       case "$fflushall" in
+                       x)      $cat >&4 <<EOM
 Whew. Flushing explicitly all the stdio streams works.
 EOM
-                       fflushall="$define"
-                       ;;
-               '')     $cat >&4 <<EOM
+                               fflushall="$define"
+                               ;;
+                       '')     $cat >&4 <<EOM
 Sigh. Flushing explicitly all the stdio streams doesn't work.
 EOM
-                       fflushall="$undef"
-                       ;;
-               *)      $cat >&4 <<EOM
+                               fflushall="$undef"
+                               ;;
+                       *)      $cat >&4 <<EOM
 Cannot figure out whether flushing stdio streams explicitly works or not.
 I'm assuming it doesn't.
 EOM
+                               fflushall="$undef"
+                               ;;
+                       esac
+                       ;;
+               "$define"|true|[yY]*)
+                       fflushall="$define"
+                       ;;
+               *)
                        fflushall="$undef"
                        ;;
                esac
-               ;;
-       "$define"|true|[yY]*)
-               fflushall="$define"
-               ;;
-       *)
+           else
+               $cat >&4 <<EOM
+All is futile.  Even fflush(stdin) clobbers input pipes!
+EOM
                fflushall="$undef"
-               ;;
-       esac
+           fi
+       else
+           fflushall="$undef"
+       fi
+       $rm -f core tryp.c tryp.core core.tryp.*
        ;;
-*)     fflushall="$undef"      
+*)     fflushall="$undef"
        ;;
 esac
+
 case "$fflushNULL$fflushall" in
 undefundef)
        $cat <<EOM
-I cannot figure out how to flush pending stdio output.
+OK, I give up.  I cannot figure out how to flush pending stdio output.
+We won't be flushing handles at all before fork/exec/popen.
 EOM
        ;;
 esac
@@ -12626,7 +12984,7 @@ EOCP
                case "$yyy" in
                12345678901)
                        sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"';
-                       sPRIo64='"o"'; sPRIx64='"x"'; sPRIX64='"X"';
+                       sPRIo64='"o"'; sPRIx64='"x"'; sPRIXU64='"X"';
                        echo "We will use %d."
                        ;;
                esac
@@ -12648,7 +13006,7 @@ EOCP
                case "$yyy" in
                12345678901)
                        sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"';
-                       sPRIo64='"lo"'; sPRIx64='"lx"'; sPRIX64='"lX"';
+                       sPRIo64='"lo"'; sPRIx64='"lx"'; sPRIXU64='"lX"';
                        echo "We will use %ld."
                        ;;
                esac
@@ -12671,7 +13029,7 @@ EOCP
                case "$yyy" in
                12345678901)
                        sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64;
-                       sPRIo64=PRIo64; sPRIx64=PRIx64; sPRIX64=PRIX64;
+                       sPRIo64=PRIo64; sPRIx64=PRIx64; sPRIXU64=PRIXU64;
                        echo "We will use the C9X style."
                        ;;
                esac
@@ -12683,7 +13041,7 @@ if $test X"$sPRId64" = X -a X"$quadtype" = X"long long"; then
 #include <sys/types.h>
 #include <stdio.h>
 int main() {
-  long long q = 12345678901LL; /* AIX cc requires the LL prefix. */
+  long long q = 12345678901LL; /* AIX cc requires the LL suffix. */
   printf("%lld\n", q);
 }
 EOCP
@@ -12693,7 +13051,7 @@ EOCP
                case "$yyy" in
                12345678901)
                        sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"';
-                       sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIX64='"llX"';
+                       sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"';
                        echo "We will use the %lld style."
                        ;;
                esac
@@ -12715,7 +13073,7 @@ EOCP
                case "$yyy" in
                12345678901)
                        sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"';
-                       sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIX64='"LX"';
+                       sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"';
                        echo "We will use %Ld."
                        ;;
                esac
@@ -12737,7 +13095,7 @@ EOCP
                case "$yyy" in
                12345678901)
                        sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"';
-                       sPRIo64='"qo"'; sPRIx64='"qx"'; sPRIX64='"qX"';
+                       sPRIo64='"qo"'; sPRIx64='"qx"'; sPRIXU64='"qX"';
                        echo "We will use %qd."
                        ;;
                esac
 
 case "$sPRId64" in
 '')    d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef"; 
-       d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIX64="$undef"; 
+       d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIXU64="$undef"; 
        ;;
 *)     d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define"; 
-       d_PRIo64="$define"; d_PRIx64="$define"; d_PRIX64="$define"; 
+       d_PRIo64="$define"; d_PRIx64="$define"; d_PRIXU64="$define"; 
        ;;
 esac
 
@@ -12770,18 +13128,21 @@ if $test X"$ivsize" = X8; then
        uvuformat="$sPRIu64"
        uvoformat="$sPRIo64"
        uvxformat="$sPRIx64"
+       uvXUformat="$sPRIXU64"
 else
        if $test X"$ivsize" = X"$longsize"; then
                ivdformat='"ld"'
                uvuformat='"lu"'
                uvoformat='"lo"'
                uvxformat='"lx"'
+               uvXUformat='"lX"'
        else
                if $test X"$ivsize" = X"$intsize"; then
                        ivdformat='"d"'
                        uvuformat='"u"'
                        uvoformat='"o"'
                        uvxformat='"x"'
+                       uvXUformat='"X"'
                else
                        : far out
                        if $test X"$ivsize" = X"$shortsize"; then
@@ -12789,11 +13150,28 @@ else
                                uvuformat='"hu"'
                                uvoformat='"ho"'
                                uvxformat='"hx"'
+                               uvXUformat='"hX"'
                        fi
                fi
        fi
 fi
 
+if $test X"$uselongdouble" = X"$define" -a X"$d_longdbl" = X"$define" -a X"$d_PRIgldbl" = X"$define"; then
+       nveformat="$sPRIeldbl"
+       nvfformat="$sPRIfldbl"
+       nvgformat="$sPRIgldbl"
+       nvEUformat="$sPRIEUldbl"
+       nvFUformat="$sPRIFUldbl"
+       nvGUformat="$sPRIGUldbl"
+else
+       nveformat='"e"'
+       nvfformat='"f"'
+       nvgformat='"g"'
+       nvEUformat='"E"'
+       nvFUformat='"F"'
+       nvGUformat='"G"'
+fi
+
 case "$ivdformat" in
 '') echo "$0: Fatal: failed to find format strings, cannot continue." >& 4
     exit 1
@@ -13072,12 +13450,15 @@ case "$pager" in
        dflt=''
        case "$pg" in
        /*) dflt=$pg;;
+       [a-zA-Z]:/*) dflt=$pg;;
        esac
        case "$more" in
        /*) dflt=$more;;
+       [a-zA-Z]:/*) dflt=$more;;
        esac
        case "$less" in
        /*) dflt=$less;;
+       [a-zA-Z]:/*) dflt=$less;;
        esac
        case "$dflt" in
        '') dflt=/usr/ucb/more;;
@@ -13590,6 +13971,37 @@ echo $sig_name | $awk \
 }'
 $rm -f signal signal.c signal.awk signal.lst signal_cmd 
 
+echo " "
+case "$sizetype" in
+*_t) zzz="$sizetype"   ;;
+*)   zzz="filesize"    ;;
+esac
+echo "Checking the size of $zzz..." >&4 
+cat > try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main() {
+    printf("%d\n", (int)sizeof($sizetype));
+    exit(0);
+}
+EOCP
+set try
+if eval $compile_ok; then
+       yyy=`./try`
+       case "$yyy" in
+       '')     sizesize=4
+               echo "(I can't execute the test program--guessing $sizesize.)" >&4
+               ;;
+       *)      sizesize=$yyy
+               echo "Your $zzz size is $sizesize bytes."
+               ;;
+       esac
+else
+       sizesize=4
+       echo "(I can't compile the test program--guessing $sizesize.)" >&4
+fi
+
+
 : check for socklen_t
 echo " "
 echo "Checking to see if you have socklen_t..." >&4
@@ -13609,7 +14021,7 @@ else
        val="$undef"
        echo "You do not have socklen_t."
        case "$sizetype" in
-       size_t) echo "(You do have size_t, that might work.)" ;;
+       size_t) echo "(You do have size_t, that might work. Some people are happy with just an int.)" ;;
        esac
 fi
 $rm -f try try.*
@@ -13628,7 +14040,7 @@ EOM
        case "$d_socklen_t" in
        "$define") yyy="$yyy socklen_t"
        esac
-       yyy="$yyy $sizetype int long"
+       yyy="$yyy $sizetype int long unsigned"
        for xxx in $yyy; do
                case "$socksizetype" in
                '')     try="extern int accept(int, struct sockaddr *, $xxx *);"
@@ -13648,8 +14060,8 @@ EOM
                ;;
        esac
        ;;
-*)     : no sockets, so pick relatively harmless defaults
-       socksizetype='char *'
+*)     : no sockets, so pick relatively harmless default
+       socksizetype='int'
        ;;
 esac
 
@@ -13943,6 +14355,10 @@ eval $inhdr
 set ieeefp.h i_ieeefp
 eval $inhdr
 
+: see if this is a libutil.h system
+set libutil.h i_libutil
+eval $inhdr
+
 : see if locale.h is available
 set locale.h i_locale
 eval $inhdr
@@ -14022,6 +14438,10 @@ eval $inhdr
 set poll.h i_poll
 eval $inhdr
 
+: see if this is a prot.h system
+set prot.h i_prot
+eval $inhdr
+
 echo " "
 $echo "Guessing which symbols your C compiler and preprocessor define..." >&4 
 $cat <<'EOSH' > Cppsym.know
@@ -14090,8 +14510,9 @@ $osname
 EOSH
 ./tr '[a-z]' '[A-Z]' < Cppsym.know > Cppsym.a
 ./tr '[A-Z]' '[a-z]' < Cppsym.know > Cppsym.b
-$cat Cppsym.a Cppsym.b | $tr ' ' $trnl | sort | uniq > Cppsym.know
-$rm -f Cppsym.a Cppsym.b
+$cat Cppsym.know > Cppsym.c
+$cat Cppsym.a Cppsym.b Cppsym.c | $tr ' ' $trnl | sort | uniq > Cppsym.know
+$rm -f Cppsym.a Cppsym.b Cppsym.c
 cat <<EOSH > Cppsym
 $startsh
 if $test \$# -gt 0; then
@@ -14130,6 +14551,7 @@ cat <<EOSH >> Cppsym.try
 ccflags="$ccflags"
 case "$osname-$gccversion" in
 irix-) ccflags="\$ccflags -woff 1178" ;;
+os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;;
 esac
 $cc $optimize \$ccflags $ldflags -o try try.c $libs && ./try$exe_ext
 EOSH
@@ -14185,7 +14607,7 @@ if $test -z ccsym.raw; then
 else
        if $test -s ccsym.com; then
                echo "Your C compiler and pre-processor define these symbols:"
-               $sed -e 's/\(.*\)=.*/\1/' ccsym.com
+               $sed -e 's/\(..*\)=.*/\1/' ccsym.com
                also='also '
                symbols='ones'
                cppccsymbols=`$cat ccsym.com`
@@ -14195,7 +14617,7 @@ else
        if $test -s ccsym.cpp; then
                $test "$also" && echo " "
                echo "Your C pre-processor ${also}defines the following symbols:"
-               $sed -e 's/\(.*\)=.*/\1/' ccsym.cpp
+               $sed -e 's/\(..*\)=.*/\1/' ccsym.cpp
                also='further '
                cppsymbols=`$cat ccsym.cpp`
                cppsymbols=`echo $cppsymbols`
@@ -14204,14 +14626,14 @@ else
        if $test -s ccsym.own; then
                $test "$also" && echo " "
                echo "Your C compiler ${also}defines the following cpp symbols:"
-               $sed -e 's/\(.*\)=1/\1/' ccsym.own
-               $sed -e 's/\(.*\)=.*/\1/' ccsym.own | $uniq >>Cppsym.true
+               $sed -e 's/\(..*\)=1/\1/' ccsym.own
+               $sed -e 's/\(..*\)=.*/\1/' ccsym.own | $uniq >>Cppsym.true
                ccsymbols=`$cat ccsym.own`
                ccsymbols=`echo $ccsymbols`
                $test "$silent" || sleep 1
        fi
 fi
-$rm -f ccsym*
+$rm -f ccsym* Cppsym.*
 
 : see if this is a termio system
 val="$undef"
@@ -14593,6 +15015,12 @@ for xxx in $known_extensions ; do
                true|$define|y) avail_ext="$avail_ext $xxx" ;;
                esac
                ;;
+       Sys/Syslog|sys/syslog)
+               : XXX syslog requires socket
+               case "$d_socket" in 
+               true|$define|y) avail_ext="$avail_ext $xxx" ;;
+               esac
+               ;;
        Thread|thread)
                case "$usethreads" in 
                true|$define|y) avail_ext="$avail_ext $xxx" ;;
@@ -14739,6 +15167,18 @@ set X $dynamic_ext $static_ext $nonxs_ext
 shift
 extensions="$*"
 
+: Remove libraries needed only for extensions
+: The appropriate ext/Foo/Makefile.PL will add them back in, if necessary.
+case "$usedl" in
+$define|true|[yY]*)
+       set X `echo " $libs " | sed -e 's@ -lndbm @ @' -e 's@ -lgdbm @ @' -e 's@ -ldbm @ @' -e 's@ -ldb @ @'` 
+       shift
+       perllibs="$*"
+       ;;
+*)     perllibs="$libs"
+       ;;
+esac
+
 : Remove build directory name from cppstdin so it can be used from
 : either the present location or the final installed location.
 echo " "
@@ -14850,7 +15290,10 @@ cc='$cc'
 cccdlflags='$cccdlflags'
 ccdlflags='$ccdlflags'
 ccflags='$ccflags'
+ccflags_uselargefiles='$ccflags_uselargefiles'
+ccname='$ccname'
 ccsymbols='$ccsymbols'
+ccversion='$ccversion'
 cf_by='$cf_by'
 cf_email='$cf_email'
 cf_time='$cf_time'
@@ -14877,10 +15320,10 @@ crosscompile='$crosscompile'
 cryptlib='$cryptlib'
 csh='$csh'
 d_Gconvert='$d_Gconvert'
-d_PRIEldbl='$d_PRIEldbl'
-d_PRIFldbl='$d_PRIFldbl'
-d_PRIGldbl='$d_PRIGldbl'
-d_PRIX64='$d_PRIX64'
+d_PRIEUldbl='$d_PRIEUldbl'
+d_PRIFUldbl='$d_PRIFUldbl'
+d_PRIGUldbl='$d_PRIGUldbl'
+d_PRIXU64='$d_PRIXU64'
 d_PRId64='$d_PRId64'
 d_PRIeldbl='$d_PRIeldbl'
 d_PRIfldbl='$d_PRIfldbl'
@@ -14889,6 +15332,7 @@ d_PRIi64='$d_PRIi64'
 d_PRIo64='$d_PRIo64'
 d_PRIu64='$d_PRIu64'
 d_PRIx64='$d_PRIx64'
+d_SCNfldbl='$d_SCNfldbl'
 d_access='$d_access'
 d_accessx='$d_accessx'
 d_alarm='$d_alarm'
@@ -14930,7 +15374,6 @@ d_endnent='$d_endnent'
 d_endpent='$d_endpent'
 d_endpwent='$d_endpwent'
 d_endsent='$d_endsent'
-d_endspent='$d_endspent'
 d_eofnblk='$d_eofnblk'
 d_eunice='$d_eunice'
 d_fchmod='$d_fchmod'
@@ -14945,6 +15388,7 @@ d_flock='$d_flock'
 d_fork='$d_fork'
 d_fpathconf='$d_fpathconf'
 d_fpos64_t='$d_fpos64_t'
+d_frexpl='$d_frexpl'
 d_fs_data_s='$d_fs_data_s'
 d_fseeko='$d_fseeko'
 d_fsetpos='$d_fsetpos'
@@ -14953,6 +15397,7 @@ d_fstatvfs='$d_fstatvfs'
 d_ftello='$d_ftello'
 d_ftime='$d_ftime'
 d_getcwd='$d_getcwd'
+d_getespwnam='$d_getespwnam'
 d_getfsstat='$d_getfsstat'
 d_getgrent='$d_getgrent'
 d_getgrps='$d_getgrps'
@@ -14977,12 +15422,12 @@ d_getpgrp='$d_getpgrp'
 d_getppid='$d_getppid'
 d_getprior='$d_getprior'
 d_getprotoprotos='$d_getprotoprotos'
+d_getprpwnam='$d_getprpwnam'
 d_getpwent='$d_getpwent'
 d_getsbyname='$d_getsbyname'
 d_getsbyport='$d_getsbyport'
 d_getsent='$d_getsent'
 d_getservprotos='$d_getservprotos'
-d_getspent='$d_getspent'
 d_getspnam='$d_getspnam'
 d_gettimeod='$d_gettimeod'
 d_gnulibc='$d_gnulibc'
@@ -14994,6 +15439,8 @@ d_index='$d_index'
 d_inetaton='$d_inetaton'
 d_int64_t='$d_int64_t'
 d_isascii='$d_isascii'
+d_isnan='$d_isnan'
+d_isnanl='$d_isnanl'
 d_killpg='$d_killpg'
 d_lchown='$d_lchown'
 d_ldbl_dig='$d_ldbl_dig'
@@ -15020,6 +15467,7 @@ d_mkstemp='$d_mkstemp'
 d_mkstemps='$d_mkstemps'
 d_mktime='$d_mktime'
 d_mmap='$d_mmap'
+d_modfl='$d_modfl'
 d_mprotect='$d_mprotect'
 d_msg='$d_msg'
 d_msg_ctrunc='$d_msg_ctrunc'
@@ -15036,6 +15484,7 @@ d_munmap='$d_munmap'
 d_mymalloc='$d_mymalloc'
 d_nice='$d_nice'
 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'
@@ -15043,6 +15492,7 @@ d_oldsock='$d_oldsock'
 d_open3='$d_open3'
 d_pathconf='$d_pathconf'
 d_pause='$d_pause'
+d_perl_otherlibdirs='$d_perl_otherlibdirs'
 d_phostname='$d_phostname'
 d_pipe='$d_pipe'
 d_poll='$d_poll'
@@ -15089,6 +15539,7 @@ d_setpgid='$d_setpgid'
 d_setpgrp2='$d_setpgrp2'
 d_setpgrp='$d_setpgrp'
 d_setprior='$d_setprior'
+d_setproctitle='$d_setproctitle'
 d_setpwent='$d_setpwent'
 d_setregid='$d_setregid'
 d_setresgid='$d_setresgid'
@@ -15098,7 +15549,6 @@ d_setrgid='$d_setrgid'
 d_setruid='$d_setruid'
 d_setsent='$d_setsent'
 d_setsid='$d_setsid'
-d_setspent='$d_setspent'
 d_setvbuf='$d_setvbuf'
 d_sfio='$d_sfio'
 d_shm='$d_shm'
@@ -15112,6 +15562,7 @@ d_sigsetjmp='$d_sigsetjmp'
 d_socket='$d_socket'
 d_socklen_t='$d_socklen_t'
 d_sockpair='$d_sockpair'
+d_socks5_init='$d_socks5_init'
 d_sqrtl='$d_sqrtl'
 d_statblks='$d_statblks'
 d_statfs_f_flags='$d_statfs_f_flags'
@@ -15154,6 +15605,7 @@ d_umask='$d_umask'
 d_uname='$d_uname'
 d_union_semun='$d_union_semun'
 d_ustat='$d_ustat'
+d_vendorarch='$d_vendorarch'
 d_vendorbin='$d_vendorbin'
 d_vendorlib='$d_vendorlib'
 d_vfork='$d_vfork'
@@ -15197,6 +15649,7 @@ freetype='$freetype'
 full_ar='$full_ar'
 full_csh='$full_csh'
 full_sed='$full_sed'
+gccosandvers='$gccosandvers'
 gccversion='$gccversion'
 gidformat='$gidformat'
 gidsign='$gidsign'
@@ -15211,7 +15664,6 @@ h_fcntl='$h_fcntl'
 h_sysfile='$h_sysfile'
 hint='$hint'
 hostcat='$hostcat'
-huge='$huge'
 i16size='$i16size'
 i16type='$i16type'
 i32size='$i32size'
@@ -15234,6 +15686,7 @@ i_grp='$i_grp'
 i_iconv='$i_iconv'
 i_ieeefp='$i_ieeefp'
 i_inttypes='$i_inttypes'
+i_libutil='$i_libutil'
 i_limits='$i_limits'
 i_locale='$i_locale'
 i_machcthr='$i_machcthr'
@@ -15247,6 +15700,7 @@ i_neterrno='$i_neterrno'
 i_netinettcp='$i_netinettcp'
 i_niin='$i_niin'
 i_poll='$i_poll'
+i_prot='$i_prot'
 i_pthread='$i_pthread'
 i_pwd='$i_pwd'
 i_rpcsvcdbm='$i_rpcsvcdbm'
@@ -15310,11 +15764,13 @@ installprefix='$installprefix'
 installprefixexp='$installprefixexp'
 installprivlib='$installprivlib'
 installscript='$installscript'
+installscripts='$installscripts'
 installsitearch='$installsitearch'
 installsitebin='$installsitebin'
 installsitelib='$installsitelib'
 installstyle='$installstyle'
 installusrbinperl='$installusrbinperl'
+installvendorarch='$installvendorarch'
 installvendorbin='$installvendorbin'
 installvendorlib='$installvendorlib'
 intsize='$intsize'
@@ -15323,10 +15779,10 @@ ivsize='$ivsize'
 ivtype='$ivtype'
 known_extensions='$known_extensions'
 ksh='$ksh'
-large='$large'
 ld='$ld'
 lddlflags='$lddlflags'
 ldflags='$ldflags'
+ldflags_uselargefiles='$ldflags_uselargefiles'
 ldlibpthname='$ldlibpthname'
 less='$less'
 lib_ext='$lib_ext'
@@ -15339,6 +15795,7 @@ libsfiles='$libsfiles'
 libsfound='$libsfound'
 libspath='$libspath'
 libswanted='$libswanted'
+libswanted_uselargefiles='$libswanted_uselargefiles'
 line='$line'
 lint='$lint'
 lkflags='$lkflags'
@@ -15367,11 +15824,9 @@ man1ext='$man1ext'
 man3dir='$man3dir'
 man3direxp='$man3direxp'
 man3ext='$man3ext'
-medium='$medium'
 mips_type='$mips_type'
 mkdir='$mkdir'
 mmaptype='$mmaptype'
-models='$models'
 modetype='$modetype'
 more='$more'
 multiarch='$multiarch'
@@ -15390,6 +15845,12 @@ nm_opt='$nm_opt'
 nm_so_opt='$nm_so_opt'
 nonxs_ext='$nonxs_ext'
 nroff='$nroff'
+nvEUformat='$nvEUformat'
+nvFUformat='$nvFUformat'
+nvGUformat='$nvGUformat'
+nveformat='$nveformat'
+nvfformat='$nvfformat'
+nvgformat='$nvgformat'
 nvsize='$nvsize'
 nvtype='$nvtype'
 o_nonblock='$o_nonblock'
@@ -15399,6 +15860,7 @@ optimize='$optimize'
 orderlib='$orderlib'
 osname='$osname'
 osvers='$osvers'
+otherlibdirs='$otherlibdirs'
 package='$package'
 pager='$pager'
 passcat='$passcat'
@@ -15407,6 +15869,7 @@ path_sep='$path_sep'
 perl5='$perl5'
 perl='$perl'
 perladmin='$perladmin'
+perllibs='$perllibs'
 perlpath='$perlpath'
 pg='$pg'
 phostname='$phostname'
@@ -15432,10 +15895,10 @@ revision='$revision'
 rm='$rm'
 rmail='$rmail'
 runnm='$runnm'
-sPRIEldbl='$sPRIEldbl'
-sPRIFldbl='$sPRIFldbl'
-sPRIGldbl='$sPRIGldbl'
-sPRIX64='$sPRIX64'
+sPRIEUldbl='$sPRIEUldbl'
+sPRIFUldbl='$sPRIFUldbl'
+sPRIGUldbl='$sPRIGUldbl'
+sPRIXU64='$sPRIXU64'
 sPRId64='$sPRId64'
 sPRIeldbl='$sPRIeldbl'
 sPRIfldbl='$sPRIfldbl'
@@ -15444,6 +15907,7 @@ sPRIi64='$sPRIi64'
 sPRIo64='$sPRIo64'
 sPRIu64='$sPRIu64'
 sPRIx64='$sPRIx64'
+sSCNfldbl='$sSCNfldbl'
 sched_yield='$sched_yield'
 scriptdir='$scriptdir'
 scriptdirexp='$scriptdirexp'
@@ -15470,13 +15934,14 @@ sitearchexp='$sitearchexp'
 sitebin='$sitebin'
 sitebinexp='$sitebinexp'
 sitelib='$sitelib'
+sitelib_stem='$sitelib_stem'
 sitelibexp='$sitelibexp'
 siteprefix='$siteprefix'
 siteprefixexp='$siteprefixexp'
+sizesize='$sizesize'
 sizetype='$sizetype'
 sleep='$sleep'
 smail='$smail'
-small='$small'
 so='$so'
 sockethdr='$sockethdr'
 socketlib='$socketlib'
@@ -15484,7 +15949,6 @@ socksizetype='$socksizetype'
 sort='$sort'
 spackage='$spackage'
 spitshell='$spitshell'
-split='$split'
 src='$src'
 ssizetype='$ssizetype'
 startperl='$startperl'
@@ -15549,14 +16013,18 @@ usevendorprefix='$usevendorprefix'
 usevfork='$usevfork'
 usrinc='$usrinc'
 uuname='$uuname'
+uvXUformat='$uvXUformat'
 uvoformat='$uvoformat'
 uvsize='$uvsize'
 uvtype='$uvtype'
 uvuformat='$uvuformat'
 uvxformat='$uvxformat'
+vendorarch='$vendorarch'
+vendorarchexp='$vendorarchexp'
 vendorbin='$vendorbin'
 vendorbinexp='$vendorbinexp'
 vendorlib='$vendorlib'
+vendorlib_stem='$vendorlib_stem'
 vendorlibexp='$vendorlibexp'
 vendorprefix='$vendorprefix'
 vendorprefixexp='$vendorprefixexp'
@@ -15655,7 +16123,7 @@ EOM
        . UU/myread
        case "$ans" in
        y*)
-               $make depend && echo "Now you must run a $make."
+               $make depend && echo "Now you must run '$make'."
                ;;
        *)
                echo "You must run '$make depend' then '$make'."