remove redundant part of change#1169 superseded by change#2061;
[p5sagit/p5-mst-13.2.git] / Configure
index 1d99afe..83e41da 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 Sat Jan  9 18:00:39 EET 1999 [metaconfig 3.0 PL70]
-# (with additional metaconfig patches by jhi@iki.fi)
+# Generated on Sat May 22 00:54:37 EET DST 1999 [metaconfig 3.0 PL70]
+# (with additional metaconfig patches by perlbug@perl.com)
 
 cat >/tmp/c1$$ <<EOF
 ARGGGHHHH!!!!!
@@ -108,6 +108,13 @@ if test -d /usr/lpp -a -f /usr/bin/bsh -a -f /usr/bin/uname; then
                newsh=/usr/bin/bsh
        fi
 fi
+if test -f /osf_boot -a -f /usr/sbin/setld; then
+       if test X`/usr/bin/uname -s` = XOSF1; then
+               avoidksh="to avoid Digital UNIX' ksh"
+               newsh=/bin/sh
+               unset BIN_SH # if this is 'xpg4' sh will start up ksh
+       fi
+fi
 case "$inksh/$needksh" in
 /[a-z]*)
                ENV=''
@@ -153,6 +160,9 @@ esac
 test -d UU || mkdir UU
 cd UU && rm -f ./*
 
+ccsymbols=''
+cppccsymbols=''
+cppsymbols=''
 dynamic_ext=''
 extensions=''
 known_extensions=''
@@ -233,6 +243,7 @@ uuname=''
 vi=''
 zcat=''
 zip=''
+full_ar=''
 full_sed=''
 libswanted=''
 hint=''
@@ -289,6 +300,7 @@ cpplast=''
 cppminus=''
 cpprun=''
 cppstdin=''
+crosscompile=''
 d_access=''
 d_accessx=''
 d_alarm=''
@@ -353,6 +365,7 @@ d_phostname=''
 d_uname=''
 d_gethostprotos=''
 d_getlogin=''
+d_getmntent=''
 d_getnbyaddr=''
 d_getnbyname=''
 d_getnent=''
@@ -373,6 +386,7 @@ d_getservprotos=''
 d_getsbyname=''
 d_getsbyport=''
 d_gnulibc=''
+d_hasmntopt=''
 d_htonl=''
 d_inetaton=''
 d_isascii=''
@@ -386,9 +400,11 @@ longdblsize=''
 d_longlong=''
 longlongsize=''
 d_lstat=''
+d_madvise=''
 d_mblen=''
 d_mbstowcs=''
 d_mbtowc=''
+d_memchr=''
 d_memcmp=''
 d_memcpy=''
 d_memmove=''
@@ -396,11 +412,16 @@ d_memset=''
 d_mkdir=''
 d_mkfifo=''
 d_mktime=''
+d_mmap=''
+mmaptype=''
+d_mprotect=''
 d_msg=''
 d_msgctl=''
 d_msgget=''
 d_msgrcv=''
 d_msgsnd=''
+d_msync=''
+d_munmap=''
 d_nice=''
 d_open3=''
 d_fpathconf=''
@@ -481,6 +502,11 @@ d_sockpair=''
 sockethdr=''
 socketlib=''
 d_statblks=''
+d_fstatfs=''
+d_statfs=''
+d_statfsflags=''
+d_fstatvfs=''
+d_statvfs=''
 d_stdio_cnt_lval=''
 d_stdio_ptr_lval=''
 d_stdiobase=''
@@ -508,6 +534,7 @@ d_sysconf=''
 d_system=''
 d_tcgetpgrp=''
 d_tcsetpgrp=''
+d_telldirproto=''
 d_time=''
 timetype=''
 clocktype=''
@@ -546,6 +573,8 @@ lddlflags=''
 usedl=''
 doublesize=''
 ebcdic=''
+fflushNULL=''
+fflushall=''
 fpostype=''
 gidtype=''
 groupstype=''
@@ -575,12 +604,15 @@ i_machcthr=''
 i_malloc=''
 i_math=''
 i_memory=''
+i_mntent=''
 i_ndbm=''
 i_netdb=''
 i_neterrno=''
+i_netinettcp=''
 i_niin=''
 i_sysin=''
 i_poll=''
+i_pthread=''
 d_pwage=''
 d_pwchange=''
 d_pwclass=''
@@ -603,12 +635,15 @@ i_bsdioctl=''
 i_sysfilio=''
 i_sysioctl=''
 i_syssockio=''
+i_sysmman=''
+i_sysmount=''
 i_sysndir=''
 i_sysparam=''
 i_sysresrc=''
 i_syssecrt=''
 i_sysselct=''
 i_sysstat=''
+i_sysstatvfs=''
 i_systimes=''
 i_systypes=''
 d_iovec_s=''
@@ -629,6 +664,7 @@ i_stdarg=''
 i_varargs=''
 i_varhdr=''
 i_vfork=''
+installusrbinperl=''
 intsize=''
 longsize=''
 shortsize=''
@@ -636,11 +672,13 @@ d_dirent64_s=''
 d_flock64_s=''
 d_fstat64=''
 d_ftruncate64=''
-d_ino64t=''
+d_ino64_t=''
+d_llseek=''
 d_lockf64=''
 d_lseek64=''
 d_lstat64=''
-d_off64t=''
+d_off64_t=''
+d_offset_t=''
 d_open64=''
 d_opendir64=''
 d_readdir64=''
@@ -684,6 +722,7 @@ models=''
 small=''
 split=''
 modetype=''
+multiarch=''
 mydomain=''
 myhostname=''
 phostname=''
@@ -730,6 +769,7 @@ scriptdirexp=''
 selectminbits=''
 selecttype=''
 sh=''
+sig_count=''
 sig_name=''
 sig_name_init=''
 sig_num=''
@@ -759,6 +799,8 @@ d_fsetpos64=''
 d_ftell64=''
 d_ftello64=''
 d_tmpfile64=''
+d_stdio_stream_array=''
+stdio_stream_array=''
 sysman=''
 trnl=''
 uidtype=''
@@ -795,24 +837,6 @@ if test -f /etc/unixtovms.exe; then
 fi
 
 i_whoami=''
-: change the next line if compiling for Xenix/286 on Xenix/386
-xlibpth='/usr/lib/386 /lib/386'
-
-: Possible local library directories to search.
-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="/shlib /usr/shlib /lib/pa1.1 /usr/lib/large"
-glibpth="$glibpth /lib /usr/lib $xlibpth"
-glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
-
-: Private path used by Configure to find libraries.  Its value
-: is prepended to libpth. This variable takes care of special
-: machines, like the mips.  Usually, it should be empty.
-plibpth=''
-
 : 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"
@@ -891,6 +915,24 @@ _exe=''
 : Extra object files, if any, needed on this platform.
 archobjs=''
 groupstype=''
+: change the next line if compiling for Xenix/286 on Xenix/386
+xlibpth='/usr/lib/386 /lib/386'
+
+: Possible local library directories to search.
+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="/shlib /usr/shlib /lib/pa1.1 /usr/lib/large"
+glibpth="$glibpth /lib /usr/lib $xlibpth"
+glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
+glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
+
+: Private path used by Configure to find libraries.  Its value
+: is prepended to libpth. This variable takes care of special
+: machines, like the mips.  Usually, it should be empty.
+plibpth=''
+
 : default library list
 libswanted=''
 : some systems want to use only the non-versioned libso:s
@@ -907,7 +949,8 @@ useopcode=true
 : List of libraries we want.
 : If anyone needs -lnet, put it in a hint file.
 libswanted='sfio socket inet nsl nm ndbm gdbm dbm db malloc dl'
-libswanted="$libswanted dld ld sun m c cposix posix ndir dir crypt"
+libswanted="$libswanted dld ld sun m rt c cposix posix"
+libswanted="$libswanted ndir dir crypt"
 libswanted="$libswanted ucb bsd BSD PW x"
 : We probably want to search /usr/shlib before most other libraries.
 : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
@@ -951,7 +994,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 (Jarkko Hietaniemi) at jhi@iki.fi and 
+Please contact me (Perl Maintainers) at perlbug@perl.com and 
 we'll try to straighten this all out.
 EOM
        exit 1
@@ -1284,7 +1327,7 @@ esac
 
 : script used to extract .SH files with variable substitutions
 cat >extract <<'EOS'
-CONFIG=true
+CONFIGDOTSH=true
 echo "Doing variable substitutions on .SH files..."
 if test -f $src/MANIFEST; then
        set x `awk '{print $1}' <$src/MANIFEST | grep '\.SH$'`
@@ -1420,7 +1463,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 (jhi@iki.fi).
+and contact the author (perlbug@perl.com).
 
 EOM
                echo $n "Continue? [n] $c" >&4
@@ -1645,7 +1688,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 (jhi@iki.fi) know how I blew it.
+have, let me (perlbug@perl.com) know how I blew it.
 
 This installation script affects things in two ways:
 
@@ -1743,7 +1786,6 @@ more
 nm
 nroff
 pg
-tee
 test
 uname
 zip
@@ -2008,7 +2050,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 jhi@iki.fi
+       : tests or hints, please send them to perlbug@perl.com
        : The metaconfig authors would also appreciate a copy...
        $test -f /irix && osname=irix
        $test -f /xenix && osname=sco_xenix
@@ -2055,7 +2097,11 @@ EOM
                [23]100) osname=mips ;;
                next*) osname=next ;;
                i386*)
-                       if $test -f /etc/kconfig; then
+                       tmp=`/bin/uname -X 2>/dev/null|awk '/3\.2v[45]/{ print $(NF) }'`
+                       if $test "$tmp" != "" -a "$3" = "3.2" -a -f '/etc/systemid'; then
+                               osname='sco'
+                               osvers=$tmp
+                       elif $test -f /etc/kconfig; then
                                osname=isc
                                if test "$lns" = "ln -s"; then
                                        osvers=4
@@ -2065,6 +2111,7 @@ EOM
                                        osvers=2
                                fi
                        fi
+                       tmp=''
                        ;;
                pc*)
                        if test -n "$DJGPP"; then
@@ -2424,7 +2471,7 @@ none)  osvers='' ;;
 esac
 
 : who configured the system
-cf_time=`LC_ALL=C; export LC_ALL; $date 2>&1`
+cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
 cf_by=`(logname) 2>/dev/null`
 case "$cf_by" in
 "")
@@ -2462,7 +2509,12 @@ cat <<EOM
 
 Perl can be built to take advantage of threads, on some systems.
 To do so, Configure must be run with -Dusethreads.
-(See README.threads for details.)
+
+Note that threading is a highly experimental feature, and
+some known race conditions still remain.  If you choose to try
+it, be very sure to not actually deploy it for production
+purposes.  README.threads has more details, and is required
+reading if you enable threads.
 EOM
 case "$usethreads" in
 $define|true|[yY]*)     dflt='y';;
@@ -2476,16 +2528,7 @@ y|Y)    val="$define" ;;
 esac
 set usethreads
 eval $setvar 
-: Look for a hint-file generated 'call-back-unit'.  If the
-: user has specified that a threading perl is to be built,
-: we may need to set or change some other defaults.
-case "$usethreads" in
-$define|true|[yY]*)
-       if $test -f usethreads.cbu; then
-               . ./usethreads.cbu
-       fi
-       ;;
-esac
+
 case "$d_oldpthreads" in
 '')    : Configure tests would be welcome here.  For now, assume undef.
        val="$undef" ;;
@@ -2496,247 +2539,30 @@ eval $setvar
 
 
 case "$usethreads" in
-"$define")
-    case "$osname" in
-    aix)
-        ccflags="$ccflags -DNEED_PTHREAD_INIT"
-        case "$cc" in
-        xlc_r | cc_r) ;;
-        cc) 
-           echo >&4 "Switching cc to xlc_r because of POSIX threads."
-           cc=xlc_r
-            ;;
-        '') 
-           cc=xlc_r
-            ;;
-        *)
-           cat >&4 <<EOM
-For pthreads you should use the AIX C compilers xlc_r or cc_r.
-(now your compiler was '$cc')
-Cannot continue, aborting.
-EOM
-           exit 1
-           ;;
-        esac
-
-        # Add the POSIX threads library and the re-entrant libc.
-
-        lddlflags=`echo $lddlflags | sed 's/ -lc$/ -lpthreads -lc_r -lc/'`
-
-        # Add the c_r library to the list of wanted libraries.
-        # Make sure the c_r library is before the c library or
-        # make will fail.
-        set `echo X "$libswanted "| sed -e 's/ c / c_r c /'`
-        shift
-        libswanted="$*"
-       ;;
-    dec_osf)
-        # Threads interfaces changed with V4.0.
-        case "`uname -r`" in
-        *[123].*)
-           libswanted="$libswanted pthreads mach exc c_r"
-           ccflags="-threads $ccflags"
-           ;;
-        *)
-           libswanted="$libswanted pthread exc"
-           ccflags="-pthread $ccflags"
-           ;;
-        esac
-
-        usemymalloc='n'
-       ;;
-    dos_djgpp)
-        set `echo X "$libswanted "| sed -e 's/ c / gthreads c /'`
-        shift
-        libswanted="$*"
-       ;;
-    freebsd)
-        case "$osvers" in  
-        [34].*) ldflags="-pthread $ldflags"
-              ;;
-        2.2*) if [ ! -r /usr/lib/libc_r ]; then
-              cat <<'EOM' >&4
-POSIX threads are not supported by default on FreeBSD $osvers.  Follow the
-instructions in 'man pthread' to build and install the needed libraries.
-EOM
-                 exit 1
-              fi
-              set `echo X "$libswanted "| sed -e 's/ c / c_r /'`
-              shift
-              libswanted="$*"
-              # Configure will probably pick the wrong libc to use for nm
-              # scan.
-              # The safest quick-fix is just to not use nm at all.
-              usenm=false
-              ;;
-         *)   cat <<'EOM' >&4
-
-It is not known if FreeBSD $osvers supports POSIX threads or not.
-Consider upgrading to the latest STABLE release.
-
-EOM
-              exit 1
-              ;;
-        esac
-       ;;
-    hpux)
-        if [ "$xxOsRevMajor" -lt 10 ]; then
-            cat <<EOM >&4
-HP-UX $xxOsRevMajor cannot support POSIX threads.
-Consider upgrading to at least HP-UX 11.
-Cannot continue, aborting.
-EOM
-            exit 1
-        fi
-        case "$xxOsRevMajor" in
-        10)
-            # Under 10.X, a threaded perl can be built, but it needs
-            # libcma and OLD_PTHREADS_API.  Also <pthread.h> needs to
-            # be #included before any other includes (in perl.h)
-            if [ ! -f /usr/include/pthread.h -o ! -f /usr/lib/libcma.sl ]; then
-                cat <<EOM >&4
-In HP-UX 10.X for POSIX threads you need both of the files
-/usr/include/pthread.h and /usr/lib/libcma.sl.
-Either you must install the CMA package or you must upgrade to HP-UX 11.
-Cannot continue, aborting.
-EOM
-               exit 1
-            fi
-
-            # HP-UX 10.X uses the old pthreads API
-            case "$d_oldpthreads" in
-            '') d_oldpthreads="$define" ;;
-            esac
-
-            # include libcma before all the others
-            libswanted="cma $libswanted"
-
-            # tell perl.h to include <pthread.h> before other include files
-            ccflags="$ccflags -DPTHREAD_H_FIRST"
-
-            # CMA redefines select to cma_select, and cma_select expects int *
-            # instead of fd_set * (just like 9.X)
-            selecttype='int *'
-            ;;
-        11 | 12) # 12 may want upping the _POSIX_C_SOURCE
-            ccflags="$ccflags -D_POSIX_C_SOURCE=199506L"
-            libswanted="$libswanted pthread"
-           ;;
-        esac
-       ;;
-    irix)
-        if test ! -f ${TOOLROOT}/usr/include/pthread.h -o ! -f /usr/lib/libpthread.so; then
-            case "`uname -r`" in
-            [1-5].*|6.[01]|6.[01])
-               cat >&4 <<EOM
-IRIX `uname -r` does not support POSIX threads.
-You should upgrade to at least IRIX 6.2 with pthread patches.
-EOM
-               ;;
-           6.2)
-               cat >&4 <<EOM
-IRIX 6.2 can have the POSIX threads.
-However,the following IRIX patches (or their replacements) MUST be installed:
-        1404 Irix 6.2 Posix 1003.1b man pages
-        1645 IRIX 6.2 & 6.3 POSIX header file updates
-        2000 Irix 6.2 Posix 1003.1b support modules
-        2254 Pthread library fixes
-       2401 6.2 all platform kernel rollup
-IMPORTANT:
-       Without patch 2401, a kernel bug in IRIX 6.2 will
-       cause your machine to panic and crash when running
-       threaded perl. IRIX 6.3 and up should be OK.
-EOM
-               ;;
-           [67].*)
+"$define"|true|[yY]*)
+: Look for a hint-file generated 'call-back-unit'.  If the
+: user has specified that a threading perl is to be built,
+: we may need to set or change some other defaults.
+       if $test -f usethreads.cbu; then
+               . ./usethreads.cbu
+       fi
+       case "$osname" in
+       aix|dec_osf|dos_djgpp|freebsd|hpux|irix|linux|next|openbsd|os2|solaris|vmesa)
+               # Known thread-capable platforms.
+               ;;
+       *)
                cat >&4 <<EOM
-IRIX `uname -r` should have the POSIX threads.
-But, somehow, you do not seem to have them installed.
-EOM
-               ;;
-           esac
-            cat >&4 <<EOM
-Cannot continue, aborting.
-EOM
-            exit 1
-        fi
-        set `echo X "$libswanted "| sed -e 's/ c / pthread /'`
-        ld="${cc:-cc}"
-        shift
-        libswanted="$*"
-
-        usemymalloc='n'
-       ;;
-    linux)
-        ccflags="-D_REENTRANT $ccflags"
-
-        set `echo X "$libswanted "| sed -e 's/ c / pthread c /'`
-        shift
-        libswanted="$*"
-       ;;
-    os2)
-       ccflags="-Zmt $ccflags"
-        cppflags="-Zmt $cppflags"  # Do we really need to set this?
-        aout_ccflags="-DUSE_THREADS $aout_ccflags"
-        aout_cppflags="-DUSE_THREADS $aout_cppflags"
-        aout_lddlflags="-Zmt $aout_lddlflags"
-        aout_ldflags="-Zmt $aout_ldflags"
-       ;;
-    solaris)
-        ccflags="-D_REENTRANT $ccflags"
-
-        # sched_yield is in -lposix4
-        set `echo X "$libswanted "| sed -e 's/ c / posix4 pthread c /'`
-        shift
-        libswanted="$*"
-
-        # On Solaris 2.6 x86 there is a bug with sigsetjmp() and siglongjmp()
-        # when linked with the threads library, such that whatever positive
-        # value you pass to siglongjmp(), sigsetjmp() returns 1.
-        # Thanks to Simon Parsons <S.Parsons@ftel.co.uk> for this report.
-        # Sun BugID is 4117946, "sigsetjmp always returns 1 when called by
-        # siglongjmp in a MT program". As of 19980622, there is no patch
-        # available.
-        cat >try.c <<'EOM'
-       /* Test for sig(set|long)jmp bug. */
-       #include <setjmp.h>
-        
-       main()
-       {
-           sigjmp_buf env;
-           int ret;
-       
-           ret = sigsetjmp(env, 1);
-           if (ret) { return ret == 2; }
-           siglongjmp(env, 2);
-       }
-EOM
-        if test "`arch`" = i86pc -a "$osvers" = 2.6 && \
-           ${cc:-cc} try.c -lpthread >/dev/null 2>&1 && ./a.out; then
-           d_sigsetjmp=$undef
-           cat << 'EOM' >&2
-
-You will see a *** WHOA THERE!!! ***  message from Configure for
-d_sigsetjmp.  Keep the recommended value.  See hints/solaris_2.sh
-for more information.
-
-EOM
-        fi
-       ;;
-    vmesa)
-       ;;
-    *)
-        cat >&4 <<EOM
 $osname is not known to support threads.
-Please let me (jhi@iki.fi) know how to do that.
+Please let perlbug@perl.com know how to do that.
 
 Cannot continue, aborting.
 EOM
-       exit 1
+               exit 1
        ;;
-    esac # $osname
+       esac # $osname
     ;;
 esac # $usethreads
+
 cat <<EOM
 
 Perl can be built so that multiple Perl interpreters can coexist
@@ -2783,97 +2609,35 @@ esac
 set use64bits
 eval $setvar
 
-archname64=''
+case "$archname64" in
+'') archname64='' ;;   # not a typo
+esac
 
 case "$use64bits" in
-"$define")
+"$define"|true|[yY]*)
+: Look for a hint-file generated 'call-back-unit'.  If the
+: user has specified that a threading perl is to be built,
+: we may need to set or change some other defaults.
+       if $test -f use64bits.cbu; then
+               . ./use64bits.cbu
+       fi
        case "$osname" in
-       dec_osf)
-           # Pretty much everything is 64-bit already.
-           ;;
-       hpux)
-           if [ "$xxOsRevMajor" -lt 11 ]; then
-               cat <<EOM >&4
-64-bit compilation is not supported on HP-UX $xxOsRevMajor.
-You need at least HP-UX 11.0.
-Cannot continue, aborting.
-EOM
-               exit 1
-           fi
-           if [ ! -d /lib/pa20_64 ]; then
-               cat <<EOM >&4
-You do not seem to have the 64-bit libraries, /lib/pa20_64.
-Cannot continue, aborting.
-EOM
-               exit 1
-           fi
-           ccflags="$ccflags +DD64 -D_FILE_OFFSET_BITS=64"
-           ldflags="$ldflags +DD64"
-           ld=/usr/bin/ld
-           set `echo " $libswanted " | sed -e 's@ dl @ @'`
-           libswanted="$*"
-           glibpth="/lib/pa20_64"
-           ;;
-       irix)
-           case "`uname -r`" in
-           [1-5]*|6.[01])
-               cat >&4 <<EOM
-IRIX `uname -r` does not support 64-bit types.
-You should upgrade to at least IRIX 6.2.
-Cannot continue, aborting.
-EOM
-               exit 1
-               ;;
-           esac
-           case "$ccflags" in
-           *-n32*)
-               ccflags="$ccflags -DUSE_LONG_LONG"
-               archname64="-n32"
-               d_open64="$undef"
-               # In -n32 mode (ILP32LL64) we use the standard open().
-               # In -64 we will use the open64().
-               cat << 'EOM' >&2
-
-You will see a *** WHOA THERE!!! ***  message from Configure for
-d_open64.  Keep the recommended value.  See hints/irix6.sh
-for more information.
-
-EOM
-               ;;
-           esac
-           ccflags="$ccflags -DUSE_64_BIT_FILES"
-           ;;
-       solaris)
-           case "`uname -r`" in
-           1.*|2.[1-5])
-               cat >&4 <<EOM
-Solaris `uname -r` does not support 64-bit interfaces.
-You should upgrade to at least Solaris 2.6.
-EOM
-               exit 1
+       dec_osf|hpux|irix|solaris|unicos)
+               # Known 64-bit capable platforms.
                ;;
-           esac
-           ccflags="$ccflags `getconf LFS_CFLAGS` -DUSE_LONG_LONG"
-           ldflags="$ldflags `getconf LFS_LDFLAGS`"
-           libswanted="$libswanted `getconf LFS_LIBS`"
-           # When a 64-bit cc becomes available $archname64
-           # may need setting so that $archname gets it attached.
-           ;;
-       unicos)
-           # Pretty much everything is 64-bit already.
-           ;;
        *)
-           cat >&4 <<EOM
+               cat >&4 <<EOM
 $osname is not known to support 64-bit interfaces.
-Please let me (jhi@iki.fi) know how to do that.
+Please let perlbug@perl.com know how to do that.
 
 Cannot continue, aborting.
 EOM
-           exit 1
-           ;;
+               exit 1
+               ;;
        esac
        ;;
 esac
+
 : determine the architecture name
 echo " "
 if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
@@ -3287,8 +3051,8 @@ baserev=5.0
 echo " "
 echo "Getting the current patchlevel..." >&4
 if $test -r $rsrc/patchlevel.h;then
-       patchlevel=`awk '/define[       ]+PATCHLEVEL/ {print $3}' $rsrc/patchlevel.h`
-       subversion=`awk '/define[       ]+SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
+       patchlevel=`awk '/define[       ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h`
+       subversion=`awk '/define[       ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
 else
        patchlevel=0
        subversion=0
@@ -3314,6 +3078,7 @@ fi
 : Figure out perl API version.  Perhaps this should be in patchlevel.h
 if test "$subversion" -lt 50; then
        apiversion=`LC_ALL=C; export LC_ALL; \
+                LANGUAGE=C; export LANGUAGE; \
                 echo $baserev $patchlevel | \
                 $awk '{ printf "%.3f\n", $1 + $2/1000.0 }'`
 else
@@ -3647,7 +3412,7 @@ fi
 case "$models" in
 '')
        $cat >pdp11.c <<'EOP'
-main() {
+int main() {
 #ifdef pdp11
        exit(0);
 #else
@@ -4060,7 +3825,7 @@ false)
 esac
 
 case "$cppstdin" in
-"$wrapper") ;;
+"$wrapper"|'cppstdin') ;;
 *) $rm -f $wrapper;;
 esac
 $rm -f testcpp.c testcpp.out
@@ -4333,11 +4098,7 @@ if $xxx; then
        esac;
 fi'
 
-if ./osf1; then
-       set signal.h __LANGUAGE_C__; eval $inctest
-else
-       set signal.h LANGUAGE_C; eval $inctest
-fi
+set signal.h LANGUAGE_C; eval $inctest
 
 case "$hint" in
 none|recommended) dflt="$ccflags $dflt" ;;
@@ -4477,7 +4238,7 @@ echo " "
 echo "Checking your choice of C compiler and flags for coherency..." >&4
 $cat > try.c <<'EOF'
 #include <stdio.h>
-main() { printf("Ok\n"); exit(0); }
+int main() { printf("Ok\n"); exit(0); }
 EOF
 set X $cc $optimize $ccflags -o try $ldflags try.c $libs
 shift
@@ -4588,10 +4349,13 @@ $cat >findhdr <<EOF
 $startsh
 wanted=\$1
 name=''
-if test -f $usrinc/\$wanted; then
-       echo "$usrinc/\$wanted"
-       exit 0
-fi
+for usrincdir in $usrinc
+do
+       if test -f \$usrincdir/\$wanted; then
+               echo "\$usrincdir/\$wanted"
+               exit 0
+       fi
+done
 awkprg='{ print \$$fieldn }'
 echo "#include <\$wanted>" > foo\$\$.c
 $cppstdin $cppminus $cppflags < foo\$\$.c 2>/dev/null | \
@@ -4599,7 +4363,8 @@ $grep "^[         ]*#.*\$wanted" | \
 while read cline; do
        name=\`echo \$cline | $awk "\$awkprg" | $tr -d '"'\`
        case "\$name" in
-       */\$wanted) echo "\$name"; exit 0;;
+       *[/\\\\]\$wanted) echo "\$name"; exit 0;;
+       *[\\\\/]\$wanted) echo "\$name"; exit 0;;
        *) name='';;
        esac;
 done;
@@ -4797,6 +4562,31 @@ else
        installbin="$binexp"
 fi
 
+: determine whether to install perl also as /usr/bin/perl
+
+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
+else
+       val="$undef"
+fi
+set installusrbinperl
+eval $setvar
+
 : define a shorthand compile call
 compile='
 mc_file=$1;
@@ -5197,7 +4987,7 @@ nm_extract="$com"
 if $test -f /lib/syscalls.exp; then
        echo " "
        echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4
-       $sed -n 's/^\([^        ]*\)[   ]*syscall$/\1/p' /lib/syscalls.exp >>libc.list
+       $sed -n 's/^\([^        ]*\)[   ]*syscall[0-9]*$/\1/p' /lib/syscalls.exp >>libc.list
 fi
 ;;
 esac
@@ -5228,7 +5018,7 @@ yes)
                else tval=false;
                fi;;
        *)
-               echo "main() { extern short $1$tdc; printf(\"%hd\", $1$tc); }" > t.c;
+               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;
@@ -5418,6 +5208,7 @@ use no flags, say "none".
 EOM
     case "$lddlflags" in
     '') case "$osname" in
+                       beos) dflt='-nostart' ;;
                        hpux)  dflt='-b' ;;
                        linux|irix*)    dflt='-shared' ;;
                        next)  dflt='none' ;;
@@ -5498,7 +5289,7 @@ $undef)
        ;;
 *)     case "$useshrplib" in
        '')     case "$osname" in
-               svr4*|dgux|dynixptx|esix|powerux)
+               svr4*|dgux|dynixptx|esix|powerux|beos)
                        dflt=y
                        also='Building a shared libperl is required for dynamic loading to work on your system.'
                        ;;
@@ -5541,23 +5332,12 @@ EOM
                useshrplib='true'
                # Why does next4 have to be so different?
                case "${osname}${osvers}" in
-               next4*) xxx='DYLD_LIBRARY_PATH' ;;
+               next4*|rhapsody*)
+                       xxx='DYLD_LIBRARY_PATH' ;;
                os2*)   xxx='' ;; # Nothing special needed.
+               beos*)  xxx='' ;;
                *)              xxx='LD_LIBRARY_PATH' ;;
                esac
-               if test X"$xxx" != "X"; then
-                       $cat <<EOM  | $tee -a ../config.msg >&4
-
-To build perl, you must add the current working directory to your
-$xxx environment variable before running make.  You can do
-this with
-   $xxx=\`pwd\`:\$$xxx; export $xxx
-for Bourne-style shells, or
-   setenv $xxx \`pwd\`
-for Csh-style shells.  You *MUST* do this before running make.
-
-EOM
-               fi
                ;;
        *)      useshrplib='false' ;;
        esac
@@ -5629,7 +5409,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 (jhi@iki.fi)
+will not work in this version.  Let me (perlbug@perl.com)
 know of any problems this may cause.
 
 EOM
@@ -5675,6 +5455,13 @@ if "$useshrplib"; then
        next)
                # next doesn't like the default...
                ;;
+       beos)
+               # beos doesn't like the default, either.
+               ;;
+       hpux*)
+               # hpux doesn't like the default, either.
+               tmp_shrpenv="env LDOPTS=\"+s +b${shrpdir}\""
+               ;;
        *)
                tmp_shrpenv="env LD_RUN_PATH=$shrpdir"
                ;;
@@ -6374,8 +6161,8 @@ $cat <<EOM
 
 The installation process will also create a directory for
 site-specific extensions and modules.  Some users find it convenient
-to place all local files in this directory rather than in the main
-distribution directory.
+to place all site-specific files in this directory rather than in the
+main distribution directory.
 
 EOM
 fn=d~+
@@ -6602,7 +6389,7 @@ case "$d_access" in
 #ifdef I_UNISTD
 #include <unistd.h>
 #endif
-main() {
+int main() {
        exit(R_OK);
 }
 EOCP
@@ -6802,7 +6589,7 @@ case "$intsize" in
        echo "Checking to see how big your integers are..." >&4
        $cat >intsize.c <<'EOCP'
 #include <stdio.h>
-main()
+int main()
 {
        printf("intsize=%d;\n", sizeof(int));
        printf("longsize=%d;\n", sizeof(long));
@@ -6898,7 +6685,7 @@ $cat >try.c <<EOCP
 #include <sys/types.h>
 #include <signal.h>
 $signal_t blech(s) int s; { exit(3); }
-main()
+int main()
 {
        $xxx i32;
        double f, g;
@@ -6956,7 +6743,7 @@ $signal_t blech_in_list(s) int s; { exit(4); }
 unsigned long dummy_long(p) unsigned long p; { return p; }
 unsigned int dummy_int(p) unsigned int p; { return p; }
 unsigned short dummy_short(p) unsigned short p; { return p; }
-main()
+int main()
 {
        double f;
        unsigned long along;
@@ -7048,7 +6835,7 @@ if set vprintf val -f d_vprintf; eval $csym; $val; then
        $cat >vprintf.c <<'EOF'
 #include <varargs.h>
 
-main() { xxx("foo"); }
+int main() { xxx("foo"); }
 
 xxx(va_alist)
 va_dcl
@@ -7099,7 +6886,7 @@ while $test $# -ge 2; do
     shift 2;
 done > try.c;
 echo "int main () { struct $struct foo; foo.$field = 0; }" >> try.c;
-if eval $cc $optimize $ccflags -c try.c >/dev/null 2>&1; then
+if $cc $optimize $ccflags -c try.c >/dev/null 2>&1; then
        val="$define";
 else
        val="$undef";
@@ -7465,6 +7252,10 @@ if $test X"$use64bits" = X"$define"; then
        set lockf64 d_lockf64
        eval $inlibc
 
+       : see if llseek exists
+       set llseek d_llseek
+       eval $inlibc
+
        : see if lseek64 exists
        set lseek64 d_lseek64
        eval $inlibc
@@ -7506,6 +7297,7 @@ if $test X"$use64bits" = X"$define"; then
        echo $n "Checking to see if your system supports off64_t...$c" >&4
        $cat >try.c <<EOCP
 #include <sys/types.h>
+#include <unistd.h>
 off64_t foo() { off64_t x; x = 7; return x; }'
 EOCP
        if $cc $optimize $ccflags -c try.c >/dev/null 2>&1; then
@@ -7516,7 +7308,26 @@ EOCP
                echo " Nope, it doesn't." >&4
        fi
        $rm -f try.*
-       set d_off64t
+       set d_off64_t
+       eval $setvar
+
+       : check for offset_t
+       echo " "
+       echo $n "Checking to see if your system supports offset_t...$c" >&4
+       $cat >try.c <<EOCP
+#include <sys/types.h>
+#include <unistd.h>
+offset_t foo() { offset_t x; x = 7; return x; }'
+EOCP
+       if $cc $optimize $ccflags -c try.c >/dev/null 2>&1; then
+               val="$define"
+               echo " Yup, it does." >&4
+       else
+               val="$undef"
+               echo " Nope, it doesn't." >&4
+       fi
+       $rm -f try.*
+       set d_offset_t
        eval $setvar
 
        : check for ino64_t
@@ -7541,7 +7352,7 @@ EOCP
        else
                echo " Nope, it doesn't." >&4
        fi
-       set d_ino64t
+       set d_ino64_t
        eval $setvar
 
        : check for struct flock64
@@ -7576,7 +7387,7 @@ EOCP
 
 else
        val="$undef"
-       for xxx in d_fstat64 d_ftruncate64 d_lockf64 d_lseek64 d_lstat64 d_open64 d_opendir64 d_readdir64 d_seekdir64 d_stat64 d_telldir64 d_truncate64 d_off64t d_ino64t d_flock64_s d_dirent64_s
+       for xxx in d_fstat64 d_ftruncate64 d_lockf64 d_lseek64 d_lstat64 d_open64 d_opendir64 d_readdir64 d_seekdir64 d_stat64 d_telldir64 d_truncate64 d_off64_t d_offset_t d_ino64_t d_flock64_s d_dirent64_s
        do
                set $xxx
                eval $setvar
@@ -7765,7 +7576,7 @@ $cat >open3.c <<'EOCP'
 #ifdef I_SYS_FILE
 #include <sys/file.h>
 #endif
-main() {
+int main() {
        if(O_RDONLY);
 #ifdef O_TRUNC
        exit(0);
@@ -7821,7 +7632,7 @@ case "$o_nonblock" in
 '')
        $cat head.c > try.c
        $cat >>try.c <<'EOCP'
-main() {
+int main() {
 #ifdef O_NONBLOCK
        printf("O_NONBLOCK\n");
        exit(0);
@@ -7868,7 +7679,7 @@ extern int errno;
 $signal_t blech(x) int x; { exit(3); }
 EOCP
        $cat >> try.c <<'EOCP'
-main()
+int main()
 {
        int pd[2];
        int pu[2];
@@ -8017,7 +7828,7 @@ if test "X$timeincl" = X; then
 #ifdef I_SYSSELECT
 #include <sys/select.h>
 #endif
-main()
+int main()
 {
        struct tm foo;
 #ifdef S_TIMEVAL
@@ -8101,7 +7912,7 @@ $cat >fd_set.c <<EOCP
 #ifdef I_SYS_SELECT
 #include <sys/select.h>
 #endif
-main() {
+int main() {
        fd_set fds;
 
 #ifdef TRYBITS
@@ -8230,6 +8041,37 @@ eval $inlibc
 set fsetpos d_fsetpos
 eval $inlibc
 
+: see if this is a sys/param system
+set sys/param.h i_sysparam
+eval $inhdr
+
+: see if this is a sys/mount.h system
+set sys/mount.h i_sysmount
+eval $inhdr
+
+
+: see if statfs exists
+set statfs d_statfs
+eval $inlibc
+
+: see if fstatfs exists
+set fstatfs d_fstatfs
+eval $inlibc
+
+: see if statfs knows about mount flags
+set d_statfsflags statfs f_flags $i_sysparam sys/param.h $i_sysmount sys/mount.h
+eval $hasfield
+
+
+: see if statvfs exists
+set statvfs d_statvfs
+eval $inlibc
+
+: see if fstatvfs exists
+set fstatvfs d_fstatvfs
+eval $inlibc
+
+
 : see if ftello exists
 set ftello d_ftello
 eval $inlibc
@@ -8252,13 +8094,13 @@ eval $inlibc
 
 : see how we will look up host name
 echo " "
-if false; then
-       : dummy stub to allow use of elif
-elif set gethostname val -f d_gethname; eval $csym; $val; then
+call=''
+if set gethostname val -f d_gethname; eval $csym; $val; then
        echo 'gethostname() found.' >&4
        d_gethname="$define"
        call=gethostname
-elif set uname val -f d_uname; eval $csym; $val; then
+fi
+if set uname val -f d_uname; eval $csym; $val; then
        if ./xenix; then
                $cat <<'EOM'
 uname() was found, but you're running xenix, and older versions of xenix
@@ -8278,7 +8120,9 @@ EOM
        else
                echo 'uname() found.' >&4
                d_uname="$define"
-               call=uname
+               case "$call" in
+               '') call=uname ;;
+               esac
        fi
 fi
 case "$d_gethname" in
@@ -8346,6 +8190,10 @@ eval $hasproto
 set getlogin d_getlogin
 eval $inlibc
 
+: see if getmntent exists
+set getmntent d_getmntent
+eval $inlibc
+
 : see if getnetbyaddr exists
 set getnetbyaddr d_getnbyaddr
 eval $inlibc
@@ -8463,6 +8311,10 @@ $define)
        ;;
 esac
 
+: see if hasmntopt exists
+set hasmntopt d_hasmntopt
+eval $inlibc
+
 : see if this is a netinet/in.h or sys/in.h system
 set netinet/in.h i_niin sys/in.h i_sysin
 eval $inhdr
@@ -8624,7 +8476,7 @@ echo " "
 $cat >isascii.c <<'EOCP'
 #include <stdio.h>
 #include <ctype.h>
-main() {
+int main() {
        int c = 'A';
        if (isascii(c))
                exit(0);
@@ -8699,7 +8551,7 @@ case "$doublesize" in
        $echo $n "Checking to see how big your double precision numbers are...$c" >&4
        $cat >try.c <<'EOCP'
 #include <stdio.h>
-main()
+int main()
 {
        printf("%d\n", sizeof(double));
 }
@@ -8815,6 +8667,10 @@ $rm -f try.c try
 set lstat d_lstat
 eval $inlibc
 
+: see if madvise exists
+set madvise d_madvise
+eval $inlibc
+
 : see if mblen exists
 set mblen d_mblen
 eval $inlibc
@@ -8827,6 +8683,10 @@ eval $inlibc
 set mbtowc d_mbtowc
 eval $inlibc
 
+: see if memchr exists
+set memchr d_memchr
+eval $inlibc
+
 : see if memcmp exists
 set memcmp d_memcmp
 eval $inlibc
@@ -8855,6 +8715,37 @@ eval $inlibc
 set mktime d_mktime
 eval $inlibc
 
+: see if this is a sys/mman.h system
+set sys/mman.h i_sysmman
+eval $inhdr
+
+: see if mmap exists
+set mmap d_mmap
+eval $inlibc
+: see what shmat returns
+: default to something harmless
+mmaptype='void *'
+case "$i_sysmman$d_mmap" in
+"$define$define")
+       $cat >mmap.c <<'END'
+#include <sys/mman.h>
+void *mmap();
+END
+       if $cc $ccflags -c mmap.c >/dev/null 2>&1; then
+               mmaptype='void *'
+       else
+               mmaptype='caddr_t'
+       fi
+       echo "and it returns ($mmaptype)." >&4
+       ;;
+esac
+
+
+
+: see if mprotect exists
+set mprotect d_mprotect
+eval $inlibc
+
 : see if msgctl exists
 set msgctl d_msgctl
 eval $inlibc
@@ -8907,12 +8798,30 @@ fi
 set d_msg
 eval $setvar
 
+: see if msync exists
+set msync d_msync
+eval $inlibc
+
+: see if munmap exists
+set munmap d_munmap
+eval $inlibc
+
 : see if nice exists
 set nice d_nice
 eval $inlibc
 
-: how to create joinable pthreads
+: see if POSIX threads are available
 if test "X$usethreads" = "X$define"; then
+       set pthread.h i_pthread
+       eval $inhdr
+else
+       i_pthread="$undef"
+fi
+
+
+
+: how to create joinable pthreads
+if test "X$usethreads" = "X$define" -a "X$i_pthread" = "X$define"; then
        echo " "
        echo "Checking what constant to use for creating joinable pthreads..." >&4 
        $cat >try.c <<'EOCP'
@@ -8923,7 +8832,7 @@ int main() {
 EOCP
        set try -DJOINABLE=PTHREAD_CREATE_JOINABLE
        if eval $compile; then
-               echo "You seem to use PTHREAD_CREATE_JOINABLE." >&2
+               echo "You seem to use PTHREAD_CREATE_JOINABLE." >&4
                val="$undef" # Yes, undef.
                set d_old_pthread_create_joinable
                eval $setvar
@@ -8933,7 +8842,7 @@ EOCP
        else
                set try -DJOINABLE=PTHREAD_CREATE_UNDETACHED
                if eval $compile; then
-                       echo "You seem to use PTHREAD_CREATE_UNDETACHED." >&2
+                       echo "You seem to use PTHREAD_CREATE_UNDETACHED." >&4
                        val="$define"
                        set d_old_pthread_create_joinable
                        eval $setvar
@@ -8943,7 +8852,7 @@ EOCP
                else            
                        set try -DJOINABLE=__UNDETACHED
                        if eval $compile; then
-                               echo "You seem to use __UNDETACHED." >&2
+                               echo "You seem to use __UNDETACHED." >&4
                                val="$define"
                                set d_old_pthread_create_joinable
                                eval $setvar
@@ -8951,7 +8860,7 @@ EOCP
                                set old_pthread_create_joinable
                                eval $setvar
                        else
-                               echo "Egads, nothing obvious found.  Guessing that you use 0." >&2
+                               echo "Egads, nothing obvious found.  Guessing that you use 0." >&4
                                val="$define"
                                set d_old_pthread_create_joinable
                                eval $setvar
@@ -9217,7 +9126,7 @@ EOCP
 #ifdef I_UNISTD
 #  include <unistd.h>  /* Needed for NetBSD */
 #endif
-main()
+int main()
 {
 char buf[128], abc[128];
 char *b;
@@ -9293,7 +9202,7 @@ EOCP
 #ifdef I_UNISTD
 #  include <unistd.h>  /* Needed for NetBSD */
 #endif
-main()
+int main()
 {
 char buf[128], abc[128];
 char *b;
@@ -9371,7 +9280,7 @@ EOCP
 #ifdef I_UNISTD
 #  include <unistd.h>  /* Needed for NetBSD */
 #endif
-main()
+int main()
 {
 char a = -1;
 char b = 0;
@@ -9856,7 +9765,7 @@ if set sigaction val -f d_sigaction; eval $csym; $val; then
 #include <stdio.h>
 #include <sys/types.h>
 #include <signal.h>
-main()
+int main()
 {
     struct sigaction act, oact;
 }
@@ -9883,7 +9792,7 @@ case "$d_sigsetjmp" in
 #include <setjmp.h>
 sigjmp_buf env;
 int set = 1;
-main()
+int main()
 {
        if (sigsetjmp(env,1))
                exit(set);
@@ -9973,7 +9882,7 @@ $cat >try.c <<EOP
 #include <stdio.h>
 #define FILE_ptr(fp)   $stdio_ptr
 #define FILE_cnt(fp)   $stdio_cnt
-main() {
+int main() {
        FILE *fp = fopen("try.c", "r");
        char c = getc(fp);
        if (
@@ -10024,7 +9933,7 @@ $define)
 #include <stdio.h>
 #define FILE_base(fp)  $stdio_base
 #define FILE_bufsiz(fp)        $stdio_bufsiz
-main() {
+int main() {
        FILE *fp = fopen("try.c", "r");
        char c = getc(fp);
        if (
@@ -10052,6 +9961,41 @@ esac
 set d_stdiobase
 eval $setvar
 
+$cat >&4 <<EOM
+Checking how to access stdio streams by file descriptor number...
+EOM
+case "$stdio_stream_array" in
+'')    $cat >try.c <<EOCP
+#include <stdio.h>
+int main() {
+  if (&STDIO_STREAM_ARRAY[fileno(stdin)] == stdin)
+    printf("yes\n");
+}
+EOCP
+       for s in _iob __iob __sF
+       do
+               set try -DSTDIO_STREAM_ARRAY=$s
+               if eval $compile; then
+                       case "`./try$exe_ext`" in
+                       yes)    stdio_stream_array=$s; break ;;
+                       esac
+               fi
+       done
+       $rm -f try.* try$exe_ext
+esac
+case "$stdio_stream_array" in
+'')    $cat >&4 <<EOM
+I can't figure out how to access stdio streams by file descriptor number.
+EOM
+       d_stdio_stream_array="$undef"
+       ;;
+*)     $cat >&4 <<EOM
+You can access stdio streams by file descriptor number by the $stdio_stream_array array.
+EOM
+       d_stdio_stream_array="$define"
+       ;;
+esac
+
 : see if strcoll exists
 set strcoll d_strcoll
 eval $inlibc
@@ -10159,6 +10103,15 @@ eval $inlibc
 set tcsetpgrp d_tcsetpgrp
 eval $inlibc
 
+: see if sys/types.h has to be included
+set sys/types.h i_systypes
+eval $inhdr
+
+: see if prototype for telldir is available
+echo " "
+set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h
+eval $hasproto
+
 : define an is-a-typedef? function
 typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
 case "$inclist" in
@@ -10276,7 +10229,16 @@ $define)
        false) dflt='n';;
        *) dflt='y';;
        esac
-       rp="Some systems have problems with vfork().  Do you want to use it?"
+       cat <<'EOM'
+Perl can only use a vfork() that doesn't suffer from strict
+restrictions on calling functions or modifying global data in
+the child.  For example, glibc-2.1 contains such a vfork()
+that is unsuitable.  If your system provides a proper fork()
+call, chances are that you do NOT want perl to use vfork().
+
+EOM
+       rp="Do you still want to use vfork()?"
        . ./myread
        case "$ans" in
        y|Y) ;;
@@ -10302,10 +10264,6 @@ eval $inhdr
 set sys/ndir.h i_sysndir
 eval $inhdr
 
-: see if sys/types.h has to be included
-set sys/types.h i_systypes
-eval $inhdr
-
 : see if closedir exists
 set closedir d_closedir
 eval $inlibc
@@ -10422,41 +10380,77 @@ Log='$Log'
 RCSfile='$RCSfile'
 Revision='$Revision'
 
+case "$crosscompile" in
+''|[nN]*) crosscompile="$undef" ;;
+esac
+
+case "$osname" in
+next|rhapsody) multiarch="$define" ;;
+esac
+case "$multiarch" in
+''|[nN]*) multiarch="$undef" ;;
+esac
+
 : check for alignment requirements
 echo " "
-case "$alignbytes" in
-'') echo "Checking alignment constraints..." >&4
-       $cat >try.c <<'EOCP'
+case "$crosscompile$multiarch" in
+*$define*)
+       $cat <<EOM
+You seem to be either cross-compiling or doing a multiarchitecture build,
+skipping the memory alignment check.
+
+EOM
+       case "$alignbytes" in
+       '') alignbytes=8 ;;
+       esac
+       ;;
+*)
+       case "$alignbytes" in
+       '') echo "Checking alignment constraints..." >&4
+               $cat >try.c <<'EOCP'
 struct foobar {
        char foo;
        double bar;
-} try;
-main()
+} try_algn;
+int main()
 {
-       printf("%d\n", (char *)&try.bar - (char *)&try.foo);
+       printf("%d\n", (char *)&try_algn.bar - (char *)&try_algn.foo);
 }
 EOCP
-       set try
-       if eval $compile_ok; then
-               dflt=`./try`
-       else
-               dflt='8'
-               echo "(I can't seem to compile the test program...)"
-       fi
-       ;;
-*) dflt="$alignbytes"
+               set try
+               if eval $compile_ok; then
+                       dflt=`./try`
+               else
+                       dflt='8'
+                       echo "(I can't seem to compile the test program...)"
+               fi
+               ;;
+       *) dflt="$alignbytes"
+               ;;
+       esac
+       rp="Doubles must be aligned on a how-many-byte boundary?"
+       . ./myread
+       alignbytes="$ans"
+       $rm -f try.c try
        ;;
 esac
-rp="Doubles must be aligned on a how-many-byte boundary?"
-. ./myread
-alignbytes="$ans"
-$rm -f try.c try
+
 
 : check for ordering of bytes in a long
-case "$byteorder" in
-'')
-       $cat <<'EOM'
-  
+echo " "
+case "$crosscompile$multiarch" in
+*$define*)
+       $cat <<EOM
+You seem to be either cross-compiling or doing a multiarchitecture build,
+skipping the byteorder check.
+
+EOM
+       byteorder=''
+       ;;
+*)
+       case "$byteorder" in
+       '')
+               $cat <<'EOM'
 In the following, larger digits indicate more significance.  A big-endian
 machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A
 little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other
@@ -10464,9 +10458,9 @@ machines may have weird orders like 3412.  A Cray will report 87654321. If
 the test program works the default is probably right.
 I'm now running the test program...
 EOM
-       $cat >try.c <<'EOCP'
+               $cat >try.c <<'EOCP'
 #include <stdio.h>
-main()
+int main()
 {
        int i;
        union {
@@ -10484,37 +10478,40 @@ main()
        exit(0);
 }
 EOCP
-       xxx_prompt=y
-       set try
-       if eval $compile && ./try > /dev/null; then
-               dflt=`./try`
-               case "$dflt" in
-               [1-4][1-4][1-4][1-4]|12345678|87654321)
-                       echo "(The test program ran ok.)"
-                       echo "byteorder=$dflt"
-                       xxx_prompt=n
+               xxx_prompt=y
+               set try
+               if eval $compile && ./try > /dev/null; then
+                       dflt=`./try`
+                       case "$dflt" in
+                       [1-4][1-4][1-4][1-4]|12345678|87654321)
+                               echo "(The test program ran ok.)"
+                               echo "byteorder=$dflt"
+                               xxx_prompt=n
                        ;;
-               ????|????????) echo "(The test program ran ok.)" ;;
-               *) echo "(The test program didn't run right for some reason.)" ;;
-               esac
-       else
-               dflt='4321'
-               cat <<'EOM'
+                       ????|????????) echo "(The test program ran ok.)" ;;
+                       *) echo "(The test program didn't run right for some reason.)" ;;
+                       esac
+               else
+                       dflt='4321'
+                       cat <<'EOM'
 (I can't seem to compile the test program.  Guessing big-endian...)
 EOM
-       fi
-       case "$xxx_prompt" in
-       y)
-               rp="What is the order of bytes in a long?"
-               . ./myread
-               byteorder="$ans"
-               ;;
-       *)      byteorder=$dflt
+               fi
+               case "$xxx_prompt" in
+               y)
+                       rp="What is the order of bytes in a long?"
+                       . ./myread
+                       byteorder="$ans"
+                       ;;
+               *)      byteorder=$dflt
+                       ;;
+               esac
                ;;
        esac
+       $rm -f try.c try
        ;;
 esac
-$rm -f try.c try
+
 
 : how do we catenate cpp tokens here?
 echo " "
@@ -10561,7 +10558,7 @@ $define)
 #include <sys/types.h>
 #include <stdio.h>
 #include <db.h>
-main()
+int main()
 {
 #ifdef DB_VERSION_MAJOR        /* DB version >= 2 */
     int Major, Minor, Patch ;
@@ -10644,7 +10641,7 @@ size_t size;
 {
 }
 HASHINFO info;
-main()
+int main()
 {
        info.hash = hash_cb;
 }
@@ -10689,7 +10686,7 @@ const DBT *key2;
 {
 }
 BTREEINFO info;
-main()
+int main()
 {
        info.prefix = prefix_cb;
 }
@@ -10742,7 +10739,7 @@ sub() {
 #endif
        exit(0);
 }
-main() { sub(); }
+int main() { sub(); }
 EOCP
        if $cc $ccflags -c -DTRY=$defvoidused try.c >.out 2>&1 ; then
                voidflags=$defvoidused
@@ -10883,7 +10880,7 @@ echo "Checking to see how many bits your $randfunc() function produces..." >&4
 #ifdef I_STDLIB
 #  include <stdlib.h>
 #endif
-main()
+int main()
 {
        register int i;
        register unsigned long tmp;
@@ -10965,11 +10962,203 @@ $rm -f tebcdic.c tebcdic
 set ebcdic
 eval $setvar
 
+# SunOS has a <unistd.h> which we generally avoid, but need for this test.
+# For everyone else, we'll trust i_unistd.
+t_unistd=$i_unistd
+case "$osname" in
+sunos) $test -f /usr/include/unistd.h && t_unistd=$define ;;
+esac
+$cat >&4 <<EOM
+Checking how to flush all pending stdio output...
+EOM
+$cat >try.c <<EOCP
+#include <stdio.h>
+#$t_unistd I_UNISTD
+#ifdef I_UNISTD
+# include <unistd.h>
+#endif
+#$d_sysconf HAS_SYSCONF
+#$d_stdio_stream_array HAS_STDIO_STREAM_ARRAY
+#ifdef HAS_STDIO_STREAM_ARRAY
+# define STDIO_STREAM_ARRAY $stdio_stream_array
+#endif
+int main() {
+  FILE* p = fopen("try.out", "w");
+#ifdef TRY_FPUTC
+  fputc('x', p);
+#else
+# ifdef TRY_FPRINTF
+  fprintf(p, "x");
+# endif
+#endif
+#ifdef TRY_FFLUSH_NULL
+  fflush(NULL);
+#endif
+#ifdef TRY_FFLUSH_ALL
+  {
+    long open_max = -1;
+# if defined(HAS_SYSCONF) && defined(_SC_OPEN_MAX)
+    open_max = sysconf(_SC_OPEN_MAX);
+# else
+#  ifdef FOPEN_MAX
+#   open_max = FOPEN_MAX;
+#  else
+#   ifdef OPEN_MAX
+#   open_max = OPEN_MAX;
+#   else
+#    ifdef _NFILE
+#   open_max = _NFILE;
+#    endif
+#   endif
+#  endif
+# endif
+# ifdef HAS_STDIO_STREAM_ARRAY
+    if (open_max > 0) {
+      long i;
+      for (i = 0; i < open_max; i++)
+         fflush(&$stdio_stream_array[i]);
+    }  
+  }
+# endif
+#endif
+  _exit(42);
+}
+EOCP
+: first we have to find out how _not_ to flush
+if $test "X$fflushNULL" = X -o "X$fflushall" = X; then
+    output=''
+    set try -DTRY_FPUTC
+    $rm -f try.out
+    if eval $compile; then
+           ./try$exe_ext 2>/dev/null
+           if $test ! -s try.out -a "X$?" = X42; then
+               output=-DTRY_FPUTC
+           fi
+    fi
+    case "$output" in
+    '')
+           set try -DTRY_FPRINTF
+           $rm -f try.out
+           if eval $compile; then
+                   ./try$exe_ext 2>/dev/null
+                   if $test ! -s try.out -a "X$?" = X42; then
+                       output=-DTRY_FPRINTF
+                   fi
+           fi
+       ;;
+    esac
+fi
+: check for fflush NULL behaviour
+case "$fflushNULL" in
+'')    set try -DTRY_FFLUSH_NULL $output
+       $rm -f try.out
+       if eval $compile; then
+               ./try$exe_ext 2>/dev/null
+               code="$?"
+               if $test -s try.out -a "X$code" = X42; then
+                       fflushNULL="`$cat try.out`"
+               else
+                       if $test "X$code" != X42; then
+                               $cat >&4 <<EOM
+(If this test failed, don't worry, we'll try another method shortly.)
+EOM
+                       fi
+               fi
+       fi
+       $rm -f core try.core core.try.*
+       case "$fflushNULL" in
+       x)      $cat >&4 <<EOM
+Your fflush(NULL) works okay.
+EOM
+               fflushNULL="$define"
+               ;;
+       '')     $cat >&4 <<EOM
+Your fflush(NULL) isn't working (contrary to ANSI C).
+EOM
+               fflushNULL="$undef"
+               ;;
+       *)      $cat >&4 <<EOM
+Cannot figure out whether your fflush(NULL) works or not.
+I'm assuming it doesn't (contrary to ANSI C).
+EOM
+               fflushNULL="$undef"
+               ;;
+       esac
+       ;;
+$define|true|[yY]*)
+       fflushNULL="$define"
+       ;;
+*)
+       fflushNULL="$undef"
+       ;;
+esac
+: check explicit looping only if NULL did not work
+case "$fflushNULL" in
+"$undef")
+       : check for fflush all behaviour
+       case "$fflushall" in
+       '')     set try -DTRY_FFLUSH_ALL $output
+               $rm -f try.out
+               if eval $compile; then
+               $cat >&4 <<EOM
+(Now testing the other method--but note that also this may fail.)
+EOM
+                       ./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
+Sigh. Flushing explicitly all the stdio streams doesn't work.
+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
+       ;;
+*)     fflushall="$undef"      
+       ;;
+esac
+case "$fflushNULL$fflushall" in
+undefundef)
+       $cat <<EOM
+I cannot figure out how to flush pending stdio output.
+EOM
+       ;;
+esac
+$rm -f try.* try$exe_ext
+
 : 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
 
+: Store the full pathname to the ar program for use in the C program
+: Respect a hint or command line value for full_ar.
+case "$full_ar" in
+'') full_ar=$ar ;;
+esac
+
 : Store the full pathname to the sed program for use in the C program
 full_sed=$sed
 
@@ -11295,7 +11484,7 @@ case "$ptrsize" in
        fi
        $cat >>try.c <<'EOCP'
 #include <stdio.h>
-main()
+int main()
 {
        printf("%d\n", sizeof(VOID_PTR));
        exit(0);
@@ -11322,7 +11511,7 @@ echo "Checking how to generate random libraries on your machine..." >&4
 echo 'int bar1() { return bar2(); }' > bar1.c
 echo 'int bar2() { return 2; }' > bar2.c
 $cat > foo.c <<'EOP'
-main() { printf("%d\n", bar1()); exit(0); }
+int main() { printf("%d\n", bar1()); exit(0); }
 EOP
 $cc $ccflags -c bar1.c >/dev/null 2>&1
 $cc $ccflags -c bar2.c >/dev/null 2>&1
@@ -11504,6 +11693,8 @@ esac
 
 : Trace out the files included by signal.h, then look for SIGxxx names.
 : Remove SIGARRAYSIZE used by HPUX.
+: Remove SIGSTKSIZE used by Linux.
+: Remove SIGSTKSZ used by Posix.
 : Remove SIGTYP void lines used by OS2.
 xxx=`echo '#include <signal.h>' |
        $cppstdin $cppminus $cppflags 2>/dev/null |
@@ -11521,7 +11712,7 @@ case "$xxxfiles" in
 '')    xxxfiles=`./findhdr signal.h` ;;
 esac
 xxx=`awk '
-$1 ~ /^#define$/ && $2 ~ /^SIG[A-Z0-9]*$/ && $2 !~ /SIGARRAYSIZE/ && $3 !~ /void/ {
+$1 ~ /^#define$/ && $2 ~ /^SIG[A-Z0-9]*$/ && $2 !~ /SIGARRAYSIZE/ && $2 !~ /SIGSTKSIZE/ && $2 !~ /SIGSTKSZ/ && $3 !~ /void/ {
        print substr($2, 4, 20)
 }
 $1 == "#" && $2 ~ /^define$/ && $3 ~ /^SIG[A-Z0-9]*$/ && $3 !~ /SIGARRAYSIZE/ && $4 !~ /void/ {
@@ -11621,20 +11812,22 @@ $1 ~ /^NSIG$/ { nsig = $2 }
        sig_name[$2] = $1
        sig_num[$2] = $2
     }
-
 }
 END { 
-    if (nsig == 0) { nsig = maxsig + 1 }
-       for (n = 1; n < nsig; n++) {
-               if (sig_name[n]) {
-                       printf("%s %d\n", sig_name[n], sig_num[n])
-               }
-               else {
-                       printf("NUM%d %d\n", n, n) 
-               }
+    if (nsig == 0) {
+       nsig = maxsig + 1
+    }
+    printf("NSIG %d\n", nsig);
+    for (n = 1; n < nsig; n++) {
+       if (sig_name[n]) {
+           printf("%s %d\n", sig_name[n], sig_num[n])
        }
+       else {
+           printf("NUM%d %d\n", n, n) 
+       }
+    }
     for (n = 0; n < ndups; n++) {
-               printf("%s %d\n", dup_name[n], dup_num[n])
+       printf("%s %d\n", dup_name[n], dup_num[n])
     }
 }
 EOP
@@ -11700,7 +11893,8 @@ else
        0) set HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM;;
        esac
        echo $@ | $tr ' ' $trnl | \
-               $awk '{ printf $1; printf " %d\n", ++s; }' >signal.lst
+           $awk '{ printf "%s %d\n", $1, ++s; }
+                 END { printf "NSIG %d\n", ++s }' >signal.lst
 fi
 $rm -f signal.c signal$_exe signal$_o signal.nsg signal.ls1
 EOS
@@ -11719,19 +11913,20 @@ case "$doinit" in
 yes)
        echo "Generating a list of signal names and numbers..." >&4
        . ./signal_cmd
-       sig_name=`$awk '{printf "%s ", $1}' signal.lst`
-       sig_name="ZERO $sig_name"
-       sig_name_init=`$awk 'BEGIN { printf "\"ZERO\", " }
-                                               { printf "\"%s\", ", $1 }
-                                               END { printf "0\n" }' signal.lst`
-       sig_num=`$awk '{printf "%d ", $2}' signal.lst`
-       sig_num="0 $sig_num"
-       sig_num_init=`$awk 'BEGIN { printf "0, " }
-                                       { printf "%d, ", $2}
-                                       END { printf "0\n"}' signal.lst`
-       ;;
-esac
-echo "The following signals are available:"
+       sig_count=`$awk '/^NSIG/ { printf "%d", $2 }' signal.lst`
+       sig_name=`$awk 'BEGIN { printf "ZERO " }
+                       !/^NSIG/ { printf "%s ", $1 }' signal.lst`
+       sig_num=`$awk  'BEGIN { printf "0 " }
+                       !/^NSIG/ { printf "%d ", $2 }' signal.lst`
+       sig_name_init=`$awk 'BEGIN      { printf "\"ZERO\", " }
+                            !/^NSIG/   { printf "\"%s\", ", $1 }
+                            END        { printf "0\n" }' signal.lst`
+       sig_num_init=`$awk  'BEGIN      { printf "0, " }
+                            !/^NSIG/   { printf "%d, ", $2}
+                            END        { printf "0\n"}' signal.lst`
+       ;;
+esac
+echo "The following $sig_count signals are available:"
 echo " "
 echo $sig_name | $awk \
 'BEGIN { linelen = 0 }
@@ -11758,7 +11953,7 @@ $cat > ssize.c <<EOM
 #include <sys/types.h>
 #define Size_t $sizetype
 #define SSize_t $dflt
-main()
+int main()
 {
        if (sizeof(Size_t) == sizeof(SSize_t))
                printf("$dflt\n");
 set math.h i_math
 eval $inhdr
 
+: see if this is a mntent.h system
+set mntent.h i_mntent
+eval $inhdr
+
 : see if ndbm.h is available
 set ndbm.h t_ndbm
 eval $inhdr
@@ -11992,6 +12191,10 @@ esac
 set i_neterrno
 eval $setvar
 
+: see if netinet/tcp.h is available
+set netinet/tcp.h i_netinettcp
+eval $inhdr
+
 : see if this is a poll.h system
 set poll.h i_poll
 eval $inhdr
@@ -12048,12 +12251,16 @@ $eunicefix Cppsym
 ./Cppsym -l $al | $sort | $grep -v '^$' >Cppsym.true
 
 : now check the C compiler for additional symbols
+postprocess_cc_v=''
+case "$osname" in
+aix) postprocess_cc_v="|$tr , ' '" ;;
+esac
 $cat >ccsym <<EOS
 $startsh
 $cat >tmp.c <<EOF
 extern int foo;
 EOF
-for i in \`$cc -v -c tmp.c 2>&1\`
+for i in \`$cc -v -c tmp.c 2>&1 $postprocess_cc_v\`
 do
        case "\$i" in
        -D*) echo "\$i" | $sed 's/^-D//';;
@@ -12062,6 +12269,7 @@ do
 done
 $rm -f try.c
 EOS
+postprocess_cc_v=''
 chmod +x ccsym
 $eunicefix ccsym
 ./ccsym > ccsym1.raw
@@ -12078,32 +12286,41 @@ $comm -13 ccsym.true ccsym.list >ccsym.own
 $comm -12 ccsym.true ccsym.list >ccsym.com
 $comm -23 ccsym.true ccsym.list >ccsym.cpp
 also=''
-symbols='symbols'
 if $test -z ccsym.raw; then
-       echo "Your C compiler doesn't seem to define any symbol!" >&4
+       echo "Your C compiler doesn't seem to define any symbols!" >&4
        echo " "
-       echo "However, your C preprocessor defines the following ones:"
+       echo "However, your C preprocessor defines the following symbols:"
        $cat Cppsym.true
+       ccsymbols=''
+       cppsymbols=`$cat Cppsym.true`
+        cppsymbols=`echo $cppsymbols`
+       cppccsymbols="$cppsymbols"
 else
        if $test -s ccsym.com; then
                echo "Your C compiler and pre-processor define these symbols:"
                $sed -e 's/\(.*\)=.*/\1/' ccsym.com
                also='also '
                symbols='ones'
+               cppccsymbols=`$cat ccsym.com`
+               cppccsymbols=`echo $cppccsymbols`
                $test "$silent" || sleep 1
        fi
        if $test -s ccsym.cpp; then
                $test "$also" && echo " "
-               echo "Your C pre-processor ${also}defines the following $symbols:"
+               echo "Your C pre-processor ${also}defines the following symbols:"
                $sed -e 's/\(.*\)=.*/\1/' ccsym.cpp
                also='further '
+               cppsymbols=`$cat ccsym.cpp`
+               cppsymbols=`echo $cppsymbols`
                $test "$silent" || sleep 1
        fi
        if $test -s ccsym.own; then
                $test "$also" && echo " "
-               echo "Your C compiler ${also}defines the following cpp variables:"
+               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
+               ccsymbols=`$cat ccsym.own`
+               ccsymbols=`echo $ccsymbols`
                $test "$silent" || sleep 1
        fi
 fi
 set i_sysioctl
 eval $setvar
 
-: see if this is a sys/param system
-set sys/param.h i_sysparam
-eval $inhdr
-
 : see if sys/resource.h has to be included
 set sys/resource.h i_sysresrc
 eval $inhdr
@@ -12303,6 +12516,10 @@ eval $inhdr
 set sys/security.h i_syssecrt
 eval $inhdr
 
+: see if this is a sys/statvfs.h system
+set sys/statvfs.h i_sysstatvfs
+eval $inhdr
+
 : see if this is a sys/un.h system
 set sys/un.h i_sysun
 eval $inhdr
@@ -12687,6 +12904,7 @@ cc='$cc'
 cccdlflags='$cccdlflags'
 ccdlflags='$ccdlflags'
 ccflags='$ccflags'
+ccsymbols='$ccsymbols'
 cf_by='$cf_by'
 cf_email='$cf_email'
 cf_time='$cf_time'
@@ -12701,11 +12919,14 @@ cp='$cp'
 cpio='$cpio'
 cpp='$cpp'
 cpp_stuff='$cpp_stuff'
+cppccsymbols='$cppccsymbols'
 cppflags='$cppflags'
 cpplast='$cpplast'
 cppminus='$cppminus'
 cpprun='$cpprun'
 cppstdin='$cppstdin'
+cppsymbols='$cppsymbols'
+crosscompile='$crosscompile'
 cryptlib='$cryptlib'
 csh='$csh'
 d_Gconvert='$d_Gconvert'
@@ -12777,6 +12998,8 @@ d_fseeko='$d_fseeko'
 d_fsetpos64='$d_fsetpos64'
 d_fsetpos='$d_fsetpos'
 d_fstat64='$d_fstat64'
+d_fstatfs='$d_fstatfs'
+d_fstatvfs='$d_fstatvfs'
 d_ftell64='$d_ftell64'
 d_ftello64='$d_ftello64'
 d_ftello='$d_ftello'
@@ -12790,6 +13013,7 @@ d_gethent='$d_gethent'
 d_gethname='$d_gethname'
 d_gethostprotos='$d_gethostprotos'
 d_getlogin='$d_getlogin'
+d_getmntent='$d_getmntent'
 d_getnbyaddr='$d_getnbyaddr'
 d_getnbyname='$d_getnbyname'
 d_getnent='$d_getnent'
@@ -12811,16 +13035,18 @@ d_getservprotos='$d_getservprotos'
 d_gettimeod='$d_gettimeod'
 d_gnulibc='$d_gnulibc'
 d_grpasswd='$d_grpasswd'
+d_hasmntopt='$d_hasmntopt'
 d_htonl='$d_htonl'
 d_index='$d_index'
 d_inetaton='$d_inetaton'
-d_ino64t='$d_ino64t'
+d_ino64_t='$d_ino64_t'
 d_int64t='$d_int64t'
 d_iovec_s='$d_iovec_s'
 d_isascii='$d_isascii'
 d_killpg='$d_killpg'
 d_lchown='$d_lchown'
 d_link='$d_link'
+d_llseek='$d_llseek'
 d_locconv='$d_locconv'
 d_lockf64='$d_lockf64'
 d_lockf='$d_lockf'
@@ -12829,9 +13055,11 @@ d_longlong='$d_longlong'
 d_lseek64='$d_lseek64'
 d_lstat64='$d_lstat64'
 d_lstat='$d_lstat'
+d_madvise='$d_madvise'
 d_mblen='$d_mblen'
 d_mbstowcs='$d_mbstowcs'
 d_mbtowc='$d_mbtowc'
+d_memchr='$d_memchr'
 d_memcmp='$d_memcmp'
 d_memcpy='$d_memcpy'
 d_memmove='$d_memmove'
@@ -12839,6 +13067,8 @@ d_memset='$d_memset'
 d_mkdir='$d_mkdir'
 d_mkfifo='$d_mkfifo'
 d_mktime='$d_mktime'
+d_mmap='$d_mmap'
+d_mprotect='$d_mprotect'
 d_msg='$d_msg'
 d_msg_ctrunc='$d_msg_ctrunc'
 d_msg_dontroute='$d_msg_dontroute'
@@ -12850,10 +13080,13 @@ d_msgget='$d_msgget'
 d_msghdr_s='$d_msghdr_s'
 d_msgrcv='$d_msgrcv'
 d_msgsnd='$d_msgsnd'
+d_msync='$d_msync'
+d_munmap='$d_munmap'
 d_mymalloc='$d_mymalloc'
 d_nextkey64='$d_nextkey64'
 d_nice='$d_nice'
-d_off64t='$d_off64t'
+d_off64_t='$d_off64_t'
+d_offset_t='$d_offset_t'
 d_old_pthread_create_joinable='$d_old_pthread_create_joinable'
 d_oldpthreads='$d_oldpthreads'
 d_oldsock='$d_oldsock'
@@ -12934,8 +13167,12 @@ d_socket='$d_socket'
 d_sockpair='$d_sockpair'
 d_stat64='$d_stat64'
 d_statblks='$d_statblks'
+d_statfs='$d_statfs'
+d_statfsflags='$d_statfsflags'
+d_statvfs='$d_statvfs'
 d_stdio_cnt_lval='$d_stdio_cnt_lval'
 d_stdio_ptr_lval='$d_stdio_ptr_lval'
+d_stdio_stream_array='$d_stdio_stream_array'
 d_stdiobase='$d_stdiobase'
 d_stdstdio='$d_stdstdio'
 d_store64='$d_store64'
@@ -12959,6 +13196,7 @@ d_tcgetpgrp='$d_tcgetpgrp'
 d_tcsetpgrp='$d_tcsetpgrp'
 d_telldir64='$d_telldir64'
 d_telldir='$d_telldir'
+d_telldirproto='$d_telldirproto'
 d_time='$d_time'
 d_times='$d_times'
 d_tmpfile64='$d_tmpfile64'
@@ -12999,11 +13237,14 @@ eunicefix='$eunicefix'
 exe_ext='$exe_ext'
 expr='$expr'
 extensions='$extensions'
+fflushNULL='$fflushNULL'
+fflushall='$fflushall'
 find='$find'
 firstmakefile='$firstmakefile'
 flex='$flex'
 fpostype='$fpostype'
 freetype='$freetype'
+full_ar='$full_ar'
 full_csh='$full_csh'
 full_sed='$full_sed'
 gccversion='$gccversion'
@@ -13036,11 +13277,14 @@ i_machcthr='$i_machcthr'
 i_malloc='$i_malloc'
 i_math='$i_math'
 i_memory='$i_memory'
+i_mntent='$i_mntent'
 i_ndbm='$i_ndbm'
 i_netdb='$i_netdb'
 i_neterrno='$i_neterrno'
+i_netinettcp='$i_netinettcp'
 i_niin='$i_niin'
 i_poll='$i_poll'
+i_pthread='$i_pthread'
 i_pwd='$i_pwd'
 i_rpcsvcdbm='$i_rpcsvcdbm'
 i_sfio='$i_sfio'
@@ -13055,6 +13299,8 @@ i_sysfile='$i_sysfile'
 i_sysfilio='$i_sysfilio'
 i_sysin='$i_sysin'
 i_sysioctl='$i_sysioctl'
+i_sysmman='$i_sysmman'
+i_sysmount='$i_sysmount'
 i_sysndir='$i_sysndir'
 i_sysparam='$i_sysparam'
 i_sysresrc='$i_sysresrc'
@@ -13062,6 +13308,7 @@ i_syssecrt='$i_syssecrt'
 i_sysselct='$i_sysselct'
 i_syssockio='$i_syssockio'
 i_sysstat='$i_sysstat'
+i_sysstatvfs='$i_sysstatvfs'
 i_systime='$i_systime'
 i_systimek='$i_systimek'
 i_systimes='$i_systimes'
@@ -13089,6 +13336,7 @@ installprivlib='$installprivlib'
 installscript='$installscript'
 installsitearch='$installsitearch'
 installsitelib='$installsitelib'
+installusrbinperl='$installusrbinperl'
 intsize='$intsize'
 known_extensions='$known_extensions'
 ksh='$ksh'
@@ -13135,9 +13383,11 @@ medium='$medium'
 mips='$mips'
 mips_type='$mips_type'
 mkdir='$mkdir'
+mmaptype='$mmaptype'
 models='$models'
 modetype='$modetype'
 more='$more'
+multiarch='$multiarch'
 mv='$mv'
 myarchname='$myarchname'
 mydomain='$mydomain'
@@ -13203,6 +13453,7 @@ shmattype='$shmattype'
 shortsize='$shortsize'
 shrpenv='$shrpenv'
 shsharp='$shsharp'
+sig_count='$sig_count'
 sig_name='$sig_name'
 sig_name_init='$sig_name_init'
 sig_num='$sig_num'
@@ -13234,6 +13485,7 @@ stdio_bufsiz='$stdio_bufsiz'
 stdio_cnt='$stdio_cnt'
 stdio_filbuf='$stdio_filbuf'
 stdio_ptr='$stdio_ptr'
+stdio_stream_array='$stdio_stream_array'
 strings='$strings'
 submit='$submit'
 subversion='$subversion'
@@ -13279,8 +13531,8 @@ $test -f UU/cmdline.opt && $cat UU/cmdline.opt >> config.sh
 
 : add special variables
 $test -f $src/patchlevel.h && \
-awk '/^#define/ {printf "%s=%s\n",$2,$3}' $src/patchlevel.h >>config.sh
-echo "CONFIG=true" >>config.sh
+awk '/^#define[        ]+PERL_/ {printf "%s=%s\n",$2,$3}' $src/patchlevel.h >>config.sh
+echo "CONFIGDOTSH=true" >>config.sh
 
 : propagate old symbols
 if $test -f UU/config.sh; then