This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re: vsprintf
[perl5.git] / Configure
index fbfd228..9a3e436 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -26,7 +26,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Sat Feb 10 17:48:04 CET 2007 [metaconfig 3.0 PL70]
+# Generated on Wed Jun 13 22:14:49 CEST 2007 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.org)
 
 cat >c1$$ <<EOF
@@ -316,6 +316,7 @@ firstmakefile=''
 lib_ext=''
 obj_ext=''
 path_sep=''
+rm_try=''
 afs=''
 afsroot=''
 alignbytes=''
@@ -1565,6 +1566,7 @@ while test $# -gt 0; do
                fi
                cd UU
                shift;;
+       --help|\
        -h) shift; error=true;;
        -r) shift; reuseval=true;;
        -s) shift; silent=true; realsilent=true;;
@@ -1669,6 +1671,14 @@ Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
   -D : define symbol to have some value:
          -D symbol         symbol gets the value 'define'
          -D symbol=value   symbol gets the value 'value'
+       common used examples (see INSTALL for more info):
+         -Duse64bitint            use 64bit integers
+         -Duse64bitall            use 64bit integers and pointers
+         -Dusethreads             use thread support
+         -Dinc_version_list=none  do not include older perl trees in @INC
+         -DEBUGGING=none          DEBUGGING options
+         -Dcc=gcc                 choose your compiler
+         -Dprefix=/opt/perl5      choose your destination
   -E : stop at the end of questions, after having produced config.sh.
   -K : do not use unless you know what you are doing.
   -O : let -D and -U override definitions from loaded configuration file.
@@ -1676,6 +1686,7 @@ Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
   -U : undefine symbol:
          -U symbol    symbol gets the value 'undef'
          -U symbol=   symbol gets completely empty
+       e.g.:  -Uversiononly
   -A : manipulate symbol after the platform specific hints have been applied:
         -A symbol=value                append " "value to symbol
         -A append:symbol=value         append value to symbol
@@ -1686,6 +1697,7 @@ Usage: $me [-dehrsEKOSV] [-f config.sh] [-D symbol] [-D symbol=value]
         -A prepend:symbol=value        prepend value to symbol
         -A undef:symbol                define symbol to be 'undef'
         -A undef:symbol=               define symbol to be ''
+       e.g.:  -A prepend:libswanted='cl pthread '
   -V : print version number and exit (with a zero status).
 EOM
        exit 1
@@ -3002,7 +3014,7 @@ myuname=`$uname -a 2>/dev/null`
 $test -z "$myuname" && myuname=`hostname 2>/dev/null`
 # tr '[A-Z]' '[a-z]' would not work in EBCDIC
 # because the A-Z/a-z are not consecutive.
-myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \
+myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e "s,['/],,g" | \
        ./tr '[A-Z]' '[a-z]' | $tr $trnl ' '`
 newmyuname="$myuname"
 dflt=n
@@ -4205,29 +4217,20 @@ EOM
 else
 : perl-5.9.x and later
 
-    use5005threads="$undef"
-    case "$usethreads" in
-    $define)
-       : Default to ithreads unless overridden on command line or with
-       : old config.sh
-       dflt='y'
-       case "$useithreads" in
-               $undef|false|[nN]*) dflt='n';;
-       esac
-       rp='Use the newer interpreter-based ithreads?'
-       . ./myread
-       case "$ans" in
-       y|Y)    val="$define" ;;
-       *)      val="$undef" ;;
+    if test X"$usethreads" = "X$define"; then
+       case "$use5005threads" in
+           $define|true|[yY]*)
+               $cat >&4 <<EOM
+
+5.005 threads has been removed for 5.10.  Perl will be built using ithreads.
+
+EOM
+           ;;
        esac
-       set useithreads
-       eval $setvar
-       ;;
-    *)
-       useithreads="$undef"
-       ;;
-    esac
+    fi
 
+    use5005threads="$undef"
+    useithreads="$usethreads"
 fi
 
 if test X"$usethreads" = "X$define" -a "X$useperlio" = "Xundef"; then
@@ -4807,6 +4810,8 @@ lib_ext=$_a
 obj_ext=$_o
 path_sep=$p_
 
+rm_try="$rm -f try try$_exe a.out .out try.[cho] try.$_o core core.try* try.core*"
+
 : Which makefile gets called first.  This is used by make depend.
 case "$firstmakefile" in
 '') firstmakefile='makefile';;
@@ -5325,7 +5330,7 @@ y)
        ;;
 n) echo "OK, that should do.";;
 esac
-$rm -f try try.* core
+$rm_try
 
 : define a shorthand compile call
 compile='
@@ -5500,7 +5505,7 @@ EOM
        fi
        ;;
 esac
-$rm -f try try.*
+$rm_try
 
 : check for long long
 echo " "
@@ -5514,7 +5519,7 @@ else
        val="$undef"
        echo "You do not have long long."
 fi
-$rm try.*
+$rm_try
 set d_longlong
 eval $setvar
 
@@ -5545,10 +5550,10 @@ EOCP
        fi
        if $test "X$longsize" = "X$longlongsize"; then
                echo "(That isn't any different from an ordinary long.)"
-       fi      
+       fi
        ;;
 esac
-$rm -f try.* try
+$rm_try
 
 : see if inttypes.h is available
 : we want a real compile instead of Inhdr because some systems
@@ -5568,7 +5573,7 @@ else
        echo "<inttypes.h> NOT found." >&4
        val="$undef"
 fi
-$rm -f try.c try
+$rm_try
 set i_inttypes
 eval $setvar
 
@@ -5591,7 +5596,7 @@ else
        val="$undef"
        echo "You do not have int64_t."
 fi
-$rm -f try try.*
+$rm_try
 set d_int64_t
 eval $setvar
 
@@ -5872,7 +5877,7 @@ EOCP
        fi
        ;;
 esac
-$rm -f try.c try
+$rm_try
 
 : check for long doubles
 echo " "
@@ -5886,7 +5891,7 @@ else
        val="$undef"
        echo "You do not have long double."
 fi
-$rm try.*
+$rm_try
 set d_longdbl
 eval $setvar
 
@@ -5919,10 +5924,10 @@ EOCP
                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      
+       fi
        ;;
 esac
-$rm -f try.* try
+$rm_try
 
 : determine the architecture name
 echo " "
@@ -6516,7 +6521,7 @@ else
     echo "<malloc.h> NOT found." >&4
     val="$undef"
 fi
-$rm -f try.c try
+$rm_try
 set i_malloc
 eval $setvar
 
@@ -6614,7 +6619,7 @@ EOM
        voidflags="$ans"
        ;;
 esac
-$rm -f try.* .out
+$rm_try
 
 : check for length of pointer
 echo " "
@@ -6651,7 +6656,7 @@ EOCP
        fi
        ;;
 esac
-$rm -f try.c try
+$rm_try
 case "$use64bitall" in
 "$define"|true|[yY]*)
        case "$ptrsize" in
@@ -7183,7 +7188,7 @@ else
        gnulibc_version=''
        echo "You are not using the GNU C Library"
 fi
-$rm -f try try.* glibc.ver
+$rm_try glibc.ver
 set d_gnulibc
 eval $setvar
 
@@ -7568,6 +7573,32 @@ $rm -f libnames libpath
 set dld.h i_dld
 eval $inhdr
 
+
+echo " "
+echo "Checking for C++..." >&4
+$cat >try.c <<'EOCP'
+#include <stdio.h>
+int main(void)
+{
+#ifdef __cplusplus
+    return 0;
+#else
+    return 1;
+#endif
+}
+EOCP
+set try
+if eval $compile_ok && $run ./try; then
+       val="$define"
+       echo "You are using a C++ compiler."
+else
+       val="$undef"
+       echo "You are not using a C++ compiler."
+fi
+$rm_try cplusplus$$
+set d_cplusplus
+eval $setvar
+
 : is a C symbol defined?
 csym='tlook=$1;
 case "$3" in
@@ -7583,19 +7614,22 @@ esac;
 case "$tx" in
 yes)
        tval=false;
+       case "$d_cplusplus" in
+               $define) extern_C=\"C\";;
+       esac;
        if $test "$runnm" = true; then
                if $contains $tlook $tf >/dev/null 2>&1; then
                        tval=true;
                elif $test "$mistrustnm" = compile -o "$mistrustnm" = run; then
-                       echo "void *(*(p()))$tdc { extern void *$1$tdc; return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c;
+                       echo "extern $extern_C void *$1$tdc; void *(*(p()))$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$_exe >/dev/null 2>&1 || tval=false; };
-                       $rm -f try$_exe try.c core core.* try.core;
+                       $rm_try;
                fi;
        else
-               echo "void *(*(p()))$tdc { extern void *$1$tdc; return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c;
+               echo "extern $extern_C void *$1$tdc; void *(*(p()))$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$_exe try.c;
+               $rm_try;
        fi;
        ;;
 *)
@@ -7634,33 +7668,6 @@ yes)
        esac;;
 esac'
 
-
-echo " "
-echo "Checking for C++..." >&4
-cat >try.c <<'EOCP'
-#include <stdio.h>
-int main(void)
-{
-#ifdef __cplusplus
-    printf("define\n");
-#else
-    printf("undef\n");
-#endif
-    return 0;
-}
-EOCP
-set try
-if eval $compile_ok && $run ./try >cplusplus$$; then
-       val=`$cat cplusplus$$`
-       echo "You are using a C++ compiler."
-else
-       val="$undef"
-       echo "You are not using a C++ compiler."
-fi
-$rm -f try try.* cplusplus$$
-set d_cplusplus
-eval $setvar
-
 : see if dlopen exists
 xxx_runnm="$runnm"
 xxx_ccflags="$ccflags"
@@ -7694,7 +7701,7 @@ $undef|n|false)
        dflt='n'
        usedl="$undef"
        ;;
-*) 
+*)
        dflt='n'
        case "$d_dlopen" in
            $define) dflt='y' ;;
@@ -7757,7 +7764,7 @@ EOM
                        ;;
                *)  case "$osname" in
                        darwin) dflt='none' ;;
-                       svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;;
+                       linux*|svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;;
                        *)      dflt='-fpic' ;;
                    esac ;;
            esac ;;
@@ -7792,7 +7799,7 @@ EOM
 int main() {
        char b[4];
        int i = open("a.out",O_RDONLY);
-       if(i == -1) 
+       if(i == -1)
                exit(1); /* fail */
        if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F')
                exit(0); /* succeed (yes, it's ELF) */
@@ -7809,7 +7816,7 @@ EOM
                        echo "I'll use ld to build dynamic libraries."
                        dflt='ld'
                fi
-               rm -f try.c a.out
+               $rm_try
                ;;
        *)      dflt="$ld"
                ;;
@@ -7835,8 +7842,8 @@ EOM
                              case "$gccversion" in
                              '') dflt="$dflt +vnocompatwarnings" ;;
                              esac
-                             ;;        
-                       linux|irix*|gnu*)       dflt='-shared' ;;
+                             ;;
+                       linux|irix*|gnu*)  dflt="-shared $optimize" ;;
                        next)  dflt='none' ;;
                        solaris) dflt='-G' ;;
                        sunos) dflt='-assert nodefinitions' ;;
@@ -8964,7 +8971,7 @@ $cat >try.c <<EOCP
 int main()
 {
     printf("%d\n", (int)sizeof($lseektype));
-    return(0); 
+    return(0);
 }
 EOCP
 set try
@@ -8979,7 +8986,7 @@ else
        . ./myread
        lseeksize="$ans"
 fi
-$rm -f try.c try
+$rm_try
 
 : see what type file positions are declared as in the library
 rp="What is the type for file position used by fsetpos()?"
@@ -9033,7 +9040,7 @@ case "$uselfs" in
 EOM
        uselargefiles="$define"
        ;;
-esac                          
+esac
 
 case "$lseeksize:$fpossize" in
 8:8) cat <<EOM
@@ -9080,7 +9087,7 @@ case "$uselargefiles" in
 int main()
 {
     printf("%d\n", (int)sizeof($lseektype));
-    return(0); 
+    return(0);
 }
 EOCP
                set try
@@ -9099,7 +9106,7 @@ EOCP
                *_t) zzz="$fpostype"    ;;
                *)   zzz="fpos_t"       ;;
                esac
-               $echo $n "Rechecking the size of $zzz...$c" >&4 
+               $echo $n "Rechecking the size of $zzz...$c" >&4
                $cat > try.c <<EOCP
 #include <sys/types.h>
 #include <stdio.h>
@@ -9132,7 +9139,7 @@ EOCP
                        . ./myread
                        fpossize="$ans"
                fi
-               $rm -f try.c try
+               $rm_try
        fi
        ;;
 esac
@@ -9392,17 +9399,17 @@ else
        sSCNfldbl=$sPRIfldbl    # expect consistency
 fi
 
-$rm -f try try.*
+$rm_try
 
 fi # d_longdbl
 
 case "$sPRIfldbl" in
-'')    d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef"; 
-       d_PRIFUldbl="$undef"; d_PRIGUldbl="$undef"; d_PRIEUldbl="$undef"; 
+'')    d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef";
+       d_PRIFUldbl="$undef"; d_PRIGUldbl="$undef"; d_PRIEUldbl="$undef";
        d_SCNfldbl="$undef";
        ;;
-*)     d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define"; 
-       d_PRIFUldbl="$define"; d_PRIGUldbl="$define"; d_PRIEUldbl="$define"; 
+*)     d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define";
+       d_PRIFUldbl="$define"; d_PRIGUldbl="$define"; d_PRIEUldbl="$define";
        d_SCNfldbl="$define";
        ;;
 esac
@@ -9478,8 +9485,8 @@ char *got;
 }
 
 int main()
-{ 
-       char buf[64]; 
+{
+       char buf[64];
        buf[63] = '\0';
 
        /* This must be 1st test on (which?) platform */
@@ -9487,13 +9494,13 @@ int main()
        Gconvert((DOUBLETYPE)0.1, 8, 0, buf);
        checkit("0.1", buf);
 
-       Gconvert((DOUBLETYPE)0.01, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)0.01, 8, 0, buf);
        checkit("0.01", buf);
 
-       Gconvert((DOUBLETYPE)0.001, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)0.001, 8, 0, buf);
        checkit("0.001", buf);
 
-       Gconvert((DOUBLETYPE)0.0001, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)0.0001, 8, 0, buf);
        checkit("0.0001", buf);
 
        Gconvert((DOUBLETYPE)0.00009, 8, 0, buf);
@@ -9502,42 +9509,42 @@ int main()
        else
            checkit("9e-05", buf);
 
-       Gconvert((DOUBLETYPE)1.0, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)1.0, 8, 0, buf);
        checkit("1", buf);
 
-       Gconvert((DOUBLETYPE)1.1, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)1.1, 8, 0, buf);
        checkit("1.1", buf);
 
-       Gconvert((DOUBLETYPE)1.01, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)1.01, 8, 0, buf);
        checkit("1.01", buf);
 
-       Gconvert((DOUBLETYPE)1.001, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)1.001, 8, 0, buf);
        checkit("1.001", buf);
 
-       Gconvert((DOUBLETYPE)1.0001, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)1.0001, 8, 0, buf);
        checkit("1.0001", buf);
 
-       Gconvert((DOUBLETYPE)1.00001, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)1.00001, 8, 0, buf);
        checkit("1.00001", buf);
 
-       Gconvert((DOUBLETYPE)1.000001, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)1.000001, 8, 0, buf);
        checkit("1.000001", buf);
 
-       Gconvert((DOUBLETYPE)0.0, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)0.0, 8, 0, buf);
        checkit("0", buf);
 
-       Gconvert((DOUBLETYPE)-1.0, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)-1.0, 8, 0, buf);
        checkit("-1", buf);
 
        /* Some Linux gcvt's give 1.e+5 here. */
-       Gconvert((DOUBLETYPE)100000.0, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)100000.0, 8, 0, buf);
        checkit("100000", buf);
-       
+
        /* Some Linux gcvt's give -1.e+5 here. */
-       Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf);
        checkit("-100000", buf);
 
-       Gconvert((DOUBLETYPE)123.456, 8, 0, buf); 
+       Gconvert((DOUBLETYPE)123.456, 8, 0, buf);
        checkit("123.456", buf);
 
        /* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */
@@ -9562,14 +9569,14 @@ for xxx_convert in $gconvert_preference; do
     case $xxx_convert in
     gcvt|gconvert|sprintf) xxx_list="$xxx_list $xxx_convert" ;;
     *) echo "Discarding unrecognized gconvert_preference $xxx_convert" >&4 ;;
-    esac 
+    esac
 done
 : then add any others
 for xxx_convert in gconvert gcvt sprintf; do
     case "$xxx_list" in
     *$xxx_convert*) ;;
     *) xxx_list="$xxx_list $xxx_convert" ;;
-    esac 
+    esac
 done
 
 case "$d_longdbl$uselongdouble" in
@@ -9604,7 +9611,7 @@ esac
 
 for xxx_convert in $xxx_list; do
        echo "Trying $xxx_convert..."
-       $rm -f try try$_o
+       $rm -f try try$_o core
        set try -DTRY_$xxx_convert
        if eval $compile; then
                echo "$xxx_convert() found." >&4
@@ -9637,10 +9644,11 @@ qgcvt) d_Gconvert='qgcvt((x),(n),(b))' ;;
       d_Gconvert='sprintf((b),"%.*g",(n),(double)(x))' ;;
    *) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;;
    esac
-   ;;  
+   ;;
 esac
 
 fi
+$rm_try
 
 : see if _fwalk exists
 set fwalk d__fwalk
@@ -9722,7 +9730,7 @@ optimize="$optimize"
 ccflags="$ccflags"
 prototype="$prototype"
 define="$define"
-rm=$rm
+rm_try="$rm_try"
 usethreads=$usethreads
 i_pthread=$i_pthread
 pthread_h_first=$pthread_h_first
@@ -9730,7 +9738,7 @@ EOSH
 
 $cat >> protochk <<'EOSH'
 
-$rm -f try.c
+$rm_try
 foo="$1"
 shift
 while test $# -ge 2; do
@@ -9760,7 +9768,7 @@ echo "$foo" >> try.c
 echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c
 $cc $optimize $ccflags -c try.c > /dev/null 2>&1
 status=$?
-$rm -f try.[co]
+$rm_try
 exit $status
 EOSH
 chmod +x protochk
@@ -9783,7 +9791,7 @@ else
 fi;
 set $varname;
 eval $setvar;
-$rm -f try.c tryout.c'
+$rm_try tryout.c'
 
 : see if sys/types.h has to be included
 set sys/types.h i_systypes
@@ -9809,7 +9817,7 @@ else
 fi;
 set $varname;
 eval $setvar;
-$rm -f try.c try.o'
+$rm_try'
 
 : see if we should include time.h, sys/time.h, or both
 echo " "
@@ -9896,11 +9904,11 @@ EOCP
                echo "We'll include <sys/time.h>." >&4;;
        *) i_systime="$undef";;
        esac
-       $rm -f try.c try
+       $rm_try
 fi
 : see if struct tm knows about tm_zone
 case "$i_systime$i_time" in
-*$define*) 
+*$define*)
         echo " "
         echo "Checking to see if your struct tm has tm_zone field..." >&4
         set d_tm_tm_zone tm tm_zone $i_systime sys/time.h $i_time time.h
@@ -9917,7 +9925,7 @@ case "$d_tm_tm_zone" in
 esac
 : see if struct tm knows about tm_gmtoff
 case "$i_systime$i_time" in
-*$define*) 
+*$define*)
         echo " "
         echo "Checking to see if your struct tm has tm_gmtoff field..." >&4
         set d_tm_tm_gmtoff tm tm_gmtoff $i_systime sys/time.h $i_time time.h
@@ -10306,7 +10314,7 @@ EOP
 esac
 set d_bsdgetpgrp
 eval $setvar
-$rm -f try try.*
+$rm_try
 
 : see if setpgrp exists
 set setpgrp d_setpgrp
@@ -10372,7 +10380,8 @@ EOP
 esac
 set d_bsdsetpgrp
 eval $setvar
-$rm -f try try.*
+$rm_try
+
 : Look for GCC-style __builtin_choose_expr
 case "$d_builtin_choose_expr" in
 '')
@@ -10409,7 +10418,7 @@ esac
 
 set d_builtin_choose_expr
 eval $setvar
-$rm -f try.* try core core.try.*
+$rm_try
 
 : Look for GCC-style __builtin_expect
 case "$d_builtin_expect" in
@@ -10436,7 +10445,7 @@ esac
 
 set d_builtin_expect
 eval $setvar
-$rm -f try.* try core core.try.*
+$rm_try
 
 : see if bzero exists
 set bzero d_bzero
@@ -10574,7 +10583,7 @@ EOCP
        echo "I couldn't compile and run the test program, so I assume that you don't have functional C99 variadic macros." >&4
        d_c99_variadic_macros="$undef"
     fi
-    $rm -f try.* try core core.try.*
+    $rm_try
     ;;
     *)
     echo "You don't have <stdarg.h> and <stdlib.h>, so not checking for C99 variadic macros." >&4
@@ -10651,7 +10660,7 @@ int main()
        char str[16];
        signal(SIGFPE, blech);
 
-       /* Don't let compiler optimize the test away.  Store the number 
+       /* Don't let compiler optimize the test away.  Store the number
           in a writable string for gcc to pass to sscanf under HP/UX.
        */
        sprintf(str, "2147483647");
@@ -10687,7 +10696,7 @@ case "$yyy" in
 esac
 set d_casti32
 eval $setvar
-$rm -f try try.*
+$rm_try
 
 : check for ability to cast negative floats to unsigned
 echo " "
@@ -10713,12 +10722,12 @@ int main()
        unsigned short ashort;
        int result = 0;
        char str[16];
-       
+
        /* Frustrate gcc-2.7.2's optimizer which failed this test with
           a direct f = -123. assignment.  gcc-2.8.0 reportedly
           optimized the whole file away
        */
-       /* Store the number in a writable string for gcc to pass to 
+       /* Store the number in a writable string for gcc to pass to
           sscanf under HP/UX.
        */
        sprintf(str, "-123");
@@ -10787,7 +10796,7 @@ case "$castflags" in
 esac
 set d_castneg
 eval $setvar
-$rm -f try.*
+$rm_try
 
 : see if vprintf exists
 echo " "
@@ -10795,38 +10804,75 @@ if set vprintf val -f d_vprintf; eval $csym; $val; then
        echo 'vprintf() found.' >&4
        val="$define"
        $cat >try.c <<EOF
-#include <varargs.h>
+#$i_stdarg I_STDARG  /* Only one of these can be defined by i_varhrd */
+#$i_varargs I_VARARGS
+
 #$i_stdlib I_STDLIB
+#$i_unistd I_UNISTD
+
+#ifdef I_STDARG
+#  include <stdarg.h>
+#else /* I_VARARGS */
+#  include <varargs.h>
+#endif
+
+#ifdef I_UNISTD
+#  include <unistd.h>
+#endif
+
 #ifdef I_STDLIB
-#include <stdlib.h>
+#  include <stdlib.h>
 #endif
 
-int main() { xxx("foo"); }
+#include <stdio.h> /* vsprintf prototype */
+
+#ifdef I_STDARG
+void xxx(int n, ...)
+{
+    va_list args;
+    char buf[10];
+    va_start(args, n);
+    exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
+}
+int main() { xxx(1, "foo"); }
+
+#else /* I_VARARGS */
 
 xxx(va_alist)
 va_dcl
 {
-       va_list args;
-       char buf[10];
-
-       va_start(args);
-       exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
+    va_list args;
+    char buf[10];
+    va_start(args);
+    exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
 }
+int main() { xxx("foo"); }
+
+#endif
+
 EOF
        set try
-       if eval $compile && $run ./try; then
-               echo "Your vsprintf() returns (int)." >&4
-               val2="$undef"
+       if eval $compile_ok; then
+               if $run ./try; then
+                       echo "Your vsprintf() returns (int)." >&4
+                       val2="$undef"
+               else
+                       echo "Your vsprintf() returns (char*)." >&4
+                       val2="$define"
+               fi
        else
-               echo "Your vsprintf() returns (char*)." >&4
-               val2="$define"
+               echo 'I am unable to compile the vsprintf() test program.' >&4
+               # We shouldn't get here.  If we do, assume the standard signature,
+               # not the old BSD one.
+               echo 'Guessing that vsprintf() returns (int).' >&4
+               val2="$undef"
        fi
 else
        echo 'vprintf() NOT found.' >&4
-               val="$undef"
-               val2="$undef"
+       val="$undef"
+       val2="$undef"
 fi
-$rm -f try try.*
+$rm_try
 set d_vprintf
 eval $setvar
 val=$val2
@@ -10869,7 +10915,7 @@ else
 fi;
 set $varname;
 eval $setvar;
-$rm -f try.c try.o'
+$rm_try'
 
 socketlib=''
 sockethdr=''
@@ -10910,7 +10956,7 @@ else
                                                        sockethdr="-I/usr/netinclude"
                                                        ;;
                                                esac
-                                               echo "Found Berkeley sockets interface in lib$net." >&4 
+                                               echo "Found Berkeley sockets interface in lib$net." >&4
                                                if $contains setsockopt libc.list >/dev/null 2>&1; then
                                                        d_oldsock="$undef"
                                                else
@@ -10951,7 +10997,7 @@ EOF
                val="$define"
        fi
        set d_${enum}; eval $setvar
-       $rm -f try.c try
+       $rm_try
 done
 
 : see if this is a sys/uio.h system
@@ -11307,7 +11353,7 @@ case "$guess1" in
 'struct dirent') guess2='struct direct' ;;
 *) guess2='struct dirent' ;;
 esac
-               
+
 if $contains "$guess1" try.c >/dev/null 2>&1; then
        direntrytype="$guess1"
        echo "Your directory entries are $direntrytype." >&4
@@ -11321,8 +11367,7 @@ else
        . ./myread
        direntrytype="$ans"
 fi
-$rm -f try.c
-
+$rm_try
 
 : see if the directory entry stores field length
 echo " "
@@ -11336,7 +11381,7 @@ else
 fi
 set d_dirnamlen
 eval $setvar
-$rm -f try.c
+$rm_try
 
 : Look for DIR.dd_fd
 case "$i_dirent" in
@@ -11372,7 +11417,7 @@ EOCP
 esac
 set d_dir_dd_fd
 eval $setvar
-$rm -f try try.*
+$rm_try
 
 : see if this is an sysdir system
 set sys/dir.h i_sysdir
@@ -12074,7 +12119,7 @@ else
 fi
 set d_open3
 eval $setvar
-$rm -f try try.*
+$rm_try
 
 : see which of string.h or strings.h is needed
 echo " "
@@ -12151,6 +12196,14 @@ esac
 set i_fcntl
 eval $setvar
 
+: see if fork exists
+set fork d_fork
+eval $inlibc
+
+: see if pipe exists
+set pipe d_pipe
+eval $inlibc
+
 : check for non-blocking I/O stuff
 case "$h_sysfile" in
 true) echo "#include <sys/file.h>" > head.c;;
@@ -12205,18 +12258,20 @@ EOCP
        ;;
 *) echo "Using $hint value $o_nonblock.";;
 esac
-$rm -f try try.* .out core
+$rm_try
 
 echo " "
 echo "Let's see what value errno gets from read() on a $o_nonblock file..." >&4
 case "$eagain" in
 '')
+       case "$d_fork:$d_pipe" in
+       define:define)
        $cat head.c > try.c
        $cat >>try.c <<EOCP
 #include <errno.h>
 #include <sys/types.h>
 #include <signal.h>
-#include <stdio.h> 
+#include <stdio.h>
 #$i_stdlib I_STDLIB
 #ifdef I_STDLIB
 #include <stdlib.h>
@@ -12343,6 +12398,12 @@ EOCP
                echo "I can't compile the test program--assuming errno EAGAIN will do."
                eagain=EAGAIN
        fi
+       ;;
+       *)      echo "Can't figure out how to test this--assuming errno EAGAIN will do."
+               eagain=EAGAIN
+               val="$define"
+               ;;
+       esac
        set d_eofnblk
        eval $setvar
        ;;
@@ -12359,7 +12420,7 @@ EOCP
        esac
        ;;
 esac
-$rm -f try try.* .out core head.c mtry
+$rm_try head.c mtry
 
 : see if _ptr and _cnt from stdio act std
 echo " "
@@ -12458,7 +12519,7 @@ if eval $compile && $to try.c; then
 else
        echo "Your stdio doesn't appear very std."
 fi
-$rm -f try.c try
+$rm_try
 
 # glibc 2.2.90 and above apparently change stdio streams so Perl's
 # direct buffer manipulation no longer works.  The Configure tests
@@ -12558,7 +12619,7 @@ int main() {
        if (cnt == FILE_cnt(fp)) {
                puts("Pass_unchanged");
                exit (0);
-       }       
+       }
        if (FILE_cnt(fp) == (cnt - 42)) {
                puts("Pass_changed");
                exit (0);
@@ -12585,7 +12646,7 @@ EOP
        else
                echo "It seems we can't set ptr in your stdio.  Nevermind." >&4
        fi
-       $rm -f try.c try
+       $rm_try
        ;;
 esac
 
@@ -12623,7 +12684,7 @@ EOP
        else
                echo "However, it seems to be lacking the _base field."
        fi
-       $rm -f try.c try
+       $rm_try
        ;;
 esac
 set d_stdiobase
@@ -12726,8 +12787,7 @@ EOM
 esac
 set d_fcntl_can_lock
 eval $setvar
-$rm -f try*
-
+$rm_try
 
 : check for fd_set items
 $cat <<EOM
@@ -12805,7 +12865,7 @@ EOM
                d_fd_macros="$undef"
        fi
 fi
-$rm -f try try.*
+$rm_try
 
 : see if fgetpos exists
 set fgetpos d_fgetpos
@@ -12828,10 +12888,6 @@ echo " "
 set d_flockproto flock $i_sysfile sys/file.h
 eval $hasproto
 
-: see if fork exists
-set fork d_fork
-eval $inlibc
-
 : see if fp_class exists
 set fp_class d_fp_class
 eval $inlibc
@@ -12875,7 +12931,7 @@ else
        8) echo "(Your fpos_t is 64 bits, so you could use that.)" ;;
        esac
 fi
-$rm -f try.* try
+$rm_try
 set d_fpos64_t
 eval $setvar
 
@@ -12941,7 +12997,7 @@ esac
 d_futimes="$undef"
 : check for a working futimes
 echo " "
-echo "Checking for a working futimes()" >&4
+echo "Checking if you have a working futimes()" >&4
 $cat >try.c <<EOCP
 #include <stdio.h>
 #include <sys/time.h>
@@ -12962,16 +13018,16 @@ if eval $compile; then
     `$run ./try`
     rc=$?
     case "$rc" in
-       0)  echo "Yes, it does" >&4
+       0)  echo "Yes, you have" >&4
            d_futimes="$define"
            ;;
-       *)  echo "No, it has futimes, but it isn't working ($rc) (probably harmless)\n" >&4
+       *)  echo "No, you have futimes, but it isn't working ($rc) (probably harmless)" >&4
            ;;
     esac
 else
-    echo "No, it does not (probably harmless)\n" >&4
+    echo "No, it does not (probably harmless)" >&4
 fi
-$rm -f try.* try core core.try.*
+$rm_try
 
 : see if getcwd exists
 set getcwd d_getcwd
@@ -14597,9 +14653,9 @@ EOCP
            echo "Yes, it does ($foo)" >&4
            d_libm_lib_version="$define"
        else
-           echo "No, it does not (probably harmless)\n" >&4
+           echo "No, it does not (probably harmless)" >&4
            fi
-       $rm -f try.* try core core.try.*
+       $rm_try
        ;;
 
     esac
@@ -14691,7 +14747,7 @@ int main()
 EOCP
        set try
        if eval $compile; then
-           if ./try; then
+           if $run ./try; then
                d_localtime_r_needs_tzset=undef;
            else
                d_localtime_r_needs_tzset=define;
@@ -14704,7 +14760,7 @@ EOCP
      d_localtime_r_needs_tzset=undef;
      ;;
 esac
-$rm -f try try.* core
+$rm_try
 
 : see if localeconv exists
 set localeconv d_locconv
@@ -14843,12 +14899,12 @@ $define$define)
 Checking to see whether your modfl() is okay for large values...
 EOM
 $cat >try.c <<EOCP
-#include <math.h> 
+#include <math.h>
 #include <stdio.h>
 EOCP
 if $test "X$d_modflproto" != "X$define"; then
        $cat >>try.c <<EOCP
-/* Sigh. many current glibcs provide the function, but do not prototype it.  */ 
+/* Sigh. many current glibcs provide the function, but do not prototype it. */
 long double modfl (long double, long double *);
 EOCP
 fi
@@ -14856,7 +14912,7 @@ $cat >>try.c <<EOCP
 int main() {
     long double nv = 4294967303.15;
     long double v, w;
-    v = modfl(nv, &w);         
+    v = modfl(nv, &w);
 #ifdef __GLIBC__
     printf("glibc");
 #endif
@@ -14887,7 +14943,7 @@ EOCP
                        d_modfl="$undef"
                        ;;
                esac
-               $rm -f try.* try core core.try.*
+               $rm_try
        else
                echo "I cannot figure out whether your modfl() is okay, assuming it isn't."
                d_modfl="$undef"
@@ -15052,7 +15108,7 @@ esac
 rp="What is the size of a character (in bytes)?"
 . ./myread
 charsize="$ans"
-$rm -f try.c try
+$rm_try
 
 : check for volatile keyword
 echo " "
@@ -15083,7 +15139,7 @@ else
 fi
 set d_volatile
 eval $setvar
-$rm -f try.*
+$rm_try
 
 
 echo " "
@@ -15315,7 +15371,7 @@ if eval $compile; then
        nv_preserves_uv_bits="`$run ./try`"
 fi
 case "$nv_preserves_uv_bits" in
-\-[1-9]*)      
+\-[1-9]*)
        nv_preserves_uv_bits=`expr 0 - $nv_preserves_uv_bits`
        $echo "Your NVs can preserve all $nv_preserves_uv_bits bits of your UVs."  2>&1
        d_nv_preserves_uv="$define"
@@ -15325,8 +15381,7 @@ case "$nv_preserves_uv_bits" in
 *)     $echo "Can't figure out how many bits your NVs preserve." 2>&1
        nv_preserves_uv_bits="0" ;;
 esac
-
-$rm -f try.* try
+$rm_try
 
 $echo "Checking whether NV 0.0 is all bits zero in memory..." >&4
 : volatile so that the compiler has to store it out to memory.
@@ -15405,7 +15460,7 @@ int main(int argc, char **argv) {
        printf("(gives %g)\n", d);
        return 1;
     }
-    
+
 #ifdef SIGFPE
     if (bletched) {
        printf("No - something bleched\n");
@@ -15447,9 +15502,7 @@ EOM
            ;;
     esac
 fi
-
-$rm -f try.* try
-
+$rm_try
 
 : check for off64_t
 echo " "
@@ -15470,14 +15523,14 @@ else
        8) echo "(Your off_t is 64 bits, so you could use that.)" ;;
        esac
 fi
-$rm -f try.* try
+$rm_try
 set d_off64_t
 eval $setvar
 
 : 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 
+       echo "Checking what constant to use for creating joinable pthreads..." >&4
        $cat >try.c <<'EOCP'
 #include <pthread.h>
 int main() {
@@ -15503,7 +15556,7 @@ EOCP
                        val=PTHREAD_CREATE_UNDETACHED
                        set old_pthread_create_joinable
                        eval $setvar
-               else            
+               else
                        set try -DJOINABLE=__UNDETACHED
                        if eval $compile; then
                                echo "You seem to use __UNDETACHED." >&4
@@ -15524,7 +15577,7 @@ EOCP
                        fi
                fi
        fi
-       $rm -f try try.*
+       $rm_try
 else
     d_old_pthread_create_joinable="$undef"
     old_pthread_create_joinable=""
 set pause d_pause
 eval $inlibc
 
-: see if pipe exists
-set pipe d_pipe
-eval $inlibc
-
 : see if poll exists
 set poll d_poll
 eval $inlibc
@@ -15718,12 +15767,10 @@ $define)
 esac
 set d_pthread_yield
 eval $setvar
-
 case "$sched_yield" in
 '') sched_yield=undef ;;
 esac
-
-$rm -f try try.*
+$rm_try
 
 : see if random_r exists
 set random_r d_random_r
@@ -15973,7 +16020,7 @@ exit(0);
 EOCP
                set try
                if eval $compile_ok; then
-                       if ./try 2>/dev/null; then
+                       if $run ./try 2>/dev/null; then
                                echo "Yes, it can."
                                val="$define"
                        else
@@ -15984,7 +16031,7 @@ EOCP
                fi
                ;;
        esac
-       $rm -f try.* try core
+       $rm_try
        ;;
 esac
 set d_safebcpy
@@ -16049,7 +16096,7 @@ exit(0);
 EOCP
                set try
                if eval $compile_ok; then
-                       if ./try 2>/dev/null; then
+                       if $run ./try 2>/dev/null; then
                                echo "Yes, it can."
                                val="$define"
                        else
@@ -16060,7 +16107,7 @@ EOCP
                fi
                ;;
        esac
-       $rm -f try.* try core
+       $rm_try
        ;;
 esac
 set d_safemcpy
@@ -16116,7 +16163,7 @@ EOCP
        fi
        ;;
 esac
-$rm -f try.* try core
+$rm_try
 set d_sanemcmp
 eval $setvar
 
@@ -16191,7 +16238,7 @@ else
     echo "You do not have union semun in <sys/sem.h>." >&4
     val="$undef"
 fi
-$rm -f try try.c
+$rm_try
 set d_union_semun
 eval $setvar
 
@@ -16199,7 +16246,7 @@ eval $setvar
 case "$d_sem" in
 $define)
     echo " "
-    $cat > try.h <<END
+    $cat > tryh.h <<END
 #ifndef S_IRUSR
 #   ifdef S_IREAD
 #      define S_IRUSR S_IREAD
@@ -16234,7 +16281,7 @@ END
 #include <sys/stat.h>
 #include <stdio.h>
 #include <errno.h>
-#include "try.h"
+#include "tryh.h"
 #ifndef errno
 extern int errno;
 #endif
@@ -16280,7 +16327,7 @@ END
           semun) val="$define" ;;
           esac
       fi
-      $rm -f try try.c
+      $rm_try
       set d_semctl_semun
       eval $setvar
       ;;
@@ -16304,7 +16351,7 @@ END
 #include <sys/ipc.h>
 #include <sys/sem.h>
 #include <sys/stat.h>
-#include "try.h"
+#include "tryh.h"
 #include <stdio.h>
 #include <errno.h>
 #ifndef errno
@@ -16342,7 +16389,7 @@ END
           semid_ds) val="$define" ;;
           esac
       fi
-      $rm -f try try.c
+      $rm_try
       set d_semctl_semid_ds
       eval $setvar
       ;;
@@ -16354,7 +16401,6 @@ END
     *)  echo "You cannot use struct semid_ds* for semctl IPC_STAT." >&4
         ;;
     esac
-    $rm -f try.h
     ;;
 *)  val="$undef"
 
@@ -16368,6 +16414,7 @@ END
     eval $setvar
     ;;
 esac
+$rm_try tryh.h
 
 : see if sendmsg exists
 set sendmsg d_sendmsg
@@ -16963,7 +17010,7 @@ else
        val="$undef"
 fi
 set d_sigaction; eval $setvar
-$rm -f try try$_o try.c
+$rm_try
 
 : see if this is a sunmath.h system
 set sunmath.h i_sunmath
@@ -17008,7 +17055,7 @@ else
 fi
 set d_signbit
 eval $setvar
-$rm -f try.* try
+$rm_try
 
 : see if sigprocmask exists
 set sigprocmask d_sigprocmask
@@ -17061,7 +17108,7 @@ EOM
 esac
 set d_sigsetjmp
 eval $setvar
-$rm -f try.c try
+$rm_try
 
 : see if snprintf exists
 set snprintf d_snprintf
@@ -17124,7 +17171,7 @@ EOM
        d_snprintf="$undef"
        d_vsnprintf="$undef"
     fi
-    $rm -f try.* try core core.try.*
+    $rm_try
     ;;
 esac
 
@@ -17200,8 +17247,7 @@ EOM
         ;;
     esac
 fi
-
-$rm -f try.* try
+$rm_try
 
 : see if srand48_r exists
 set srand48_r d_srand48_r
@@ -17366,7 +17412,7 @@ EOCP
                        esac
                fi
        done
-       $rm -f try.* try$exe_ext
+       $rm_try
 esac
 case "$stdio_stream_array" in
 '')    $cat >&4 <<EOM
@@ -17407,7 +17453,7 @@ else
 fi
 set d_strctcpy
 eval $setvar
-$rm -f try.*
+$rm_try
 
 : see if strerror and/or sys_errlist[] exist
 echo " "
@@ -17657,6 +17703,9 @@ EOM
                   d_strtoul="$undef"
                   ;;
                esac
+       else
+               echo "(I can't seem to compile the test program--assuming it doesn't)"
+               d_strtoul="$undef"
        fi
        ;;
 esac
@@ -17711,6 +17760,9 @@ EOM
                   d_strtoull="$undef"
                   ;;
                esac
+       else
+               echo "(I can't seem to compile the test program--assuming it doesn't)"
+               d_strtoull="$undef"
        fi
        ;;
 esac
@@ -17763,6 +17815,9 @@ EOM
                   d_strtouq="$undef"
                   ;;
                esac
+       else
+               echo "(I can't seem to compile the test program--assuming it doesn't)"
+               d_strtouq="$undef"
        fi
        ;;
 esac
@@ -18009,7 +18064,7 @@ int main()
 EOCP
                xxx_prompt=y
                set try
-               if eval $compile && ./try > /dev/null; then
+               if eval $compile && $run ./try > /dev/null; then
                        dflt=`$run ./try`
                        case "$dflt" in
                        [1-4][1-4][1-4][1-4]|12345678|87654321)
@@ -18037,11 +18092,10 @@ EOM
                esac
                ;;
        esac
-       $rm -f try.c try
+       $rm_try
        ;;
 esac
 
-
 $cat <<EOM
 
 Checking to see whether you can access character data unalignedly...
@@ -18141,7 +18195,7 @@ else
        *)      d_u32align="$define" ;;
        esac
 fi
-$rm -f core core.try.* try.core
+$rm_try
 ;;
 esac
 
@@ -18208,7 +18262,7 @@ case "$d_closedir" in
 #endif
 #endif
 #endif
-#endif 
+#endif
 int main() { return closedir(opendir(".")); }
 EOM
        set try
@@ -18231,7 +18285,8 @@ EOM
 esac
 set d_void_closedir
 eval $setvar
-$rm -f try try.*
+$rm_try
+
 : see if there is a wait4
 set wait4 d_wait4
 eval $inlibc
@@ -18310,7 +18365,7 @@ EOCP
        rp="Doubles must be aligned on a how-many-byte boundary?"
        . ./myread
        alignbytes="$ans"
-       $rm -f try.c try
+       $rm_try
        ;;
 esac
 
@@ -18389,7 +18444,7 @@ int main(int argc, char *argv[])
     /* check that db.h & libdb are compatible */
     if (DB_VERSION_MAJOR != Major || DB_VERSION_MINOR != Minor || DB_VERSION_PATCH != Patch) {
        printf("db.h and libdb are incompatible.\n") ;
-        exit(3);       
+        exit(3);
     }
 
     printf("db.h and libdb are compatible.\n") ;
@@ -18401,7 +18456,7 @@ int main(int argc, char *argv[])
     if (Version < 2003004) {
     /* if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH < 5) { */
        printf("Perl needs Berkeley DB 2.3.4 or greater.\n") ;
-        exit(2);       
+        exit(2);
     }
 
     exit(0);
@@ -18440,13 +18495,13 @@ EOCP
                        ;;
                esac
        fi
-       $rm -f try.*
+       $rm_try
        ;;
 esac
 
 case "$i_db" in
 define)
-       : Check the return type needed for hash 
+       : Check the return type needed for hash
        echo " "
        echo "Checking return type needed for hash for Berkeley DB ..." >&4
        $cat >try.c <<EOCP
@@ -18483,7 +18538,7 @@ EOCP
                echo "Help:  I can't seem to compile the db test program." >&4
                echo "Something's wrong, but I'll assume you use $db_hashtype." >&4
        fi
-       $rm -f try.*
+       $rm_try
        echo "Your version of Berkeley DB uses $db_hashtype for hash."
        ;;
 *)     db_hashtype=u_int32_t
@@ -18491,7 +18546,7 @@ EOCP
 esac
 case "$i_db" in
 define)
-       : Check the return type needed for prefix 
+       : Check the return type needed for prefix
        echo " "
        echo "Checking return type needed for prefix for Berkeley DB ..." >&4
        cat >try.c <<EOCP
@@ -18528,14 +18583,13 @@ EOCP
                echo "Help:  I can't seem to compile the db test program." >&4
                echo "Something's wrong, but I'll assume you use $db_prefixtype." >&4
        fi
-       $rm -f try.*
+       $rm_try
        echo "Your version of Berkeley DB uses $db_prefixtype for prefix."
        ;;
 *)     db_prefixtype='size_t'
        ;;
 esac
 
-
 : How can we generate normalized random numbers ?
 echo " "
 echo "Looking for a random number function..." >&4
@@ -18641,7 +18695,7 @@ EOCP
                        rp="How many bits does your $randfunc() function produce?"
                        . ./myread
                        randbits="$ans"
-                       $rm -f try.c try
+                       $rm_try
                        drand01="($randfunc() / (double) ((unsigned long)1 << $randbits))"
                        seedfunc="s$randfunc"
                        randseedtype=unsigned
@@ -18689,7 +18743,7 @@ else
        echo "I'm unable to compile the test program." >&4
        echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4
 fi
-$rm -f try try.*
+$rm_try
 set ebcdic
 eval $setvar
 
@@ -18752,7 +18806,7 @@ int main() {
 #    endif
 #   endif
 #  endif
-# endif 
+# endif
 # ifdef HAS_STDIO_STREAM_ARRAY
     if (open_max > 0) {
       long i;
@@ -18761,7 +18815,7 @@ int main() {
                STDIO_STREAM_ARRAY[i]._file < open_max &&
                STDIO_STREAM_ARRAY[i]._flag)
                fflush(&STDIO_STREAM_ARRAY[i]);
-    }  
+    }
   }
 # endif
 #endif
@@ -18812,7 +18866,7 @@ EOM
                        fi
                fi
        fi
-       $rm -f core try.core core.try.*
+       $rm_try
        case "$fflushNULL" in
        x)      $cat >&4 <<EOM
 Your fflush(NULL) works okay for output streams.
@@ -18930,7 +18984,7 @@ EOM
                                        fflushall="`$cat try.out`"
                                fi
                        fi
-                       $rm -f core try.core core.try.*
+                       $rm_try
                        case "$fflushall" in
                        x)      $cat >&4 <<EOM
 Whew. Flushing explicitly all the stdio streams works.
@@ -18980,7 +19034,7 @@ We won't be flushing handles at all before fork/exec/popen.
 EOM
        ;;
 esac
-$rm -f try.* try$exe_ext
+$rm_try
 
 : Store the full pathname to the ar program for use in the C program
 : Respect a hint or command line value for full_ar.
 if $test X"$sPRId64" = X; then
        echo "Cannot figure out how to print 64-bit integers." >&4
 fi
-
-$rm -f try try.*
+$rm_try
 
 fi
 
 case "$sPRId64" in
-'')    d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef"; 
-       d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIXU64="$undef"; 
+'')    d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef";
+       d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIXU64="$undef";
        ;;
-*)     d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define"; 
-       d_PRIo64="$define"; d_PRIx64="$define"; d_PRIXU64="$define"; 
+*)     d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define";
+       d_PRIo64="$define"; d_PRIx64="$define"; d_PRIXU64="$define";
        ;;
 esac
 
@@ -19446,28 +19499,28 @@ ivfprintf(FILE *f, const char *fmt, va_list *valp)
 {
   return vfprintf(f, fmt, *valp);
 }
-int    
+
+int
 myvfprintf(FILE *f, const  char *fmt, va_list val)
 {
   return ivfprintf(f, fmt, &val);
 }
-      
+
 int
-myprintf(char *fmt, ...) 
+myprintf(char *fmt, ...)
 {
   va_list val;
   va_start(val, fmt);
-  return myvfprintf(stdout, fmt, val); 
-}         
+  return myvfprintf(stdout, fmt, val);
+}
 
 int
 main(int ac, char **av)
 {
   signal(SIGSEGV, exit);
 
-  myprintf("%s%cs all right, then\n", "that", '\'');                            
-  exit(0);      
+  myprintf("%s%cs all right, then\n", "that", '\'');
+  exit(0);
 }
 EOCP
        set try
@@ -19486,7 +19539,7 @@ EOCP
                need_va_copy="$define"
                ;;
        esac
-       $rm -f try.* core core.* *.core *.core.*
+       $rm_try
        ;;
 *)     echo "You don't have <stdarg.h>, not checking for va_copy()." >&4
        ;;
@@ -19865,7 +19918,7 @@ EOM
                        val=$ans
                        selectminbits="$val"
                fi
-               $rm -f try.* try
+               $rm_try
                ;;
        *)      : no select, so pick a harmless default
                selectminbits=$safebits
@@ -20203,7 +20256,7 @@ else
        size_t) echo "(You do have size_t, that might work. Some people are happy with just an int.)" ;;
        esac
 fi
-$rm -f try try.*
+$rm_try
 set d_socklen_t
 eval $setvar
 
@@ -20275,7 +20328,7 @@ int main()
                printf("$dflt\n");
        else if (sizeof(Size_t) == sizeof(int))
                printf("int\n");
-       else 
+       else
                printf("long\n");
        exit(0);
 }
@@ -20299,7 +20352,7 @@ EOM
        . ./myread
        ssizetype="$ans"
 fi
-$rm -f try try.*
+$rm_try
 
 : see what type of char stdio uses.
 echo " "
@@ -20599,7 +20652,7 @@ EOM
                echo "We won't be including <net/errno.h>." >&4
                val="$undef"
        fi
-       $rm -f try.* try
+       $rm_try
        ;;
 esac
 set i_neterrno
@@ -20781,7 +20834,7 @@ do
        -A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A//' | $sed 's/\(.*\)(\(.*\))/\1=\2/';;
        esac
 done
-$rm -f try.c
+$rm_try
 EOS
 postprocess_cc_v=''
 chmod +x ccsym
@@ -21018,7 +21071,7 @@ find_extensions='
        case "$xxx" in
            DynaLoader|dynaload) ;;
            *)
-           if $test -f $xxx/$xxx.xs; then
+           if $test -f $xxx/$xxx.xs -o -f $xxx/$xxx.c; then
                known_extensions="$known_extensions $1$xxx";
            elif $test -f $xxx/Makefile.PL; then
                nonxs_extensions="$nonxs_extensions $1$xxx";
@@ -21046,8 +21099,6 @@ known_extensions="$known_extensions threads/shared"
 set X $known_extensions
 shift
 known_extensions="$*"
-#  Ditto for IO/Compress/Base and IO/Compress/Zlib
-nonxs_extensions="$nonxs_extensions IO/Compress/Base IO/Compress/Zlib"
 set X $nonxs_extensions
 shift
 nonxs_extensions="$*"
@@ -21072,6 +21123,12 @@ for xxx in $known_extensions ; do
                $define$define) avail_ext="$avail_ext $xxx" ;;
                esac
                ;;
+       IPC/SysV|ipc/sysv)
+               : XXX Do we need a useipcsysv variable here
+               case "${d_msg}${d_sem}${d_shm}" in
+               *"${define}"*) avail_ext="$avail_ext $xxx" ;;
+               esac
+               ;;
        NDBM_File|ndbm_fil)
                case "$i_ndbm" in
                $define)
@@ -21089,24 +21146,28 @@ for xxx in $known_extensions ; do
        ODBM_File|odbm_fil)
                case "${i_dbm}${i_rpcsvcdbm}" in
                *"${define}"*)
-                   case "$osname-$use64bitint" in
-                   hpux-define)
-                       case "$libs" in
-                       *-ldbm*) avail_ext="$avail_ext $xxx" ;;
+                   case "$d_cplusplus" in
+                   define) ;; # delete as a function name will not work
+                   *)  case "$osname-$use64bitint" in
+                       hpux-define)
+                           case "$libs" in
+                           *-ldbm*) avail_ext="$avail_ext $xxx" ;;
+                           esac
+                           ;;
+                       *) avail_ext="$avail_ext $xxx" ;;
                        esac
                        ;;
-                   *) avail_ext="$avail_ext $xxx" ;;
                    esac
                    ;;
                esac
                ;;
-       POSIX|posix)
-               case "$useposix" in
+       Opcode|opcode)
+               case "$useopcode" in
                true|define|y) avail_ext="$avail_ext $xxx" ;;
                esac
                ;;
-       Opcode|opcode)
-               case "$useopcode" in
+       POSIX|posix)
+               case "$useposix" in
                true|define|y) avail_ext="$avail_ext $xxx" ;;
                esac
                ;;
@@ -21129,12 +21190,26 @@ for xxx in $known_extensions ; do
        Thread|thread)
                 case "$usethreads" in
                 true|$define|y)
-                        case "$useithreads" in
-                        $undef|false|[nN]*) avail_ext="$avail_ext $xxx" ;;
+                        case "$use5005threads" in
+                        $define|true|[yY]*) avail_ext="$avail_ext $xxx" ;;
                         esac
                esac
                ;;
-       Win32)
+       threads|threads/shared)
+               # threads and threads::shared are special cases.
+               # To stop people from asking "Perl 5.8.0 was supposed
+               # to have this new fancy threads implementation but my
+               # perl doesn't have it" and from people trying to
+               # (re)install the threads module using CPAN.pm and
+               # CPAN.pm then offering to reinstall Perl 5.8.0,
+               # the threads.pm and threads/shared.pm will always be
+               # there, croaking informatively ("you need to rebuild
+               # all of Perl with threads, sorry") when threads haven't
+               # been compiled in.
+               # --jhi
+               avail_ext="$avail_ext $xxx"
+               ;;
+       Win32*)
                case "$osname" in
                cygwin) avail_ext="$avail_ext $xxx" ;;
                esac
@@ -21152,26 +21227,6 @@ for xxx in $known_extensions ; do
                $define) avail_ext="$avail_ext $xxx" ;;
                esac
                ;;
-       threads|threads/shared)
-               # threads and threads::shared are special cases.
-               # To stop people from asking "Perl 5.8.0 was supposed
-               # to have this new fancy threads implementation but my
-               # perl doesn't have it" and from people trying to
-               # (re)install the threads module using CPAN.pm and
-               # CPAN.pm then offering to reinstall Perl 5.8.0,
-               # the threads.pm and threads/shared.pm will always be
-               # there, croaking informatively ("you need to rebuild
-               # all of Perl with threads, sorry") when threads haven't
-               # been compiled in.
-               # --jhi
-               avail_ext="$avail_ext $xxx"
-               ;;
-       IPC/SysV|ipc/sysv)
-               : XXX Do we need a useipcsysv variable here
-               case "${d_msg}${d_sem}${d_shm}" in
-               *"${define}"*) avail_ext="$avail_ext $xxx" ;;
-               esac
-               ;;
        *)      avail_ext="$avail_ext $xxx"
                ;;
        esac
@@ -22323,6 +22378,7 @@ readdir64_r_proto='$readdir64_r_proto'
 readdir_r_proto='$readdir_r_proto'
 revision='$revision'
 rm='$rm'
+rm_try='$rm_try'
 rmail='$rmail'
 run='$run'
 runnm='$runnm'