Update Changes.
[p5sagit/p5-mst-13.2.git] / Configure
index 7ba331a..bc8ad9d 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 Fri Jun  8 18:06:31 EET DST 2001 [metaconfig 3.0 PL70]
+# Generated on Wed Jun 20 22:37:47 EET DST 2001 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.org)
 
 cat >c1$$ <<EOF
@@ -165,6 +165,11 @@ ccversion=''
 ccsymbols=''
 cppccsymbols=''
 cppsymbols=''
+from=''
+run=''
+targetarch=''
+to=''
+usecrosscompile=''
 perllibs=''
 dynamic_ext=''
 extensions=''
@@ -308,7 +313,6 @@ cpplast=''
 cppminus=''
 cpprun=''
 cppstdin=''
-crosscompile=''
 d__fwalk=''
 d_access=''
 d_accessx=''
@@ -481,7 +485,6 @@ d_seekdir=''
 d_telldir=''
 d_readlink=''
 d_readv=''
-d_realpath=''
 d_recvmsg=''
 d_rename=''
 d_rmdir=''
@@ -963,6 +966,7 @@ usesocks=''
 d_oldpthreads=''
 use5005threads=''
 useithreads=''
+usereentrant=''
 usethreads=''
 incpath=''
 mips_type=''
@@ -1028,6 +1032,7 @@ locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
 inclwanted=''
 
 groupstype=''
+libnames=''
 : change the next line if compiling for Xenix/286 on Xenix/386
 xlibpth='/usr/lib/386 /lib/386'
 : Possible local library directories to search.
@@ -1056,6 +1061,7 @@ libswanted_uselargefiles=''
 : set usemultiplicity on the Configure command line to enable multiplicity.
 : set usesocks on the Configure command line to enable socks.
 : set usethreads on the Configure command line to enable threads.
+usereentrant='undef'
 : full support for void wanted by default
 defvoidused=15
 
@@ -1120,17 +1126,17 @@ if `$sh -c '#' >/dev/null 2>&1`; then
        spitshell=cat
        xcat=/bin/cat
        test -f $xcat || xcat=/usr/bin/cat
-       echo "#!$xcat" >try
-       $eunicefix try
-       chmod +x try
-       ./try > today
+       echo "#!$xcat" >sharp
+       $eunicefix sharp
+       chmod +x sharp
+       ./sharp > today
        if test -s today; then
                sharpbang='#!'
        else
-               echo "#! $xcat" > try
-               $eunicefix try
-               chmod +x try
-               ./try > today
+               echo "#! $xcat" > sharp
+               $eunicefix sharp
+               chmod +x sharp
+               ./sharp > today
                if test -s today; then
                        sharpbang='#! '
                else
@@ -1150,28 +1156,28 @@ else
        echo "I presume that if # doesn't work, #! won't work either!"
        sharpbang=': use '
 fi
-rm -f try today
+rm -f sharp today
 
 : figure out how to guarantee sh startup
 case "$startsh" in
 '') startsh=${sharpbang}${sh} ;;
 *)
 esac
-cat >try <<EOSS
+cat >sharp <<EOSS
 $startsh
 set abc
 test "$?abc" != 1
 EOSS
 
-chmod +x try
-$eunicefix try
-if ./try; then
+chmod +x sharp
+$eunicefix sharp
+if ./sharp; then
        : echo "Yup, it does."
 else
        echo "Hmm... '$startsh' does not guarantee sh startup..."
        echo "You may have to fix up the shell scripts to make sure $sh runs them."
 fi
-rm -f try
+rm -f sharp
 
 
 : Save command line options in file UU/cmdline.opt for later use in
@@ -2303,6 +2309,198 @@ $define|true|[yY]*)
        ;;
 esac
 
+
+case "$usecrosscompile" in
+$define|true|[yY]*)
+       $echo "Cross-compiling..."
+        croak=''
+       case "$cc" in
+       *-*-gcc) # A cross-compiling gcc, probably.
+           targetarch=`$echo $cc|$sed 's/-gcc$//'`
+           ar=$targetarch-ar
+           # leave out ld, choosing it is more complex
+           nm=$targetarch-nm
+           ranlib=$targetarch-ranlib
+           $echo 'extern int foo;' > try.c
+           set X `$cc -v -E perl.c 2>&1 | $awk '/^#include </,/^End of search /'|$grep '/include'`
+           shift
+            if $test $# -gt 0; then
+               incpth="$incpth $*"
+               incpth="$echo $incpth|$sed 's/^ //'"
+                echo "Guessing incpth $incpth" >&4
+                for i in $*; do
+                   j=`$echo $i|$sed 's,/include$,/lib,'`
+                   if $test -d $j; then
+                       libpth="$libpth $j"
+                   fi
+                done   
+               libpth="$echo $libpth|$sed 's/^ //'"
+                echo "Guessing libpth $libpth." >&4
+           fi
+           $rm -f try.c
+           ;;
+       esac
+       case "$targetarch" in
+       '') echo "Targetarch not defined." >&4; croak=y ;;
+        *)  echo "Using targetarch $targetarch." >&4 ;;
+       esac
+       case "$incpth" in
+       '') echo "Incpth not defined." >&4; croak=y ;;
+        *)  echo "Using incpth $incpth." >&4 ;;
+       esac
+       case "$libpth" in
+       '') echo "Libpth not defined." >&4; croak=y ;;
+        *)  echo "Using libpth $libpth." >&4 ;;
+       esac
+       case "$usrinc" in
+       '') for i in $incpth; do
+               if $test -f $i/errno.h -a -f $i/stdio.h -a -f $i/time.h; then
+                   usrinc=$i
+                   echo "Guessing usrinc $usrinc." >&4
+                   break
+               fi
+           done
+           case "$usrinc" in
+           '') echo "Usrinc not defined." >&4; croak=y ;;
+           esac
+            ;;
+        *)  echo "Using usrinc $usrinc." >&4 ;;
+       esac
+       case "$targethost" in
+       '') echo "Targethost not defined." >&4; croak=y ;;
+        *)  echo "Using targethost $targethost." >&4
+       esac
+       locincpth=' '
+       loclibpth=' '
+       case "$croak" in
+       y) echo "Cannot continue, aborting." >&4; exit 1 ;;
+       esac
+       case "$src" in
+       /*) run=$src/Cross/run
+           to=$src/Cross/to
+           from=$src/Cross/from
+           ;;
+       *)  pwd=`$test -f ../Configure & cd ..; pwd`
+           run=$pwd/Cross/run
+           to=$pwd/Cross/to
+           from=$pwd/Cross/from
+           ;;
+       esac
+       case "$targetrun" in
+       '') targetrun=ssh ;;
+       esac
+       case "$targetto" in
+       '') targetto=scp ;;
+       esac
+       case "$targetfrom" in
+       '') targetfrom=scp ;;
+       esac
+       run=$run-$targetrun
+       to=$to-$targetto
+       from=$from-$targetfrom
+       case "$targetdir" in
+       '')  targetdir=/tmp
+             echo "Guessing targetdir $targetdir." >&4
+             ;;
+       esac
+       case "$targetuser" in
+       '')  targetuser=root
+             echo "Guessing targetuser $targetuser." >&4
+             ;;
+       esac
+       case "$targetfrom" in
+       scp)    q=-q ;;
+       *)      q='' ;;
+       esac
+       case "$targetrun" in
+       ssh|rsh)
+           cat >$run <<EOF
+#!/bin/sh
+exe=\$1
+shift
+$to \$exe
+$targetrun -l $targetuser $targethost "cd $targetdir && ./\$exe \$@"
+EOF
+           ;;
+       *)  echo "Unknown targetrun '$targetrun'" >&4
+           exit 1
+           ;;
+       esac
+       case "$targetto" in
+       scp|rcp)
+           cat >$to <<EOF
+#!/bin/sh
+for f in \$@
+do
+  $targetto $q \$f $targetuser@$targethost:$targetdir/. || exit 1
+done
+exit 0
+EOF
+           ;;
+       cp) cat >$to <<EOF
+#!/bin/sh
+cp \$@ $targetdir/.
+EOF
+           ;;
+       *)  echo "Unknown targetto '$targetto'" >&4
+           exit 1
+           ;;
+       esac
+       case "$targetfrom" in
+       scp|rcp)
+         cat >$from <<EOF
+#!/bin/sh
+for f in \$@
+do
+  $targetfrom $q $targetuser@$targethost:$targetdir/\$f . || exit 1
+done
+exit 0
+EOF
+           ;;
+       cp) cat >$from <<EOF
+#!/bin/sh
+for f in \$@
+do
+  cp $targetdir/\$f . || exit 1
+done
+exit 0
+EOF
+           ;;
+       *)  echo "Unknown targetfrom '$targetfrom'" >&4
+           exit 1
+           ;;
+       esac
+       if $test ! -f $run; then
+           echo "Target 'run' script '$run' not found." >&4
+       else
+           chmod a+rx $run
+       fi
+       if $test ! -f $to; then
+           echo "Target 'to' script '$to' not found." >&4
+       else
+           chmod a+rx $to
+       fi
+       if $test ! -f $from; then
+           echo "Target 'from' script '$from' not found." >&4
+       else
+           chmod a+rx $from
+       fi
+       if $test ! -f $run -o ! -f $to -o ! -f $from; then
+           exit 1
+       fi
+       cat >&4 <<EOF
+Using '$run' for remote execution, and '$from' and '$to'
+for remote file transfer.
+EOF
+       ;;
+*)     run=''
+       to=:
+       from=:
+       usecrosscompile='undef'
+       targetarch=''
+       ;;
+esac
+
 : see whether [:lower:] and [:upper:] are supported character classes
 echo " "
 case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
@@ -2697,6 +2895,14 @@ EOM
                fi
        fi
        
+        case "$targetarch" in
+        '') ;;
+        *)  hostarch=$osname
+            osname=`echo $targetarch|sed 's,^[^-]*-,,'`
+            osvers=''
+            ;;
+        esac
+
        : Now look for a hint file osname_osvers, unless one has been
        : specified already.
        case "$hintfile" in
@@ -2771,7 +2977,7 @@ EOM
                elif $test -f $src/hints/$file.sh; then
                        . $src/hints/$file.sh
                        $cat $src/hints/$file.sh >> UU/config.sh
-               elif $test X$tans = X -o X$tans = Xnone ; then
+               elif $test X"$tans" = X -o X"$tans" = Xnone ; then
                        : nothing
                else
                        : Give one chance to correct a possible typo.
@@ -3160,7 +3366,7 @@ fi
 
 echo " "
 echo "Checking for GNU cc in disguise and/or its version number..." >&4
-$cat >gccvers.c <<EOM
+$cat >try.c <<EOM
 #include <stdio.h>
 int main() {
 #ifdef __GNUC__
@@ -3173,8 +3379,8 @@ int main() {
        exit(0);
 }
 EOM
-if $cc -o gccvers $ccflags $ldflags gccvers.c; then
-       gccversion=`./gccvers`
+if $cc -o try $ccflags $ldflags try.c; then
+       gccversion=`$run ./try`
        case "$gccversion" in
        '') echo "You are not using GNU cc." ;;
        *)  echo "You are using GNU cc $gccversion."
@@ -3192,7 +3398,7 @@ else
                ;;
        esac
 fi
-$rm -f gccvers*
+$rm -f try try.*
 case "$gccversion" in
 1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
 esac
@@ -4211,15 +4417,15 @@ $cat >> try.msg <<EOM
 I used the command:
 
        $*
-       ./try
+       $run ./try
 
 and I got the following output:
 
 EOM
 dflt=y
 if $sh -c "$cc -o try $optimize $ccflags $ldflags try.c $libs" >>try.msg 2>&1; then
-       if $sh -c './try' >>try.msg 2>&1; then
-               xxx=`./try`
+       if $sh -c "$run ./try" >>try.msg 2>&1; then
+               xxx=`$run ./try`
                case "$xxx" in
                "Ok") dflt=n ;;
                *)      echo 'The program compiled OK, but produced no output.' >> try.msg
@@ -4341,7 +4547,7 @@ echo " "
 case "$intsize" in
 '')
        echo "Checking to see how big your integers are..." >&4
-       $cat >intsize.c <<'EOCP'
+       $cat >try.c <<'EOCP'
 #include <stdio.h>
 int main()
 {
@@ -4351,9 +4557,9 @@ int main()
        exit(0);
 }
 EOCP
-       set intsize
-       if eval $compile_ok && ./intsize > /dev/null; then
-               eval `./intsize`
+       set try
+       if eval $compile_ok && $run ./try > /dev/null; then
+               eval `$run ./try`
                echo "Your integers are $intsize bytes long."
                echo "Your long integers are $longsize bytes long."
                echo "Your short integers are $shortsize bytes long."
@@ -4380,7 +4586,7 @@ EOM
        fi
        ;;
 esac
-$rm -f intsize intsize.*
+$rm -f try try.*
 
 : see what type lseek is declared as in the kernel
 rp="What is the type used for lseek's offset on this system?"
@@ -4400,7 +4606,7 @@ int main()
 EOCP
 set try
 if eval $compile_ok; then
-       lseeksize=`./try`
+       lseeksize=`$run ./try`
        echo "Your file offsets are $lseeksize bytes long."
 else
        dflt=$longsize
@@ -4433,7 +4639,7 @@ int main() {
 EOCP
 set try
 if eval $compile_ok; then
-       yyy=`./try`
+       yyy=`$run ./try`
        case "$yyy" in
        '')     fpossize=4
                echo "(I can't execute the test program--guessing $fpossize.)" >&4
@@ -4512,7 +4718,7 @@ int main()
 EOCP
                set try
                if eval $compile_ok; then
-                       lseeksize=`./try`
+                       lseeksize=`$run ./try`
                        $echo "Your file offsets are now $lseeksize bytes long."
                else
                        dflt="$lseeksize"
@@ -4537,7 +4743,7 @@ int main() {
 EOCP
                set try
                if eval $compile_ok; then
-                       yyy=`./try`
+                       yyy=`$run ./try`
                        dflt="$lseeksize"
                        case "$yyy" in
                        '')     echo " "
@@ -4683,7 +4889,7 @@ int main()
 EOCP
        set try
        if eval $compile_ok; then
-               ptrsize=`./try`
+               ptrsize=`$run ./try`
                echo "Your pointers are $ptrsize bytes long."
        else
                dflt='4'
@@ -4727,7 +4933,7 @@ int main()
 EOCP
        set try
        if eval $compile_ok; then
-               longlongsize=`./try$exe_ext`
+               longlongsize=`$run ./try`
                echo "Your long longs are $longlongsize bytes long."
        else
                dflt='8'
@@ -5150,7 +5356,7 @@ esac
 
 echo " "
 echo "Checking for GNU C Library..." >&4
-cat >gnulibc.c <<EOM
+cat >try.c <<EOM
 #include <stdio.h>
 int main()
 {
@@ -5161,15 +5367,15 @@ int main()
 #endif
 }
 EOM
-set gnulibc
-if eval $compile_ok && ./gnulibc; then
+set try
+if eval $compile_ok && $run ./try; then
        val="$define"
        echo "You are using the GNU C Library"
 else
        val="$undef"
        echo "You are not using the GNU C Library"
 fi
-$rm -f gnulibc*
+$rm -f try try.*
 set d_gnulibc
 eval $setvar
 
@@ -5275,7 +5481,6 @@ case "$libc" in
        esac
        ;;
 esac
-libnames='';
 case "$libs" in
 '') ;;
 *)  for thislib in $libs; do
@@ -5682,7 +5887,7 @@ int main()
 EOCP
        set try
        if eval $compile_ok; then
-               doublesize=`./try`
+               doublesize=`$run ./try`
                echo "Your double is $doublesize bytes long."
        else
                dflt='8'
@@ -5726,7 +5931,7 @@ EOCP
        set try
        set try
        if eval $compile; then
-               longdblsize=`./try$exe_ext`
+               longdblsize=`$run ./try`
                echo "Your long doubles are $longdblsize bytes long."
        else
                dflt='8'
@@ -5810,6 +6015,10 @@ case "$myarchname" in
        archname=''
        ;;
 esac
+case "$targetarch" in
+'') ;;
+*)  archname=`echo $targetarch|sed 's,^[^-]*-,,'` ;;
+esac
 myarchname="$tarch"
 case "$archname" in
 '') dflt="$tarch";;
@@ -6984,7 +7193,7 @@ int main() {
                exit(1); /* fail */
 }
 EOM
-               if $cc $ccflags $ldflags try.c >/dev/null 2>&1 && ./a.out; then
+               if $cc $ccflags $ldflags try.c >/dev/null 2>&1 && $run ./a.out; then
                        cat <<EOM
 You appear to have ELF support.  I'll use $cc to build dynamic libraries.
 EOM
@@ -8029,7 +8238,7 @@ int main() {
 EOCP
        set try
        if eval $compile; then
-               yyy=`./try$exe_ext`
+               yyy=`$run ./try`
                case "$yyy" in
                123.456)
                        sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"';
@@ -8051,7 +8260,7 @@ int main() {
 EOCP
        set try
        if eval $compile; then
-               yyy=`./try$exe_ext`
+               yyy=`$run ./try`
                case "$yyy" in
                123.456)
                        sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"';
@@ -8073,7 +8282,7 @@ int main() {
 EOCP
        set try
        if eval $compile; then
-               yyy=`./try$exe_ext`
+               yyy=`$run ./try`
                case "$yyy" in
                123.456)
                        sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"';
@@ -8095,7 +8304,7 @@ int main() {
 EOCP
        set try
        if eval $compile; then
-               yyy=`./try$exe_ext`
+               yyy=`$run ./try`
                case "$yyy" in
                123.456)
                        sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"';
@@ -8238,6 +8447,13 @@ int main()
        Gconvert((DOUBLETYPE)123.456, 8, 0, buf); 
        checkit("123.456", buf);
 
+        /* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */
+        Gconvert((DOUBLETYPE)1e30, 8, 0, buf);
+        if (strlen(buf) > 5)
+            checkit("1e+030", buf); /* for Microsoft */
+        else
+            checkit("1e+30", buf);
+
        exit(0);
 }
 EOP
@@ -8265,7 +8481,7 @@ for xxx_convert in $xxx_list; do
        set try -DTRY_$xxx_convert
        if eval $compile; then
                echo "$xxx_convert() found." >&4
-               if ./try; then
+               if $run ./try; then
                        echo "I'll use $xxx_convert to convert floats into a string." >&4
                        break;
                else
@@ -8399,7 +8615,7 @@ case "$d_getpgrp" in
 "$define")
        echo " "
        echo "Checking to see which flavor of getpgrp is in use..."
-       $cat >set.c <<EOP
+       $cat >try.c <<EOP
 #$i_unistd I_UNISTD
 #include <sys/types.h>
 #ifdef I_UNISTD
@@ -8421,10 +8637,10 @@ int main()
        exit(1);
 }
 EOP
-       if $cc -o set -DTRY_BSD_PGRP $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+       if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
                echo "You have to use getpgrp(pid) instead of getpgrp()." >&4
                val="$define"
-       elif $cc -o set $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+       elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
                echo "You have to use getpgrp() instead of getpgrp(pid)." >&4
                val="$undef"
        else
@@ -8451,7 +8667,7 @@ EOP
 esac
 set d_bsdgetpgrp
 eval $setvar
-$rm -f set set.c
+$rm -f try try.*
 
 : see if setpgrp exists
 set setpgrp d_setpgrp
@@ -8461,7 +8677,7 @@ case "$d_setpgrp" in
 "$define")
        echo " "
        echo "Checking to see which flavor of setpgrp is in use..."
-       $cat >set.c <<EOP
+       $cat >try.c <<EOP
 #$i_unistd I_UNISTD
 #include <sys/types.h>
 #ifdef I_UNISTD
@@ -8483,10 +8699,10 @@ int main()
        exit(1);
 }
 EOP
-       if $cc -o set -DTRY_BSD_PGRP $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+       if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
                echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4
                val="$define"
-       elif $cc -o set $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+       elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
                echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4
                val="$undef"
        else
@@ -8513,7 +8729,7 @@ EOP
 esac
 set d_bsdsetpgrp
 eval $setvar
-$rm -f set set.c
+$rm -f try try.*
 : see if bzero exists
 set bzero d_bzero
 eval $inlibc
@@ -8603,7 +8819,7 @@ int main()
 EOCP
 set try
 if eval $compile_ok; then
-       ./try
+       $run ./try
        yyy=$?
 else
        echo "(I can't seem to compile the test program--assuming it can't)"
@@ -8699,7 +8915,7 @@ int main()
 EOCP
 set try
 if eval $compile_ok; then
-       ./try
+       $run ./try
        castflags=$?
 else
        echo "(I can't seem to compile the test program--assuming it can't)"
@@ -8722,7 +8938,7 @@ echo " "
 if set vprintf val -f d_vprintf; eval $csym; $val; then
        echo 'vprintf() found.' >&4
        val="$define"
-       $cat >vprintf.c <<'EOF'
+       $cat >try.c <<'EOF'
 #include <varargs.h>
 
 int main() { xxx("foo"); }
@@ -8737,8 +8953,8 @@ va_dcl
        exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
 }
 EOF
-       set vprintf
-       if eval $compile && ./vprintf; then
+       set try
+       if eval $compile && $run ./try; then
                echo "Your vsprintf() returns (int)." >&4
                val2="$undef"
        else
@@ -8750,6 +8966,7 @@ else
                val="$undef"
                val2="$undef"
 fi
+$rm -f try try.*
 set d_vprintf
 eval $setvar
 val=$val2
@@ -9186,7 +9403,7 @@ $cat >fred.c<<EOM
 #include <stdio.h>
 #$i_dlfcn I_DLFCN
 #ifdef I_DLFCN
-#include <dlfcn.h>      /* the dynamic linker include file for Sunos/Solaris */
+#include <dlfcn.h>      /* the dynamic linker include file for SunOS/Solaris */
 #else
 #include <sys/types.h>
 #include <nlist.h>
@@ -9231,8 +9448,8 @@ EOM
        if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 && 
                mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 && 
                $ld -o dyna.$dlext $ldflags $lddlflags tmp-dyna${_o} > /dev/null 2>&1 && 
-               $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1; then
-               xxx=`./fred`
+               $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1 && $to dyna.$dlext; then
+               xxx=`$run ./fred`
                case $xxx in
                1)      echo "Test program failed using dlopen." >&4
                        echo "Perhaps you should not use dynamic loading." >&4;;
@@ -9293,7 +9510,7 @@ eval $inlibc
 
 : Locate the flags for 'open()'
 echo " "
-$cat >open3.c <<'EOCP'
+$cat >try.c <<'EOCP'
 #include <sys/types.h>
 #ifdef I_FCNTL
 #include <fcntl.h>
@@ -9312,10 +9529,10 @@ int main() {
 EOCP
 : check sys/file.h first to get FREAD on Sun
 if $test `./findhdr sys/file.h` && \
-               set open3 -DI_SYS_FILE && eval $compile; then
+               set try -DI_SYS_FILE && eval $compile; then
        h_sysfile=true;
        echo "<sys/file.h> defines the O_* constants..." >&4
-       if ./open3; then
+       if $run ./try; then
                echo "and you have the 3 argument form of open()." >&4
                val="$define"
        else
@@ -9323,10 +9540,10 @@ if $test `./findhdr sys/file.h` && \
                val="$undef"
        fi
 elif $test `./findhdr fcntl.h` && \
-               set open3 -DI_FCNTL && eval $compile; then
+               set try -DI_FCNTL && eval $compile; then
        h_fcntl=true;
        echo "<fcntl.h> defines the O_* constants..." >&4
-       if ./open3; then
+       if $run ./try; then
                echo "and you have the 3 argument form of open()." >&4
                val="$define"
        else
@@ -9339,7 +9556,7 @@ else
 fi
 set d_open3
 eval $setvar
-$rm -f open3*
+$rm -f try try.*
 
 : see which of string.h or strings.h is needed
 echo " "
@@ -9398,7 +9615,7 @@ int main() {
 EOCP
        set try
        if eval $compile_ok; then
-               o_nonblock=`./try`
+               o_nonblock=`$run ./try`
                case "$o_nonblock" in
                '') echo "I can't figure it out, assuming O_NONBLOCK will do.";;
                *) echo "Seems like we can use $o_nonblock.";;
@@ -9495,7 +9712,7 @@ EOCP
        set try
        if eval $compile_ok; then
                echo "$startsh" >mtry
-               echo "./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry
+               echo "$run ./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry
                chmod +x mtry
                ./mtry >/dev/null 2>&1
                case $? in
@@ -9596,7 +9813,7 @@ case "$d_fcntl" in
 "$define")
        set try
        if eval $compile_ok; then
-               if ./try; then
+               if $run ./try; then
                        echo "Yes, it seems to work."
                        val="$define"
                else
@@ -9710,7 +9927,7 @@ $cat <<EOM
 
 Checking to see how well your C compiler handles fd_set and friends ...
 EOM
-$cat >fd_set.c <<EOCP
+$cat >try.c <<EOCP
 #$i_systime I_SYS_TIME
 #$i_sysselct I_SYS_SELECT
 #$d_socket HAS_SOCKET
@@ -9738,12 +9955,12 @@ int main() {
 #endif
 }
 EOCP
-set fd_set -DTRYBITS
+set try -DTRYBITS
 if eval $compile; then
        d_fds_bits="$define"
        d_fd_set="$define"
        echo "Well, your system knows about the normal fd_set typedef..." >&4
-       if ./fd_set; then
+       if $run ./try; then
                echo "and you have the normal fd_set macros (just as I'd expect)." >&4
                d_fd_macros="$define"
        else
@@ -9756,12 +9973,12 @@ else
        $cat <<'EOM'
 Hmm, your compiler has some difficulty with fd_set.  Checking further...
 EOM
-       set fd_set
+       set try
        if eval $compile; then
                d_fds_bits="$undef"
                d_fd_set="$define"
                echo "Well, your system has some sort of fd_set available..." >&4
-               if ./fd_set; then
+               if $run ./try; then
                        echo "and you have the normal fd_set macros." >&4
                        d_fd_macros="$define"
                else
@@ -9777,7 +9994,7 @@ EOM
                d_fd_macros="$undef"
        fi
 fi
-$rm -f fd_set*
+$rm -f try try.*
 
 : see if fgetpos exists
 set fgetpos d_fgetpos
@@ -10504,7 +10721,7 @@ EOCP
        esac
        set try
        if eval $compile; then
-               foo=`./try`
+               foo=`$run ./try`
                case "$foo" in
                *" 4294967303.150000 1.150000 4294967302.000000")
                        echo >&4 "Your modfl() is broken for large values."
@@ -10626,7 +10843,7 @@ int main()
 EOCP
        set try
        if eval $compile_ok; then
-               dflt=`./try`
+               dflt=`$run ./try`
        else
                dflt='1'
                echo "(I can't seem to compile the test program.  Guessing...)"
@@ -10742,7 +10959,7 @@ esac
 case "$i8type" in
 '')    set try -DINT8
        if eval $compile; then
-               case "`./try$exe_ext`" in
+               case "`$run ./try`" in
                int8_t) i8type=int8_t
                        u8type=uint8_t
                        i8size=1
@@ -10775,7 +10992,7 @@ esac
 case "$i16type" in
 '')    set try -DINT16
        if eval $compile; then
-               case "`./try$exe_ext`" in
+               case "`$run ./try`" in
                int16_t)
                        i16type=int16_t
                        u16type=uint16_t
@@ -10817,7 +11034,7 @@ esac
 case "$i32type" in
 '')    set try -DINT32
        if eval $compile; then
-               case "`./try$exe_ext`" in
+               case "`$run ./try`" in
                int32_t)
                        i32type=int32_t
                        u32type=uint32_t
@@ -10896,7 +11113,7 @@ set try
 
 d_nv_preserves_uv="$undef"
 if eval $compile; then
-       d_nv_preserves_uv_bits="`./try$exe_ext`"
+       d_nv_preserves_uv_bits="`$run ./try`"
 fi
 case "$d_nv_preserves_uv_bits" in
 \-[1-9]*)      
@@ -11189,10 +11406,6 @@ eval $inlibc
 set readv d_readv
 eval $inlibc
 
-: see if realpath exists
-set realpath d_realpath
-eval $inlibc
-
 : see if recvmsg exists
 set recvmsg d_recvmsg
 eval $inlibc
@@ -11284,7 +11497,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
@@ -11362,7 +11575,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
@@ -11422,7 +11635,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
@@ -11591,7 +11804,7 @@ END
     val="$undef"
     set try
     if eval $compile; then
-       xxx=`./try`
+       xxx=`$run ./try`
         case "$xxx" in
         semun) val="$define" ;;
         esac
@@ -11649,7 +11862,7 @@ END
     val="$undef"
     set try
     if eval $compile; then
-        xxx=`./try`
+        xxx=`$run ./try`
         case "$xxx" in
         semid_ds) val="$define" ;;
         esac
@@ -11974,7 +12187,7 @@ int main()
 EOP
        set try
        if eval $compile; then
-               if ./try >/dev/null 2>&1; then
+               if $run ./try >/dev/null 2>&1; then
                        echo "POSIX sigsetjmp found." >&4
                        val="$define"
                else
@@ -12157,8 +12370,8 @@ int main() {
 EOP
 val="$undef"
 set try
-if eval $compile; then
-       if ./try; then
+if eval $compile && $to try.c; then
+       if $run ./try; then
                echo "Your stdio acts pretty std."
                val="$define"
        else
@@ -12254,8 +12467,8 @@ int main() {
 }
 EOP
        set try
-       if eval $compile; then
-               case `./try$exe_ext` in
+       if eval $compile && $to try.c; then
+               case `$run ./try` in
                Pass_changed)
                        echo "Increasing ptr in your stdio decreases cnt by the same amount.  Good." >&4
                        d_stdio_ptr_lval_sets_cnt="$define" ;;
@@ -12294,8 +12507,8 @@ int main() {
 }
 EOP
        set try
-       if eval $compile; then
-               if ./try; then
+       if eval $compile && $to try.c; then
+               if $run ./try; then
                        echo "And its _base field acts std."
                        val="$define"
                else
@@ -12325,7 +12538,7 @@ EOCP
        do
                set try -DSTDIO_STREAM_ARRAY=$s
                if eval $compile; then
-                       case "`./try$exe_ext`" in
+                       case "`$run ./try`" in
                        yes)    stdio_stream_array=$s; break ;;
                        esac
                fi
@@ -12471,7 +12684,7 @@ int main() {
 EOCP
        set try
        if eval $compile; then
-               yyy=`./try`
+               yyy=`$run ./try`
                case "$yyy" in
                ok) echo "Your strtoll() seems to be working okay." ;;
                *) cat <<EOM >&4
@@ -12556,7 +12769,7 @@ EOCP
 EOCP
        set try
        if eval $compile; then
-               case "`./try`" in
+               case "`$run ./try`" in
                ok) echo "Your strtoul() seems to be working okay." ;;
                *) cat <<EOM >&4
 Your strtoul() doesn't seem to be working okay.
@@ -12610,7 +12823,7 @@ int main() {
 EOCP
        set try
        if eval $compile; then
-               case "`./try`" in
+               case "`$run ./try`" in
                ok) echo "Your strtoull() seems to be working okay." ;;
                *) cat <<EOM >&4
 Your strtoull() doesn't seem to be working okay.
@@ -12662,7 +12875,7 @@ int main() {
 EOCP
        set try
        if eval $compile; then
-               case "`./try`" in
+               case "`$run ./try`" in
                ok) echo "Your strtouq() seems to be working okay." ;;
                *) cat <<EOM >&4
 Your strtouq() doesn't seem to be working okay.
 set d_tzname
 eval $setvar
 
-case "$crosscompile" in
-''|[nN]*) crosscompile="$undef" ;;
-esac
-
 case "$osname" in
 next|rhapsody|darwin) multiarch="$define" ;;
 esac
@@ -12763,14 +12972,14 @@ esac
 
 : check for ordering of bytes in a long
 echo " "
-case "$crosscompile$multiarch" in
+case "$usecrosscompile$multiarch" in
 *$define*)
        $cat <<EOM
 You seem to be either cross-compiling or doing a multiarchitecture build,
 skipping the byteorder check.
 
 EOM
-       byteorder='0xffff'
+       byteorder='ffff'
        ;;
 *)
        case "$byteorder" in
@@ -12807,7 +13016,7 @@ EOCP
                xxx_prompt=y
                set try
                if eval $compile && ./try > /dev/null; then
-                       dflt=`./try`
+                       dflt=`$run ./try`
                        case "$dflt" in
                        [1-4][1-4][1-4][1-4]|12345678|87654321)
                                echo "(The test program ran ok.)"
@@ -12892,8 +13101,8 @@ int main() {
 EOCP
 set try
 if eval $compile_ok; then
-       echo "(This test may dump core.)" >&4
-       ./try >&2 >/dev/null
+       echo "(Testing for character data alignment may dump core.)" >&4
+       $run ./try 2>&1 >/dev/null
        case "$?" in
        0)      cat >&4 <<EOM
 You can access character data pretty unalignedly.
@@ -13000,7 +13209,7 @@ case "$d_closedir" in
 "$define")
        echo " "
        echo "Checking whether closedir() returns a status..." >&4
-       cat > closedir.c <<EOM
+       cat > try.c <<EOM
 #$i_dirent I_DIRENT            /**/
 #$i_sysdir I_SYS_DIR           /**/
 #$i_sysndir I_SYS_NDIR         /**/
@@ -13029,9 +13238,9 @@ case "$d_closedir" in
 #endif 
 int main() { return closedir(opendir(".")); }
 EOM
-       set closedir
+       set try
        if eval $compile_ok; then
-               if ./closedir > /dev/null 2>&1 ; then
+               if $run ./try > /dev/null 2>&1 ; then
                        echo "Yes, it does."
                        val="$undef"
                else
@@ -13049,7 +13258,7 @@ EOM
 esac
 set d_void_closedir
 eval $setvar
-$rm -f closedir*
+$rm -f try try.*
 : see if there is a wait4
 set wait4 d_wait4
 eval $inlibc
@@ -13079,7 +13288,7 @@ Revision='$Revision'
 
 : check for alignment requirements
 echo " "
-case "$crosscompile$multiarch" in
+case "$usecrosscompile$multiarch" in
 *$define*)
        $cat <<EOM
 You seem to be either cross-compiling or doing a multiarchitecture build,
@@ -13116,7 +13325,7 @@ int main()
 EOCP
                set try
                if eval $compile_ok; then
-                       dflt=`./try`
+                       dflt=`$run ./try`
                else
                        dflt='8'
                        echo "(I can't seem to compile the test program...)"
@@ -13234,9 +13443,9 @@ int main(int argc, char *argv[])
 }
 EOCP
        set try
-       if eval $compile_ok && ./try; then
+       if eval $compile_ok && $run ./try; then
                echo 'Looks OK.' >&4
-               set `./try 1`
+               set `$run ./try 1`
                db_version_major=$1
                db_version_minor=$2
                db_version_patch=$3
@@ -13482,7 +13691,7 @@ done
 
 echo " "
 echo "Determining whether or not we are on an EBCDIC system..." >&4
-$cat >tebcdic.c <<'EOM'
+$cat >try.c <<'EOM'
 int main()
 {
   if ('M'==0xd4) return 0;
@@ -13491,19 +13700,19 @@ int main()
 EOM
 
 val=$undef
-set tebcdic
+set try
 if eval $compile_ok; then
-       if ./tebcdic; then
+       if $run ./try; then
                echo "You seem to speak EBCDIC." >&4
                val="$define"
        else
-               echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF8." >&4
+               echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8." >&4
        fi
 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 tebcdic.c tebcdic
+$rm -f try try.*
 set ebcdic
 eval $setvar
 
@@ -13528,7 +13737,9 @@ $cat >>try.c <<EOCP
 # define STDIO_STREAM_ARRAY $stdio_stream_array
 #endif
 int main() {
-  FILE* p = fopen("try.out", "w");
+  FILE* p;
+  unlink("try.out");
+  p = fopen("try.out", "w");
 #ifdef TRY_FPUTC
   fputc('x', p);
 #else
@@ -13577,24 +13788,28 @@ int main() {
 }
 EOCP
 : first we have to find out how _not_ to flush
+$to try.c
 if $test "X$fflushNULL" = X -o "X$fflushall" = X; then
     output=''
     set try -DTRY_FPUTC
     if eval $compile; then
            $rm -f try.out
-           ./try$exe_ext 2>/dev/null
-           if $test ! -s try.out -a "X$?" = X42; then
+           $run ./try 2>/dev/null
+           code="$?"
+           $from try.out
+           if $test ! -s try.out -a "X$code" = X42; then
                output=-DTRY_FPUTC
            fi
     fi
     case "$output" in
     '')
            set try -DTRY_FPRINTF
-           $rm -f try.out
            if eval $compile; then
                    $rm -f try.out
-                   ./try$exe_ext 2>/dev/null
-                   if $test ! -s try.out -a "X$?" = X42; then
+                   $run ./try 2>/dev/null
+                   code="$?"
+                   $from try.out
+                   if $test ! -s try.out -a "X$code" = X42; then
                        output=-DTRY_FPRINTF
                    fi
            fi
@@ -13606,8 +13821,9 @@ case "$fflushNULL" in
 '')    set try -DTRY_FFLUSH_NULL $output
        if eval $compile; then
                $rm -f try.out
-               ./try$exe_ext 2>/dev/null
+               $run ./try 2>/dev/null
                code="$?"
+               $from try.out
                if $test -s try.out -a "X$code" = X42; then
                        fflushNULL="`$cat try.out`"
                else
@@ -13653,7 +13869,7 @@ EOCP
                 set tryp
                 if eval $compile; then
                     $rm -f tryp.out
-                    $cat tryp.c | ./tryp$exe_ext 2>/dev/null > tryp.out
+                    $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
                     if cmp tryp.c tryp.out >/dev/null 2>&1; then
                        $cat >&4 <<EOM
 fflush(NULL) seems to behave okay with input streams.
@@ -13717,7 +13933,7 @@ EOCP
        set tryp
        if eval $compile; then
            $rm -f tryp.out
-           $cat tryp.c | ./tryp$exe_ext 2>/dev/null > tryp.out
+           $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
            if cmp tryp.c tryp.out >/dev/null 2>&1; then
               $cat >&4 <<EOM
 Good, at least fflush(stdin) seems to behave okay when stdin is a pipe.
@@ -13730,8 +13946,10 @@ EOM
 (Now testing the other method--but note that this also may fail.)
 EOM
                                $rm -f try.out
-                               ./try$exe_ext 2>/dev/null
-                               if $test -s try.out -a "X$?" = X42; then
+                               $run ./try 2>/dev/null
+                               code=$?
+                               $from try.out
+                               if $test -s try.out -a "X$code" = X42; then
                                        fflushall="`$cat try.out`"
                                fi
                        fi
@@ -13836,7 +14054,7 @@ int main() {
 EOCP
 set try
 if eval $compile_ok; then
-       yyy=`./try`
+       yyy=`$run ./try`
        case "$yyy" in
        '')     gidsize=4
                echo "(I can't execute the test program--guessing $gidsize.)" >&4
@@ -13870,7 +14088,7 @@ int main() {
 EOCP
 set try
 if eval $compile; then
-       yyy=`./try`
+       yyy=`$run ./try`
        case "$yyy" in
        '')     gidsign=1
                echo "(I can't execute the test program--guessing unsigned.)" >&4
@@ -13905,7 +14123,7 @@ int main() {
 EOCP
        set try
        if eval $compile; then
-               yyy=`./try$exe_ext`
+               yyy=`$run ./try`
                case "$yyy" in
                12345678901)
                        sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"';
@@ -13927,7 +14145,7 @@ int main() {
 EOCP
        set try
        if eval $compile; then
-               yyy=`./try$exe_ext`
+               yyy=`$run ./try`
                case "$yyy" in
                12345678901)
                        sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"';
@@ -13950,7 +14168,7 @@ int main() {
 EOCP
        set try
        if eval $compile; then
-               yyy=`./try$exe_ext`
+               yyy=`$run ./try`
                case "$yyy" in
                12345678901)
                        sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64;
@@ -13972,7 +14190,7 @@ int main() {
 EOCP
        set try
        if eval $compile; then
-               yyy=`./try$exe_ext`
+               yyy=`$run ./try`
                case "$yyy" in
                12345678901)
                        sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"';
@@ -13994,7 +14212,7 @@ int main() {
 EOCP
        set try
        if eval $compile; then
-               yyy=`./try$exe_ext`
+               yyy=`$run ./try`
                case "$yyy" in
                12345678901)
                        sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"';
@@ -14016,7 +14234,7 @@ int main() {
 EOCP
        set try
        if eval $compile; then
-               yyy=`./try$exe_ext`
+               yyy=`$run ./try`
                case "$yyy" in
                12345678901)
                        sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"';
@@ -14337,8 +14555,8 @@ main(int ac, char **av)
 }
 EOCP
        set try
-       if eval $compile && ./try 2>&1 >/dev/null; then
-               case "`./try`" in
+       if eval $compile && $run ./try 2>&1 >/dev/null; then
+               case "`$run ./try`" in
                "that's all right, then")
                        okay=yes
                        ;;
@@ -14586,13 +14804,13 @@ $cc $ccflags -c bar2.c >/dev/null 2>&1
 $cc $ccflags -c foo.c >/dev/null 2>&1
 $ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1
 if $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
-       ./foobar >/dev/null 2>&1; then
+       $run ./foobar >/dev/null 2>&1; then
        echo "$ar appears to generate random libraries itself."
        orderlib=false
        ranlib=":"
 elif $ar ts bar$_a >/dev/null 2>&1 &&
        $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
-       ./foobar >/dev/null 2>&1; then
+       $run ./foobar >/dev/null 2>&1; then
                echo "a table of contents needs to be added with '$ar ts'."
                orderlib=false
                ranlib="$ar ts"
@@ -14732,7 +14950,7 @@ int main() {
 EOCP
                set try
                if eval $compile_ok; then
-                       selectminbits=`./try`
+                       selectminbits=`$run ./try`
                        case "$selectminbits" in
                        '')     cat >&4 <<EOM
 Cannot figure out on how many bits at a time your select() operates.
@@ -14924,13 +15142,13 @@ $cat >>signal_cmd <<'EOS'
 
 set signal
 if eval $compile_ok; then
-       ./signal$_exe | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
+       $run ./signal$_exe | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
 else
        echo "(I can't seem be able to compile the whole test program)" >&4
        echo "(I'll try it in little pieces.)" >&4
        set signal -DJUST_NSIG
        if eval $compile_ok; then
-               ./signal$_exe > signal.nsg
+               $run ./signal$_exe > signal.nsg
                $cat signal.nsg
        else
                echo "I can't seem to figure out how many signals you have." >&4
@@ -14951,7 +15169,7 @@ EOCP
                set signal
                if eval $compile; then
                        echo "SIG${xx} found."
-                       ./signal$_exe  >> signal.ls1
+                       $run ./signal$_exe  >> signal.ls1
                else
                        echo "SIG${xx} NOT found."
                fi
@@ -15042,7 +15260,7 @@ int main() {
 EOCP
 set try
 if eval $compile_ok; then
-       yyy=`./try`
+       yyy=`$run ./try`
        case "$yyy" in
        '')     sizesize=4
                echo "(I can't execute the test program--guessing $sizesize.)" >&4
@@ -15136,7 +15354,7 @@ esac
 set ssize_t ssizetype int stdio.h sys/types.h
 eval $typedef
 dflt="$ssizetype"
-$cat > ssize.c <<EOM
+$cat > try.c <<EOM
 #include <stdio.h>
 #include <sys/types.h>
 #define Size_t $sizetype
@@ -15153,9 +15371,9 @@ int main()
 }
 EOM
 echo " "
-set ssize
-if eval $compile_ok && ./ssize > /dev/null; then
-       ssizetype=`./ssize`
+set try
+if eval $compile_ok && $run ./try > /dev/null; then
+       ssizetype=`$run ./try`
        echo "I'll be using $ssizetype for functions returning a byte count." >&4
 else
        $cat >&4 <<EOM
@@ -15171,7 +15389,7 @@ EOM
        . ./myread
        ssizetype="$ans"
 fi
-$rm -f ssize ssize.*
+$rm -f try try.*
 
 : see what type of char stdio uses.
 echo " "
@@ -15245,7 +15463,7 @@ int main() {
 EOCP
 set try
 if eval $compile_ok; then
-       yyy=`./try`
+       yyy=`$run ./try`
        case "$yyy" in
        '')     uidsize=4
                echo "(I can't execute the test program--guessing $uidsize.)" >&4
@@ -15278,7 +15496,7 @@ int main() {
 EOCP
 set try
 if eval $compile; then
-       yyy=`./try`
+       yyy=`$run ./try`
        case "$yyy" in
        '')     uidsign=1
                echo "(I can't execute the test program--guessing unsigned.)" >&4
@@ -15602,7 +15820,7 @@ case "$osname-$gccversion" in
 irix-) ccflags="\$ccflags -woff 1178" ;;
 os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;;
 esac
-$cc -o try $optimize \$ccflags $ldflags try.c $libs && ./try$exe_ext
+$cc -o try $optimize \$ccflags $ldflags try.c $libs && $run ./try
 EOSH
 chmod +x Cppsym.try
 $eunicefix Cppsym.try
@@ -15682,7 +15900,6 @@ else
                $test "$silent" || sleep 1
        fi
 fi
-$rm -f ccsym* Cppsym.*
 
 : see if this is a termio system
 val="$undef"
@@ -15985,8 +16202,11 @@ for xxx in $known_extensions ; do
                esac
                ;;
        Thread|thread)
-               case "$usethreads" in 
-               true|$define|y) avail_ext="$avail_ext $xxx" ;;
+                case "$usethreads" in
+                true|$define|y)
+                        case "$useithreads" in
+                        $undef|false|[nN]*) avail_ext="$avail_ext $xxx" ;;
+                        esac
                esac
                ;;
        IPC/SysV|ipc/sysv)
@@ -16287,7 +16507,6 @@ cppminus='$cppminus'
 cpprun='$cpprun'
 cppstdin='$cppstdin'
 cppsymbols='$cppsymbols'
-crosscompile='$crosscompile'
 cryptlib='$cryptlib'
 csh='$csh'
 d_Gconvert='$d_Gconvert'
@@ -16492,7 +16711,6 @@ d_quad='$d_quad'
 d_readdir='$d_readdir'
 d_readlink='$d_readlink'
 d_readv='$d_readv'
-d_realpath='$d_realpath'
 d_recvmsg='$d_recvmsg'
 d_rename='$d_rename'
 d_rewinddir='$d_rewinddir'
@@ -16651,6 +16869,7 @@ flex='$flex'
 fpossize='$fpossize'
 fpostype='$fpostype'
 freetype='$freetype'
+from='$from'
 full_ar='$full_ar'
 full_csh='$full_csh'
 full_sed='$full_sed'
@@ -16901,6 +17120,7 @@ rd_nodata='$rd_nodata'
 revision='$revision'
 rm='$rm'
 rmail='$rmail'
+run='$run'
 runnm='$runnm'
 sPRIEUldbl='$sPRIEUldbl'
 sPRIFUldbl='$sPRIFUldbl'
@@ -16975,11 +17195,13 @@ subversion='$subversion'
 sysman='$sysman'
 tail='$tail'
 tar='$tar'
+targetarch='$targetarch'
 tbl='$tbl'
 tee='$tee'
 test='$test'
 timeincl='$timeincl'
 timetype='$timetype'
+to='$to'
 touch='$touch'
 tr='$tr'
 trnl='$trnl'
@@ -17002,6 +17224,7 @@ uquadtype='$uquadtype'
 use5005threads='$use5005threads'
 use64bitall='$use64bitall'
 use64bitint='$use64bitint'
+usecrosscompile='$usecrosscompile'
 usedl='$usedl'
 useithreads='$useithreads'
 uselargefiles='$uselargefiles'
@@ -17013,6 +17236,7 @@ usenm='$usenm'
 useopcode='$useopcode'
 useperlio='$useperlio'
 useposix='$useposix'
+usereentrant='$usereentrant'
 usesfio='$usesfio'
 useshrplib='$useshrplib'
 usesocks='$usesocks'
@@ -17115,7 +17339,9 @@ esac
 
 echo " "
 exec 1>&4
+pwd=`pwd`
 . ./UU/extract
+cd $pwd
 
 if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then
        dflt=y