This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Attempt to fix problems with new exception handling macros.
[perl5.git] / Configure
index 23e1084..e52f8e9 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Tue Jul  1 10:09:27 EEST 2003 [metaconfig 3.0 PL70]
+# Generated on Mon Jan 31 12:56:14 CET 2005 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.org)
 
 cat >c1$$ <<EOF
@@ -91,7 +91,7 @@ paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
 paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
 paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
 paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
-paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /usr/ccs/bin"
+paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
 paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
 paths="$paths /sbin /usr/sbin /usr/libexec"
 paths="$paths /system/gnu_library/bin"
@@ -712,6 +712,8 @@ d_syserrlst=''
 d_strerror_r=''
 strerror_r_proto=''
 d_strftime=''
+d_strlcat=''
+d_strlcpy=''
 d_strtod=''
 d_strtol=''
 d_strtold=''
@@ -942,6 +944,7 @@ freetype=''
 mallocobj=''
 mallocsrc=''
 malloctype=''
+usemallocwrap=''
 usemymalloc=''
 installman1dir=''
 man1dir=''
@@ -1074,20 +1077,20 @@ sitebin=''
 sitebinexp=''
 installsitehtml1dir=''
 sitehtml1dir=''
-sitehtml1exp=''
+sitehtml1direxp=''
 installsitehtml3dir=''
 sitehtml3dir=''
-sitehtml3exp=''
+sitehtml3direxp=''
 installsitelib=''
 sitelib=''
 sitelib_stem=''
 sitelibexp=''
 installsiteman1dir=''
 siteman1dir=''
-siteman1exp=''
+siteman1direxp=''
 installsiteman3dir=''
 siteman3dir=''
-siteman3exp=''
+siteman3direxp=''
 siteprefix=''
 siteprefixexp=''
 installsitescript=''
@@ -1129,6 +1132,7 @@ nm_so_opt=''
 runnm=''
 usenm=''
 useperlio=''
+userelocatableinc=''
 usesocks=''
 d_oldpthreads=''
 use5005threads=''
@@ -1148,10 +1152,10 @@ vendorbin=''
 vendorbinexp=''
 installvendorhtml1dir=''
 vendorhtml1dir=''
-vendorhtml1exp=''
+vendorhtml1direxp=''
 installvendorhtml3dir=''
 vendorhtml3dir=''
-vendorhtml3exp=''
+vendorhtml3direxp=''
 d_vendorlib=''
 installvendorlib=''
 vendorlib=''
@@ -1159,10 +1163,10 @@ vendorlib_stem=''
 vendorlibexp=''
 installvendorman1dir=''
 vendorman1dir=''
-vendorman1exp=''
+vendorman1direxp=''
 installvendorman3dir=''
 vendorman3dir=''
-vendorman3exp=''
+vendorman3direxp=''
 usevendorprefix=''
 vendorprefix=''
 vendorprefixexp=''
@@ -1173,8 +1177,6 @@ vendorscriptexp=''
 versiononly=''
 defvoidused=''
 voidflags=''
-pm_apiversion=''
-xs_apiversion=''
 yacc=''
 yaccflags=''
 CONFIG=''
@@ -1209,6 +1211,17 @@ elif test -d c:/. -o -n "$is_os2" ; 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.
+useopcode=true
+: Trailing extension.  Override this in a hint file, if needed.
+: Extra object files, if any, needed on this platform.
+archobjs=''
+archname=''
 : Possible local include directories to search.
 : Set locincpth to "" in a hint file to defeat local include searches.
 locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
@@ -1217,12 +1230,6 @@ locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
 : no include file wanted by default
 inclwanted=''
 
-siteman1dir=''
-siteman3dir=''
-sitescript=''
-: Trailing extension.  Override this in a hint file, if needed.
-: Extra object files, if any, needed on this platform.
-archobjs=''
 groupstype=''
 libnames=''
 : change the next line if compiling for Xenix/286 on Xenix/386
@@ -1246,25 +1253,20 @@ plibpth=''
 libswanted=''
 : some systems want to use only the non-versioned libso:s
 ignore_versioned_solibs=''
-: full support for void wanted by default
-defvoidused=15
-
-ccname=''
-ccversion=''
-perllibs=''
-: set useposix=false in your hint file to disable the POSIX extension.
-useposix=true
-: set useopcode=false in your hint file to disable the Opcode extension.
-useopcode=true
+siteman1dir=''
+siteman3dir=''
+sitescript=''
 archname64=''
 ccflags_uselargefiles=''
 ldflags_uselargefiles=''
 libswanted_uselargefiles=''
 : set usemultiplicity on the Configure command line to enable multiplicity.
 : set usesocks on the Configure command line to enable socks.
-archname=''
 : set usethreads on the Configure command line to enable threads.
 usereentrant='undef'
+: full support for void wanted by default
+defvoidused=15
+
 : List of libraries we want.
 : If anyone needs extra -lxxx, put those in a hint file.
 libswanted="sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun"
@@ -2876,37 +2878,37 @@ ABYZ)
        up='[:upper:]'
        low='[:lower:]'
        ;;
-*)     # There is a discontinuity in EBCDIC between 'I' and 'J'
-        # (0xc9 and 0xd1), therefore that is a nice testing point.
-        if test "X$up" = X -o "X$low" = X; then
-           case "`echo IJ | $tr '[I-J]' '[i-j]' 2>/dev/null`" in
-           ij) up='[A-Z]'
-               low='[a-z]'
+*)     # There is a discontinuity in EBCDIC between 'R' and 'S'
+       # (0xd9 and 0xe2), therefore that is a nice testing point.
+       if test "X$up" = X -o "X$low" = X; then
+           case "`echo RS | $tr '[R-S]' '[r-s]' 2>/dev/null`" in
+           rs) up='[A-Z]'
+               low='[a-z]'
                ;;
            esac
-        fi
+       fi
        if test "X$up" = X -o "X$low" = X; then
-           case "`echo IJ | $tr I-J i-j 2>/dev/null`" in
-           ij) up='A-Z'
+           case "`echo RS | $tr R-S r-s 2>/dev/null`" in
+           rs) up='A-Z'
                low='a-z'
                ;;
            esac
-        fi
+       fi
        if test "X$up" = X -o "X$low" = X; then
-           case "`echo IJ | od -x 2>/dev/null`" in
-           *C9D1*|*c9d1*)
+           case "`echo RS | od -x 2>/dev/null`" in
+           *D9E2*|*d9e2*)
                echo "Hey, this might be EBCDIC." >&4
                if test "X$up" = X -o "X$low" = X; then
-                   case "`echo IJ | $tr '[A-IJ-RS-Z]' '[a-ij-rs-z]' 2>/dev/null`" in
-                   ij) up='[A-IJ-RS-Z]'
-                       low='[a-ij-rs-z]'
+                   case "`echo RS | $tr '[A-IJ-RS-Z]' '[a-ij-rs-z]' 2>/dev/null`" in
+                   rs) up='[A-IJ-RS-Z]'
+                       low='[a-ij-rs-z]'
                        ;;
                    esac
                fi
                if test "X$up" = X -o "X$low" = X; then
-                   case "`echo IJ | $tr A-IJ-RS-Z a-ij-rs-z 2>/dev/null`" in
-                   ij) up='A-IJ-RS-Z'
-                       low='a-ij-rs-z'
+                   case "`echo RS | $tr A-IJ-RS-Z a-ij-rs-z 2>/dev/null`" in
+                   rs) up='A-IJ-RS-Z'
+                       low='a-ij-rs-z'
                        ;;
                    esac
                fi
@@ -2914,8 +2916,8 @@ ABYZ)
            esac
        fi
 esac
-case "`echo IJ | $tr \"$up\" \"$low\" 2>/dev/null`" in
-ij)
+case "`echo RS | $tr \"$up\" \"$low\" 2>/dev/null`" in
+rs)
     echo "Using $up and $low to convert case." >&4
     ;;
 *)
@@ -3081,7 +3083,9 @@ EOM
                aix) osname=aix
                        tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1`
                        case "$tmp" in
-                       'not found') osvers="$4"."$3" ;;
+                       # oslevel can fail with:
+                       # oslevel: Unable to acquire lock.
+                       *not\ found) osvers="$4"."$3" ;;
                        '<3240'|'<>3240') osvers=3.2.0 ;;
                        '=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;;
                        '=3250'|'>3250') osvers=3.2.5 ;;
@@ -3103,7 +3107,7 @@ EOM
                domainos) osname=apollo
                        osvers="$3"
                        ;;
-               dgux) osname=dgux 
+               dgux)   osname=dgux 
                        osvers="$3"
                        ;;
                dynixptx*) osname=dynixptx
@@ -3111,23 +3115,25 @@ EOM
                        ;;
                freebsd) osname=freebsd 
                        osvers="$3" ;;
-               genix) osname=genix ;;
-               hp*) osname=hpux 
+               genix)  osname=genix ;;
+               gnu)    osname=gnu
+                       osvers="$3" ;;
+               hp*)    osname=hpux 
                        osvers=`echo "$3" | $sed 's,.*\.\([0-9]*\.[0-9]*\),\1,'`
                        ;;
-               irix*) osname=irix
+               irix*)  osname=irix
                        case "$3" in
                        4*) osvers=4 ;;
                        5*) osvers=5 ;;
                        *)      osvers="$3" ;;
                        esac
                        ;;
-               linux) osname=linux
+               linux)  osname=linux
                        case "$3" in
                        *)      osvers="$3" ;;
                        esac
                        ;;
-               MiNT) osname=mint
+               MiNT)   osname=mint
                        ;;
                netbsd*) osname=netbsd
                        osvers="$3"
@@ -3458,12 +3464,15 @@ esac
 
 : who configured the system
 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
 "")
-       cf_by=`(whoami) 2>/dev/null`
+       cf_by=`(logname) 2>/dev/null`
        case "$cf_by" in
-       "") cf_by=unknown ;;
+       "")
+               cf_by=`(whoami) 2>/dev/null`
+               case "$cf_by" in
+               "") cf_by=unknown ;;
+               esac ;;
        esac ;;
 esac
 
@@ -3673,22 +3682,22 @@ set d_oldpthreads
 eval $setvar
 
 
-case "$usethreads" in
-"$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
-               echo "Your platform has some specific hints for threaded builds, using them..."
-               . ./usethreads.cbu
-       else
+if $test -f usethreads.cbu; then
+    echo "Your platform has some specific hints regarding threaded builds, using them..."
+    . ./usethreads.cbu
+else
+    case "$usethreads" in
+       "$define"|true|[yY]*)
                $cat <<EOM
-(Your platform doesn't have any specific hints for threaded builds.
+(Your platform does not have any specific hints for threaded builds.
  Assuming POSIX threads, then.)
 EOM
-       fi
        ;;
-esac
+    esac
+fi
 
 cat <<EOM
 
@@ -4546,21 +4555,21 @@ 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
+if $test -f uselongdouble.cbu; then
+    echo "Your platform has some specific hints regarding long doubles, using them..."
+    . ./uselongdouble.cbu
+else
+    case "$uselongdouble" in
+       $define)
                $cat <<EOM
-(Your platform doesn't have any specific hints for long doubles.)
+(Your platform does not have any specific hints for long doubles.)
 EOM
-       fi
        ;;
-esac
+    esac
+fi
 
 : Looking for optional libraries
 echo " "
@@ -4704,6 +4713,7 @@ default|recommended)
        2*) if test -d /etc/conf/kconfig.d &&
                        $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
                then
+                       # Interactive Systems (ISC) POSIX mode.
                        dflt="$dflt -posix"
                fi
                ;;
@@ -4717,7 +4727,7 @@ default|recommended)
                if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then
                        echo "Yes, it does." 2>&1
                        case "$ccflags" in
-                       *strict-aliasing*) 
+                       *strict-aliasing*)
                                echo "Leaving current flags $ccflags alone." 2>&1
                                ;;
                        *) dflt="$dflt -fno-strict-aliasing" ;;
@@ -4727,6 +4737,26 @@ default|recommended)
                fi
                ;;
        esac
+       # For gcc, adding -pipe speeds up compilations for some, but apparently
+       # some assemblers can't read from stdin.  (It also slows down compilations
+       # in other cases, but those are apparently rarer these days.)  AD 5/2004.
+       case "$gccversion" in
+       ?*)     echo " "
+               echo "Checking if your compiler accepts -pipe" 2>&1
+               echo 'int main(void) { return 0; }' > gcctest.c
+               if $cc -O2 -pipe -o gcctest gcctest.c; then
+                       echo "Yes, it does." 2>&1
+                       case "$ccflags" in
+                       *-pipe*)
+                               echo "Leaving current flags $ccflags alone." 2>&1
+                               ;;
+                       *) dflt="$dflt -pipe" ;;
+                       esac
+               else
+                       echo "Nope, it doesn't, but that's ok." 2>&1
+               fi
+               ;;
+       esac
        ;;
 esac
 
@@ -4738,8 +4768,8 @@ 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 ";;
+                       *" -I$thisincl "*);;
+                       *) dflt="$dflt -I$thisincl ";;
                        esac
                fi
        fi
@@ -4870,7 +4900,7 @@ esac
 for thislibdir in $libpth; do
        case " $loclibpth " in
        *" $thislibdir "*)
-               case "$dflt " in 
+               case "$dflt " in
                *"-L$thislibdir "*) ;;
                *)  dflt="$dflt -L$thislibdir" ;;
                esac
@@ -5447,15 +5477,15 @@ EOM
        ;;
 esac
 
-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
+if $test -f use64bitint.cbu; then
+       echo "Your platform has some specific hints regarding 64-bit integers, using them..."
+       . ./use64bitint.cbu
+fi
+case "$use64bitint" in
+"$define"|true|[yY]*)
        case "$longsize" in
        4) case "$archname64" in
           '') archname64=64int ;;
@@ -5465,15 +5495,15 @@ case "$use64bitint" in
        ;;
 esac
 
-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
+if $test -f use64bitall.cbu; then
+       echo "Your platform has some specific hints regarding 64-bit builds, using them..."
+       . ./use64bitall.cbu
+fi
+case "$use64bitall" in
+"$define"|true|[yY]*)
        case "$longsize" in
        4) case "$archname64" in
           ''|64int) archname64=64all ;;
@@ -5488,7 +5518,7 @@ $undef:$define)
        cat >&4 <<EOF
 
 *** You have chosen to use 64-bit integers,
-*** but none cannot be found.
+*** but none can be found.
 *** Please rerun Configure without -Duse64bitint and/or -Dusemorebits.
 *** Cannot continue, aborting.
 
@@ -5571,7 +5601,9 @@ EOCP
                longdblsize="$ans"
        fi
        if $test "X$doublesize" = "X$longdblsize"; then
-               echo "(That isn't any different from an ordinary double.)"
+               echo "That isn't any different from an ordinary double."
+               echo "I'll keep your setting anyway, but you may see some"
+               echo "harmless compilation warnings."
        fi      
        ;;
 esac
@@ -6254,6 +6286,27 @@ EOM
 esac
 
 
+: determine whether to use malloc wrapping
+echo " "
+case "$usemallocwrap" in
+[yY]*|true|$define)    dflt='y' ;;
+[nN]*|false|$undef)    dflt='n' ;;
+*)     case "$usedevel" in
+       [yY]*|true|$define)     dflt='y' ;;
+       *) dflt='n' ;;
+       esac
+       ;;
+esac
+rp="Do you wish to wrap malloc calls to protect against potential overflows?"
+. ./myread
+usemallocwrap="$ans"
+case "$ans" in
+y*|true)
+       usemallocwrap="$define" ;;
+*)
+       usemallocwrap="$undef" ;;
+esac
+
 : determine which malloc to compile in
 echo " "
 case "$usemymalloc" in
@@ -6871,7 +6924,7 @@ EOM
 rp='List of earlier versions to include in @INC?'
 . ./myread
 case "$ans" in
-[Nn]one|''|' ') inc_version_list=' ' ;;
+[Nn]one|''|' '|$undef) inc_version_list=' ' ;;
 *) inc_version_list="$ans" ;;
 esac
 case "$inc_version_list" in
@@ -7052,7 +7105,7 @@ esac
 : for archive libraries.  Thank you, Linux.
 case "$nm_so_opt" in
 '')    case "$myuname" in
-       *linux*)
+       *linux*|gnu*)
                if $nm --help | $grep 'dynamic' > /dev/null 2>&1; then
                        nm_so_opt='--dynamic'
                fi
@@ -7354,9 +7407,9 @@ 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="()";;
+-v) tf=libc.tmp; tdc="";;
+-a) tf=libc.tmp; tdc="[]";;
+*) tlook="^$1\$"; tf=libc.list; tdc="()";;
 esac;
 tx=yes;
 case "$reuseval-$4" in
@@ -7370,16 +7423,15 @@ yes)
                if $contains $tlook $tf >/dev/null 2>&1; then
                        tval=true;
                elif $test "$mistrustnm" = compile -o "$mistrustnm" = run; then
-                       echo "int main() { extern void *$1$tdc; if (&$1$tc) return(0); else return(1); }" > try.c;
+                       echo "void *(*(p()))$tdc { extern void *$1$tdc; return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c;
                        $cc -o try $optimize $ccflags $ldflags try.c >/dev/null 2>&1 $libs && tval=true;
-                       $test "$mistrustnm" = run -a -x try && { $run ./try >/dev/null 2>&1 || tval=false; };
-                       $rm -f try try.c core;
+                       $test "$mistrustnm" = run -a -x try && { $run ./try$_exe >/dev/null 2>&1 || tval=false; };
+                       $rm -f try$_exe try.c core core.* try.core;
                fi;
        else
-               echo "#include <stdio.h>" > try.c;
-               echo "int main() { extern void *$1$tdc; if(&$1$tc) return(0); else return(1); }" > try.c;
+               echo "void *(*(p()))$tdc { extern void *$1$tdc; return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c;
                $cc -o try $optimize $ccflags $ldflags try.c $libs >/dev/null 2>&1 && tval=true;
-               $rm -f try try.c;
+               $rm -f try$_exe try.c;
        fi;
        ;;
 *)
@@ -7575,7 +7627,7 @@ EOM
                              '') dflt="$dflt +vnocompatwarnings" ;;
                              esac
                              ;;        
-                       linux|irix*)    dflt='-shared' ;;
+                       linux|irix*|gnu*)       dflt='-shared' ;;
                        next)  dflt='none' ;;
                        solaris) dflt='-G' ;;
                        sunos) dflt='-assert nodefinitions' ;;
@@ -7622,11 +7674,9 @@ say "none".
 EOM
     case "$ccdlflags" in
     '') case "$osname" in
-               hpux)   dflt='-Wl,-E' ;;
-               linux)  dflt='-rdynamic' ;;
-               next)   dflt='none' ;;
-               sunos)  dflt='none' ;;
-               *)      dflt='none' ;;
+           linux|hpux|gnu*)    dflt='-Wl,-E' ;;
+           next|sunos) dflt='none' ;;
+           *)          dflt='none' ;;
            esac ;;
     ' ')  dflt='none' ;;
     *)  dflt="$ccdlflags" ;;
@@ -7721,7 +7771,7 @@ true)
                        dflt=libperl.5.$so
                        # XXX How handle the --version stuff for MAB?
                        ;;
-               linux*)  # ld won't link with a bare -lperl otherwise.
+               linux*|gnu*)  # ld won't link with a bare -lperl otherwise.
                        dflt=libperl.$so
                        ;;
                cygwin*) # ld links against an importlib
@@ -7805,10 +7855,10 @@ if "$useshrplib"; then
        solaris)
                xxx="-R $shrpdir"
                ;;
-       freebsd|netbsd|openbsd)
+       freebsd|netbsd|openbsd|interix)
                xxx="-Wl,-R$shrpdir"
                ;;
-       bsdos|linux|irix*|dec_osf)
+       bsdos|linux|irix*|dec_osf|gnu*)
                xxx="-Wl,-rpath,$shrpdir"
                ;;
        next)
@@ -8553,11 +8603,11 @@ else
 fi
 
 : determine where add-on html pages go
-: There is no standard location, so try to copy the previously-selected 
+: There is no standard location, so try to copy the previously-selected
 : directory structure for the core html pages.
 case "$sitehtml1dir" in
-'')    dflt=`echo "$html1dir" | $sed "s#^$prefix#$siteprefix#"` ;;
-*)     dflt=$sitehtml1dir ;;
+'')    dflt=`echo "$html1dir" | $sed "s#^$prefix#$siteprefix#"` ;;
+*)     dflt=$sitehtml1dir ;;
 esac
 case "$dflt" in
 ''|' ') dflt=none ;;
@@ -8566,22 +8616,20 @@ fn=dn+~
 rp='Pathname where the site-specific html pages should be installed?'
 . ./getfile
 sitehtml1dir="$ans"
-sitehtml1exp="$ansexp"
-: Use ' ' for none so value is preserved next time through Configure
-$test X"$sitehtml1dir" = "X" && sitehtml1dir=' '
+sitehtml1direxp="$ansexp"
 : Change installation prefix, if necessary.
 if $test X"$prefix" != X"$installprefix"; then
-       installsitehtml1dir=`echo "$sitehtml1exp" | $sed "s#^$prefix#$installprefix#"`
+       installsitehtml1dir=`echo $sitehtml1direxp | $sed "s#^$prefix#$installprefix#"`
 else
-       installsitehtml1dir="$sitehtml1exp"
+       installsitehtml1dir="$sitehtml1direxp"
 fi
 
 : determine where add-on library html pages go
 : There is no standard location, so try to copy the previously-selected
 : directory structure for the core html pages.
 case "$sitehtml3dir" in
-'')    dflt=`echo "$html3dir" | $sed "s#^$prefix#$siteprefix#"` ;;
-*)     dflt=$sitehtml3dir ;;
+'')    dflt=`echo "$html3dir" | $sed "s#^$prefix#$siteprefix#"` ;;
+*)     dflt=$sitehtml3dir ;;
 esac
 case "$dflt" in
 ''|' ') dflt=none ;;
@@ -8590,20 +8638,18 @@ fn=dn+~
 rp='Pathname where the site-specific library html pages should be installed?'
 . ./getfile
 sitehtml3dir="$ans"
-sitehtml3exp="$ansexp"
-: Use ' ' for none so value is preserved next time through Configure
-$test X"$sitehtml3dir" = "X" && sitehtml3dir=' '
+sitehtml3direxp="$ansexp"
 : Change installation prefix, if necessary.
 if $test X"$prefix" != X"$installprefix"; then
-       installsitehtml3dir=`echo "$sitehtml3exp" | $sed "s#^$prefix#$installprefix#"`
+       installsitehtml3dir=`echo $sitehtml3direxp | $sed "s#^$prefix#$installprefix#"`
 else
-       installsitehtml3dir="$sitehtml3exp"
+       installsitehtml3dir="$sitehtml3direxp"
 fi
 
 : determine where add-on manual pages go
 case "$siteman1dir" in
-'')    dflt=`echo "$man1dir" | $sed "s#^$prefix#$siteprefix#"` ;;
-*)     dflt=$siteman1dir ;;
+'')    dflt=`echo $man1dir | $sed "s#^$prefix#$siteprefix#"` ;;
+*)     dflt=$siteman1dir ;;
 esac
 case "$dflt" in
 ''|' ') dflt=none ;;
@@ -8612,20 +8658,18 @@ fn=dn+~
 rp='Pathname where the site-specific manual pages should be installed?'
 . ./getfile
 siteman1dir="$ans"
-siteman1exp="$ansexp"
-: Use ' ' for none so value is preserved next time through Configure
-$test X"$siteman1dir" = "X" && siteman1dir=' '
+siteman1direxp="$ansexp"
 : Change installation prefix, if necessary.
 if $test X"$prefix" != X"$installprefix"; then
-       installsiteman1dir=`echo "$siteman1exp" | $sed "s#^$prefix#$installprefix#"`
+       installsiteman1dir=`echo $siteman1direxp | $sed "s#^$prefix#$installprefix#"`
 else
-       installsiteman1dir="$siteman1exp"
+       installsiteman1dir="$siteman1direxp"
 fi
 
 : determine where add-on library man pages go
 case "$siteman3dir" in
-'')    dflt=`echo "$man3dir" | $sed "s#^$prefix#$siteprefix#"` ;;
-*)     dflt=$siteman3dir ;;
+'')    dflt=`echo $man3dir | $sed "s#^$prefix#$siteprefix#"` ;;
+*)     dflt=$siteman3dir ;;
 esac
 case "$dflt" in
 ''|' ') dflt=none ;;
@@ -8634,14 +8678,12 @@ fn=dn+~
 rp='Pathname where the site-specific library manual pages should be installed?'
 . ./getfile
 siteman3dir="$ans"
-siteman3exp="$ansexp"
-: Use ' ' for none so value is preserved next time through Configure
-$test X"$siteman3dir" = "X" && siteman3dir=' '
+siteman3direxp="$ansexp"
 : Change installation prefix, if necessary.
 if $test X"$prefix" != X"$installprefix"; then
-       installsiteman3dir=`echo "$siteman3exp" | $sed "s#^$prefix#$installprefix#"`
+       installsiteman3dir=`echo $siteman3direxp | $sed "s#^$prefix#$installprefix#"`
 else
-       installsiteman3dir="$siteman3exp"
+       installsiteman3dir="$siteman3direxp"
 fi
 
 : determine where add-on public executable scripts go
@@ -8859,14 +8901,16 @@ EOM
 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 regarding large file builds, using them..."
+       . ./uselargefiles.cbu
+fi
+case "$uselargefiles" in
+"$define")
        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
@@ -8932,6 +8976,11 @@ EOCP
        ;;
 esac
 
+# probably will refer to
+#   $archlib $privlib $sitearch $sitelib $vendorarch $vendorlib
+need_relocation=0
+userelocatableinc=undef
+
 case "$vendorprefix" in
 '')    d_vendorbin="$undef"
        vendorbin=''
@@ -8959,7 +9008,7 @@ fi
 
 case "$vendorprefix" in
 '')    vendorhtml1dir=''
-       vendorhtml1exp=''
+       vendorhtml1direxp=''
        ;;
 *)     : determine where vendor-supplied html pages go.
        : There is no standard location, so try to copy the previously-selected
@@ -8976,21 +9025,21 @@ case "$vendorprefix" in
        rp='Pathname for the vendor-supplied html pages?'
        . ./getfile
        vendorhtml1dir="$ans"
-       vendorhtml1exp="$ansexp"
+       vendorhtml1direxp="$ansexp"
        ;;
 esac
 : Use ' ' for none so value is preserved next time through Configure
 $test X"$vendorhtml1dir" = "X" && vendorhtml1dir=' '
 : Change installation prefix, if necessary.
 if $test X"$prefix" != X"$installprefix"; then
-       installvendorhtml1dir=`echo $vendorhtml1exp | $sed "s#^$prefix#$installprefix#"`
+       installvendorhtml1dir=`echo $vendorhtml1direxp | $sed "s#^$prefix#$installprefix#"`
 else
-       installvendorhtml1dir="$vendorhtml1exp"
+       installvendorhtml1dir="$vendorhtml1direxp"
 fi
 
 case "$vendorprefix" in
 '')    vendorhtml3dir=''
-       vendorhtml3exp=''
+       vendorhtml3direxp=''
        ;;
 *)     : determine where vendor-supplied module html pages go.
        : There is no standard location, so try to copy the previously-selected
@@ -9007,21 +9056,21 @@ case "$vendorprefix" in
        rp='Pathname for the vendor-supplied html pages?'
        . ./getfile
        vendorhtml3dir="$ans"
-       vendorhtml3exp="$ansexp"
+       vendorhtml3direxp="$ansexp"
        ;;
 esac
 : Use ' ' for none so value is preserved next time through Configure
 $test X"$vendorhtml3dir" = "X" && vendorhtml3dir=' '
 : Change installation prefix, if necessary.
 if $test X"$prefix" != X"$installprefix"; then
-       installvendorhtml3dir=`echo $vendorhtml3exp | $sed "s#^$prefix#$installprefix#"`
+       installvendorhtml3dir=`echo $vendorhtml3direxp | $sed "s#^$prefix#$installprefix#"`
 else
-       installvendorhtml3dir="$vendorhtml3exp"
+       installvendorhtml3dir="$vendorhtml3direxp"
 fi
 
 case "$vendorprefix" in
 '')    vendorman1dir=''
-       vendorman1exp=''
+       vendorman1direxp=''
        ;;
 *)     : determine where vendor-supplied manual pages go.
        case "$vendorman1dir" in
@@ -9035,21 +9084,21 @@ case "$vendorprefix" in
        rp='Pathname for the vendor-supplied manual section 1 pages?'
        . ./getfile
        vendorman1dir="$ans"
-       vendorman1exp="$ansexp"
+       vendorman1direxp="$ansexp"
        ;;
 esac
 : Use ' ' for none so value is preserved next time through Configure
 $test X"$vendorman1dir" = "X" && vendorman1dir=' '
 : Change installation prefix, if necessary.
 if $test X"$prefix" != X"$installprefix"; then
-       installvendorman1dir=`echo "$vendorman1exp" | $sed "s#^$prefix#$installprefix#"`
+       installvendorman1dir=`echo "$vendorman1direxp" | $sed "s#^$prefix#$installprefix#"`
 else
-       installvendorman1dir="$vendorman1exp"
+       installvendorman1dir="$vendorman1direxp"
 fi
 
 case "$vendorprefix" in
 '')    vendorman3dir=''
-       vendorman3exp=''
+       vendorman3direxp=''
        ;;
 *)     : determine where vendor-supplied module manual pages go.
        case "$vendorman3dir" in
@@ -9063,16 +9112,16 @@ case "$vendorprefix" in
        rp='Pathname for the vendor-supplied manual section 3 pages?'
        . ./getfile
        vendorman3dir="$ans"
-       vendorman3exp="$ansexp"
+       vendorman3direxp="$ansexp"
        ;;
 esac
 : Use ' ' for none so value is preserved next time through Configure
 $test X"$vendorman3dir" = "X" && vendorman3dir=' '
 : Change installation prefix, if necessary.
 if $test X"$prefix" != X"$installprefix"; then
-       installvendorman3dir=`echo "$vendorman3exp" | $sed "s#^$prefix#$installprefix#"`
+       installvendorman3dir=`echo "$vendorman3direxp" | $sed "s#^$prefix#$installprefix#"`
 else
-       installvendorman3dir="$vendorman3exp"
+       installvendorman3dir="$vendorman3direxp"
 fi
 
 case "$vendorprefix" in
@@ -9814,6 +9863,8 @@ set atoll d_atoll
 eval $inlibc
 
 : Look for GNU-cc style attribute checking
+case "$d_attribut" in
+'')
 echo " "
 echo "Checking whether your compiler can handle __attribute__ ..." >&4
 $cat >attrib.c <<'EOCP'
@@ -9832,6 +9883,9 @@ else
        echo "Your C compiler doesn't seem to understand __attribute__ at all."
        val="$undef"
 fi
+;;
+*) val="$d_attribut" ;;
+esac
 set d_attribut
 eval $setvar
 $rm -f attrib*
@@ -10061,7 +10115,7 @@ int main()
        i32  = ($xxx) g;
 
        /* x86 processors will probably give 0x8000 0000, which is a
-       sign change.  We don't want that.  We want to mimic SPARC
+          sign change.  We don't want that.  We want to mimic SPARC
           behavior here, which is to preserve the sign and give
           back 0x7fff ffff.
        */
@@ -15250,14 +15304,13 @@ else
     echo "You do not have union semun in <sys/sem.h>." >&4
     val="$undef"
 fi
-$rm -f try try.c try.h
+$rm -f try try.c
 set d_union_semun
 eval $setvar
 
 : see how to do semctl IPC_STAT
 case "$d_sem" in
 $define)
-    : see whether semctl IPC_STAT can use union semun
     echo " "
     $cat > try.h <<END
 #ifndef S_IRUSR
@@ -15283,8 +15336,11 @@ $define)
 #   define S_IRWXO (S_IROTH|S_IWOTH|S_IXOTH)
 #endif
 END
-
-    $cat > try.c <<END
+    : see whether semctl IPC_STAT can use union semun
+    val="$undef"
+    case "$d_semctl_semun" in
+    '')
+      $cat > try.c <<END
 #include <sys/types.h>
 #include <sys/ipc.h>
 #include <sys/sem.h>
@@ -15330,15 +15386,16 @@ int main() {
   return 0;
 }
 END
-    val="$undef"
-    set try
-    if eval $compile; then
-       xxx=`$run ./try`
-        case "$xxx" in
-        semun) val="$define" ;;
-        esac
-    fi
-    $rm -f try try.c
+      set try
+      if eval $compile; then
+         xxx=`$run ./try`
+          case "$xxx" in
+          semun) val="$define" ;;
+          esac
+      fi
+      $rm -f try try.c
+      ;;
+    esac
     set d_semctl_semun
     eval $setvar
     case "$d_semctl_semun" in
@@ -15352,7 +15409,10 @@ END
     esac
 
     : see whether semctl IPC_STAT can use struct semid_ds pointer
-    $cat > try.c <<'END'
+    val="$undef"
+    case "$d_semctl_semid_ds" in
+    '')
+      $cat > try.c <<'END'
 #include <sys/types.h>
 #include <sys/ipc.h>
 #include <sys/sem.h>
@@ -15388,15 +15448,16 @@ int main() {
     return 0;
 }
 END
-    val="$undef"
-    set try
-    if eval $compile; then
-        xxx=`$run ./try`
-        case "$xxx" in
-        semid_ds) val="$define" ;;
-        esac
-    fi
-    $rm -f try try.c
+      set try
+      if eval $compile; then
+          xxx=`$run ./try`
+          case "$xxx" in
+          semid_ds) val="$define" ;;
+          esac
+      fi
+      $rm -f try try.c
+      ;;
+    esac
     set d_semctl_semid_ds
     eval $setvar
     case "$d_semctl_semid_ds" in
@@ -16381,6 +16442,14 @@ esac
 set strftime d_strftime
 eval $inlibc
 
+: see if strlcat exists
+set strlcat d_strlcat
+eval $inlibc
+
+: see if strlcpy exists
+set strlcpy d_strlcpy
+eval $inlibc
+
 : see if strtod exists
 set strtod d_strtod
 eval $inlibc
@@ -16953,10 +17022,10 @@ int main() {
     buf[1] = 0;
     buf[2] = 0;
     buf[3] = 1;
+    buf[4] = 0;
     buf[5] = 0;
     buf[6] = 0;
-    buf[7] = 0;
-    buf[8] = 1;
+    buf[7] = 1;
 
     for (i = 0; i < 4; i++) {
        up = (U32*)(buf + i);
@@ -18641,12 +18710,6 @@ rp="What is the type of process ids on this system?"
 set pid_t pidtype int stdio.h sys/types.h
 eval $typedef_ask
 
-: Find earliest binary compatible site_perl subdirectory perl can use.
-xs_apiversion=$version # The current site_perl version.
-: Find earliest pure perl site_perl subdirectory perl can use.
-: The versioned directories started at 5.005.
-pm_apiversion='5.005'
-
 : see if ar generates random libraries by itself
 echo " "
 echo "Checking how to generate random libraries on your machine..." >&4
@@ -20837,6 +20900,8 @@ d_strerrm='$d_strerrm'
 d_strerror='$d_strerror'
 d_strerror_r='$d_strerror_r'
 d_strftime='$d_strftime'
+d_strlcat='$d_strlcat'
+d_strlcpy='$d_strlcpy'
 d_strtod='$d_strtod'
 d_strtol='$d_strtol'
 d_strtold='$d_strtold'
@@ -21207,7 +21272,6 @@ pg='$pg'
 phostname='$phostname'
 pidtype='$pidtype'
 plibpth='$plibpth'
-pm_apiversion='$pm_apiversion'
 pmake='$pmake'
 pr='$pr'
 prefix='$prefix'
@@ -21279,16 +21343,16 @@ sitearchexp='$sitearchexp'
 sitebin='$sitebin'
 sitebinexp='$sitebinexp'
 sitehtml1dir='$sitehtml1dir'
-sitehtml1exp='$sitehtml1exp'
+sitehtml1direxp='$sitehtml1direxp'
 sitehtml3dir='$sitehtml3dir'
-sitehtml3exp='$sitehtml3exp'
+sitehtml3direxp='$sitehtml3direxp'
 sitelib='$sitelib'
 sitelib_stem='$sitelib_stem'
 sitelibexp='$sitelibexp'
 siteman1dir='$siteman1dir'
-siteman1exp='$siteman1exp'
+siteman1direxp='$siteman1direxp'
 siteman3dir='$siteman3dir'
-siteman3exp='$siteman3exp'
+siteman3direxp='$siteman3direxp'
 siteprefix='$siteprefix'
 siteprefixexp='$siteprefixexp'
 sitescript='$sitescript'
@@ -21362,6 +21426,7 @@ usefaststdio='$usefaststdio'
 useithreads='$useithreads'
 uselargefiles='$uselargefiles'
 uselongdouble='$uselongdouble'
+usemallocwrap='$usemallocwrap'
 usemorebits='$usemorebits'
 usemultiplicity='$usemultiplicity'
 usemymalloc='$usemymalloc'
@@ -21370,6 +21435,7 @@ useopcode='$useopcode'
 useperlio='$useperlio'
 useposix='$useposix'
 usereentrant='$usereentrant'
+userelocatableinc='$userelocatableinc'
 usesfio='$usesfio'
 useshrplib='$useshrplib'
 usesocks='$usesocks'
@@ -21389,16 +21455,16 @@ vendorarchexp='$vendorarchexp'
 vendorbin='$vendorbin'
 vendorbinexp='$vendorbinexp'
 vendorhtml1dir='$vendorhtml1dir'
-vendorhtml1exp='$vendorhtml1exp'
+vendorhtml1direxp='$vendorhtml1direxp'
 vendorhtml3dir='$vendorhtml3dir'
-vendorhtml3exp='$vendorhtml3exp'
+vendorhtml3direxp='$vendorhtml3direxp'
 vendorlib='$vendorlib'
 vendorlib_stem='$vendorlib_stem'
 vendorlibexp='$vendorlibexp'
 vendorman1dir='$vendorman1dir'
-vendorman1exp='$vendorman1exp'
+vendorman1direxp='$vendorman1direxp'
 vendorman3dir='$vendorman3dir'
-vendorman3exp='$vendorman3exp'
+vendorman3direxp='$vendorman3direxp'
 vendorprefix='$vendorprefix'
 vendorprefixexp='$vendorprefixexp'
 vendorscript='$vendorscript'
@@ -21409,7 +21475,6 @@ versiononly='$versiononly'
 vi='$vi'
 voidflags='$voidflags'
 xlibpth='$xlibpth'
-xs_apiversion='$xs_apiversion'
 yacc='$yacc'
 yaccflags='$yaccflags'
 zcat='$zcat'