This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re: t/op/tie.t #19 TODO ENOTWORKING
[perl5.git] / Configure
index 71b7feb..fa59b5f 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Tue Apr  9 18:44:25 EET DST 2002 [metaconfig 3.0 PL70]
+# Generated on Thu May 16 17:03:39 EET DST 2002 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.org)
 
 cat >c1$$ <<EOF
@@ -301,8 +301,6 @@ baserev=''
 bin=''
 binexp=''
 installbin=''
-bincompat5005=''
-d_bincompat5005=''
 byteorder=''
 cc=''
 ccflags=''
@@ -1860,6 +1858,11 @@ if test X"$trnl" = X; then
        esac
 fi
 if test X"$trnl" = X; then
+       case "`echo foo|tr '\r\n' xy 2>/dev/null`" in
+       fooxy) trnl='\n\r' ;;
+       esac
+fi
+if test X"$trnl" = X; then
        cat <<EOM >&2
 
 $me: Fatal Error: cannot figure out how to translate newlines with 'tr'.
@@ -3437,11 +3440,10 @@ cat <<EOM
 Perl can be built to take advantage of threads on some systems.
 To do so, Configure can be run with -Dusethreads.
 
-Note that threading is a highly experimental feature, and
-some known race conditions still remain.  If you choose to try
-it, be very sure to not actually deploy it for production
-purposes.  README.threads has more details, and is required
-reading if you enable threads.
+Note that Perl built with threading support runs slightly slower
+and uses more memory than plain Perl. The current implementation
+is believed to be stable, but it is fairly new, and so should be
+treated with caution.
 
 If this doesn't make any sense to you, just accept the default '$dflt'.
 EOM
@@ -3458,11 +3460,13 @@ case "$usethreads" in
 $define)
        $cat <<EOM
 
-As of release 5.6, Perl has two different threading implementations,
-an interpreter-based version (ithreads) with one interpreter per
-thread, and the 5.005 version (5005threads).  Both implementations
-are considered experimental, but since 5.8 ithreads somewhat less so.
-The 5005threads is effectively unmaintained.
+Since release 5.6, Perl has had two different threading implementations,
+the newer interpreter-based version (ithreads) with one interpreter per
+thread, and the older 5.005 version (5005threads).
+The 5005threads version is effectively unmaintained and will probably be
+removed in Perl 5.10, so there should be no need to build a Perl using it
+unless needed for backwards compatibility with some existing 5.005threads
+code.
 
 EOM
        : Default to ithreads unless overridden on command line or with
@@ -3474,7 +3478,7 @@ EOM
        case "$useithreads" in
                $undef|false|[nN]*) dflt='n';;
        esac
-       rp='Use interpreter-based ithreads?'
+       rp='Use the newer interpreter-based ithreads?'
        . ./myread
        case "$ans" in
        y|Y)    val="$define" ;;
@@ -4849,131 +4853,6 @@ EOM
 esac
 $rm -f try try.*
 
-: check for void type
-echo " "
-echo "Checking to see how well your C compiler groks the void type..." >&4
-case "$voidflags" in
-'')
-       $cat >try.c <<'EOCP'
-#if TRY & 1
-void sub() {
-#else
-sub() {
-#endif
-       extern void moo();      /* function returning void */
-       void (*goo)();          /* ptr to func returning void */
-#if TRY & 8
-       void *hue;              /* generic ptr */
-#endif
-#if TRY & 2
-       void (*foo[10])();
-#endif
-
-#if TRY & 4
-       if(goo == moo) {
-               exit(0);
-       }
-#endif
-       exit(0);
-}
-int main() { sub(); }
-EOCP
-       if $cc $ccflags -c -DTRY=$defvoidused try.c >.out 2>&1 ; then
-               voidflags=$defvoidused
-       echo "Good.  It appears to support void to the level $package wants.">&4
-               if $contains warning .out >/dev/null 2>&1; then
-                       echo "However, you might get some warnings that look like this:"
-                       $cat .out
-               fi
-       else
-echo "Hmm, your compiler has some difficulty with void. Checking further..." >&4
-               if $cc $ccflags -c -DTRY=1 try.c >/dev/null 2>&1; then
-                       echo "It supports 1..."
-                       if $cc $ccflags -c -DTRY=3 try.c >/dev/null 2>&1; then
-                               echo "It also supports 2..."
-                               if $cc $ccflags -c -DTRY=7 try.c >/dev/null 2>&1; then
-                                       voidflags=7
-                                       echo "And it supports 4 but not 8 definitely."
-                               else
-                                       echo "It doesn't support 4..."
-                                       if $cc $ccflags -c -DTRY=11 try.c >/dev/null 2>&1; then
-                                               voidflags=11
-                                               echo "But it supports 8."
-                                       else
-                                               voidflags=3
-                                               echo "Neither does it support 8."
-                                       fi
-                               fi
-                       else
-                               echo "It does not support 2..."
-                               if $cc $ccflags -c -DTRY=13 try.c >/dev/null 2>&1; then
-                                       voidflags=13
-                                       echo "But it supports 4 and 8."
-                               else
-                                       if $cc $ccflags -c -DTRY=5 try.c >/dev/null 2>&1; then
-                                               voidflags=5
-                                               echo "And it supports 4 but has not heard about 8."
-                                       else
-                                               echo "However it supports 8 but not 4."
-                                       fi
-                               fi
-                       fi
-               else
-                       echo "There is no support at all for void."
-                       voidflags=0
-               fi
-       fi
-esac
-case "$voidflags" in
-"$defvoidused") ;;
-*)     $cat >&4 <<'EOM'
-  Support flag bits are:
-    1: basic void declarations.
-    2: arrays of pointers to functions returning void.
-    4: operations between pointers to and addresses of void functions.
-    8: generic void pointers.
-EOM
-       dflt="$voidflags";
-       rp="Your void support flags add up to what?"
-       . ./myread
-       voidflags="$ans"
-       ;;
-esac
-$rm -f try.* .out
-
-: check for length of pointer
-echo " "
-case "$ptrsize" in
-'')
-       echo "Checking to see how big your pointers are..." >&4
-       if test "$voidflags" -gt 7; then
-               echo '#define VOID_PTR char *' > try.c
-       else
-               echo '#define VOID_PTR void *' > try.c
-       fi
-       $cat >>try.c <<'EOCP'
-#include <stdio.h>
-int main()
-{
-    printf("%d\n", (int)sizeof(VOID_PTR));
-    exit(0);
-}
-EOCP
-       set try
-       if eval $compile_ok; then
-               ptrsize=`$run ./try`
-               echo "Your pointers are $ptrsize bytes long."
-       else
-               dflt='4'
-               echo "(I can't seem to compile the test program.  Guessing...)" >&4
-               rp="What is the size of a pointer (in bytes)?"
-               . ./myread
-               ptrsize="$ans"
-       fi
-       ;;
-esac
-$rm -f try.c try
-
 : check for long long
 echo " "
 echo "Checking to see if you have long long..." >&4
@@ -5373,31 +5252,6 @@ EOM
        ;;
 esac
 
-case "$use64bitall" in
-"$define"|true|[yY]*)
-       case "$ptrsize" in
-       4)      cat <<EOM >&4
-
-*** You have chosen a maximally 64-bit build, but your pointers
-*** are only 4 bytes wide, disabling maximal 64-bitness.
-
-EOM
-               use64bitall="$undef"
-               case "$use64bitint" in
-               "$define"|true|[yY]*) ;;
-               *)      cat <<EOM >&4
-
-*** Downgrading from maximal 64-bitness to using 64-bit integers.
-
-EOM
-                       use64bitint="$define"
-                       ;;
-               esac
-               ;;
-       esac
-       ;;
-esac
-
 case "$use64bitint" in
 "$define"|true|[yY]*)
 : Look for a hint-file generated 'call-back-unit'.  If the
@@ -6642,45 +6496,6 @@ else
        installarchlib="$archlibexp"
 fi
 
-
-: Binary compatibility with 5.005 is not possible for builds
-: with advanced features
-case "$usethreads$usemultiplicity" in
-*define*)
-       bincompat5005="$undef"
-       d_bincompat5005="$undef"
-       ;;
-*)     $cat <<EOM
-
-This version of Perl can be compiled for binary compatibility with 5.005.
-If you decide to do so, you will be able to continue using most of the
-extensions that were compiled for Perl 5.005.
-
-EOM
-       case "$bincompat5005$d_bincompat5005" in
-       *"$undef"*) dflt=n ;;
-       *) dflt=y ;;
-       esac
-       rp='Binary compatibility with Perl 5.005?'
-       . ./myread
-       case "$ans" in
-       y*) val="$define" ;;
-       *)  val="$undef" ;;
-       esac
-       set d_bincompat5005
-       eval $setvar
-       case "$d_bincompat5005" in
-       "$define")
-               bincompat5005="$define"
-               ;;
-       *)      bincompat5005="$undef"
-               d_bincompat5005="$undef"
-               ;;
-       esac
-       ;;
-esac
-
-
 : see if setuid scripts can be secure
 $cat <<EOM
 
@@ -6799,6 +6614,156 @@ eval $inhdr
 set stdlib.h i_stdlib
 eval $inhdr
 
+: check for void type
+echo " "
+echo "Checking to see how well your C compiler groks the void type..." >&4
+case "$voidflags" in
+'')
+       $cat >try.c <<'EOCP'
+#if TRY & 1
+void sub() {
+#else
+sub() {
+#endif
+       extern void moo();      /* function returning void */
+       void (*goo)();          /* ptr to func returning void */
+#if TRY & 8
+       void *hue;              /* generic ptr */
+#endif
+#if TRY & 2
+       void (*foo[10])();
+#endif
+
+#if TRY & 4
+       if(goo == moo) {
+               exit(0);
+       }
+#endif
+       exit(0);
+}
+int main() { sub(); }
+EOCP
+       if $cc $ccflags -c -DTRY=$defvoidused try.c >.out 2>&1 ; then
+               voidflags=$defvoidused
+       echo "Good.  It appears to support void to the level $package wants.">&4
+               if $contains warning .out >/dev/null 2>&1; then
+                       echo "However, you might get some warnings that look like this:"
+                       $cat .out
+               fi
+       else
+echo "Hmm, your compiler has some difficulty with void. Checking further..." >&4
+               if $cc $ccflags -c -DTRY=1 try.c >/dev/null 2>&1; then
+                       echo "It supports 1..."
+                       if $cc $ccflags -c -DTRY=3 try.c >/dev/null 2>&1; then
+                               echo "It also supports 2..."
+                               if $cc $ccflags -c -DTRY=7 try.c >/dev/null 2>&1; then
+                                       voidflags=7
+                                       echo "And it supports 4 but not 8 definitely."
+                               else
+                                       echo "It doesn't support 4..."
+                                       if $cc $ccflags -c -DTRY=11 try.c >/dev/null 2>&1; then
+                                               voidflags=11
+                                               echo "But it supports 8."
+                                       else
+                                               voidflags=3
+                                               echo "Neither does it support 8."
+                                       fi
+                               fi
+                       else
+                               echo "It does not support 2..."
+                               if $cc $ccflags -c -DTRY=13 try.c >/dev/null 2>&1; then
+                                       voidflags=13
+                                       echo "But it supports 4 and 8."
+                               else
+                                       if $cc $ccflags -c -DTRY=5 try.c >/dev/null 2>&1; then
+                                               voidflags=5
+                                               echo "And it supports 4 but has not heard about 8."
+                                       else
+                                               echo "However it supports 8 but not 4."
+                                       fi
+                               fi
+                       fi
+               else
+                       echo "There is no support at all for void."
+                       voidflags=0
+               fi
+       fi
+esac
+case "$voidflags" in
+"$defvoidused") ;;
+*)     $cat >&4 <<'EOM'
+  Support flag bits are:
+    1: basic void declarations.
+    2: arrays of pointers to functions returning void.
+    4: operations between pointers to and addresses of void functions.
+    8: generic void pointers.
+EOM
+       dflt="$voidflags";
+       rp="Your void support flags add up to what?"
+       . ./myread
+       voidflags="$ans"
+       ;;
+esac
+$rm -f try.* .out
+
+: check for length of pointer
+echo " "
+case "$ptrsize" in
+'')
+       echo "Checking to see how big your pointers are..." >&4
+       if test "$voidflags" -gt 7; then
+               echo '#define VOID_PTR char *' > try.c
+       else
+               echo '#define VOID_PTR void *' > try.c
+       fi
+       $cat >>try.c <<'EOCP'
+#include <stdio.h>
+int main()
+{
+    printf("%d\n", (int)sizeof(VOID_PTR));
+    exit(0);
+}
+EOCP
+       set try
+       if eval $compile_ok; then
+               ptrsize=`$run ./try`
+               echo "Your pointers are $ptrsize bytes long."
+       else
+               dflt='4'
+               echo "(I can't seem to compile the test program.  Guessing...)" >&4
+               rp="What is the size of a pointer (in bytes)?"
+               . ./myread
+               ptrsize="$ans"
+       fi
+       ;;
+esac
+$rm -f try.c try
+case "$use64bitall" in
+"$define"|true|[yY]*)
+       case "$ptrsize" in
+       4)      cat <<EOM >&4
+
+*** You have chosen a maximally 64-bit build, but your pointers
+*** are only 4 bytes wide, disabling maximal 64-bitness.
+
+EOM
+               use64bitall="$undef"
+               case "$use64bitint" in
+               "$define"|true|[yY]*) ;;
+               *)      cat <<EOM >&4
+
+*** Downgrading from maximal 64-bitness to using 64-bit integers.
+
+EOM
+                       use64bitint="$define"
+                       ;;
+               esac
+               ;;
+       esac
+       ;;
+esac
+
+
 : determine which malloc to compile in
 echo " "
 case "$usemymalloc" in
@@ -7337,11 +7302,7 @@ case "$dflt" in
 ''|' ') dflt=none ;;
 esac
 case "$dflt" in
-5.005) case "$bincompat5005" in
-       $define|true|[yY]*) ;;
-       *) dflt=none ;;
-       esac
-       ;;
+5.005) dflt=none ;;
 esac
 $cat <<'EOM'
 
@@ -9314,12 +9275,7 @@ set asctime_r d_asctime_r
 eval $inlibc
 case "$d_asctime_r" in
 "$define")
-       hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h"
-       case "time" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
+       hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h"
        case "$d_asctime_r_proto:$usethreads" in
        ":define")      d_asctime_r_proto=define
                set d_asctime_r_proto asctime_r $hdrs
@@ -9978,11 +9934,6 @@ eval $inlibc
 case "$d_crypt_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_crypt crypt.h"
-       case "crypt" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_crypt_r_proto:$usethreads" in
        ":define")      d_crypt_r_proto=define
                set d_crypt_r_proto crypt_r $hdrs
@@ -10040,11 +9991,6 @@ eval $inlibc
 case "$d_ctermid_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h "
-       case "stdio" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_ctermid_r_proto:$usethreads" in
        ":define")      d_ctermid_r_proto=define
                set d_ctermid_r_proto ctermid_r $hdrs
@@ -10085,12 +10031,7 @@ set ctime_r d_ctime_r
 eval $inlibc
 case "$d_ctime_r" in
 "$define")
-       hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h"
-       case "time" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
+       hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h"
        case "$d_ctime_r_proto:$usethreads" in
        ":define")      d_ctime_r_proto=define
                set d_ctime_r_proto ctime_r $hdrs
@@ -10464,11 +10405,6 @@ eval $inlibc
 case "$d_drand48_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h"
-       case "stdlib" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_drand48_r_proto:$usethreads" in
        ":define")      d_drand48_r_proto=define
                set d_drand48_r_proto drand48_r $hdrs
@@ -10552,11 +10488,6 @@ eval $inlibc
 case "$d_endgrent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
-       case "grp" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_endgrent_r_proto:$usethreads" in
        ":define")      d_endgrent_r_proto=define
                set d_endgrent_r_proto endgrent_r $hdrs
@@ -10610,11 +10541,6 @@ eval $inlibc
 case "$d_endhostent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_endhostent_r_proto:$usethreads" in
        ":define")      d_endhostent_r_proto=define
                set d_endhostent_r_proto endhostent_r $hdrs
@@ -10664,11 +10590,6 @@ eval $inlibc
 case "$d_endnetent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_endnetent_r_proto:$usethreads" in
        ":define")      d_endnetent_r_proto=define
                set d_endnetent_r_proto endnetent_r $hdrs
@@ -10718,11 +10639,6 @@ eval $inlibc
 case "$d_endprotoent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_endprotoent_r_proto:$usethreads" in
        ":define")      d_endprotoent_r_proto=define
                set d_endprotoent_r_proto endprotoent_r $hdrs
@@ -10860,11 +10776,6 @@ eval $inlibc
 case "$d_endpwent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
-       case "pwd" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_endpwent_r_proto:$usethreads" in
        ":define")      d_endpwent_r_proto=define
                set d_endpwent_r_proto endpwent_r $hdrs
@@ -10914,11 +10825,6 @@ eval $inlibc
 case "$d_endservent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_endservent_r_proto:$usethreads" in
        ":define")      d_endservent_r_proto=define
                set d_endservent_r_proto endservent_r $hdrs
@@ -11595,11 +11501,6 @@ eval $inlibc
 case "$d_getgrent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
-       case "grp" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getgrent_r_proto:$usethreads" in
        ":define")      d_getgrent_r_proto=define
                set d_getgrent_r_proto getgrent_r $hdrs
@@ -11661,11 +11562,6 @@ eval $inlibc
 case "$d_getgrgid_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
-       case "grp" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getgrgid_r_proto:$usethreads" in
        ":define")      d_getgrgid_r_proto=define
                set d_getgrgid_r_proto getgrgid_r $hdrs
@@ -11719,11 +11615,6 @@ eval $inlibc
 case "$d_getgrnam_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
-       case "grp" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getgrnam_r_proto:$usethreads" in
        ":define")      d_getgrnam_r_proto=define
                set d_getgrnam_r_proto getgrnam_r $hdrs
@@ -11878,11 +11769,6 @@ eval $inlibc
 case "$d_gethostbyaddr_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_gethostbyaddr_r_proto:$usethreads" in
        ":define")      d_gethostbyaddr_r_proto=define
                set d_gethostbyaddr_r_proto gethostbyaddr_r $hdrs
@@ -11960,11 +11846,6 @@ eval $inlibc
 case "$d_gethostbyname_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_gethostbyname_r_proto:$usethreads" in
        ":define")      d_gethostbyname_r_proto=define
                set d_gethostbyname_r_proto gethostbyname_r $hdrs
@@ -12014,11 +11895,6 @@ eval $inlibc
 case "$d_gethostent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_gethostent_r_proto:$usethreads" in
        ":define")      d_gethostent_r_proto=define
                set d_gethostent_r_proto gethostent_r $hdrs
@@ -12093,11 +11969,6 @@ eval $inlibc
 case "$d_getlogin_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_unistd unistd.h"
-       case "unistd" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getlogin_r_proto:$usethreads" in
        ":define")      d_getlogin_r_proto=define
                set d_getlogin_r_proto getlogin_r $hdrs
@@ -12171,11 +12042,6 @@ eval $inlibc
 case "$d_getnetbyaddr_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getnetbyaddr_r_proto:$usethreads" in
        ":define")      d_getnetbyaddr_r_proto=define
                set d_getnetbyaddr_r_proto getnetbyaddr_r $hdrs
@@ -12241,11 +12107,6 @@ eval $inlibc
 case "$d_getnetbyname_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getnetbyname_r_proto:$usethreads" in
        ":define")      d_getnetbyname_r_proto=define
                set d_getnetbyname_r_proto getnetbyname_r $hdrs
@@ -12299,11 +12160,6 @@ eval $inlibc
 case "$d_getnetent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getnetent_r_proto:$usethreads" in
        ":define")      d_getnetent_r_proto=define
                set d_getnetent_r_proto getnetent_r $hdrs
@@ -12403,11 +12259,6 @@ eval $inlibc
 case "$d_getprotobyname_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getprotobyname_r_proto:$usethreads" in
        ":define")      d_getprotobyname_r_proto=define
                set d_getprotobyname_r_proto getprotobyname_r $hdrs
@@ -12457,11 +12308,6 @@ eval $inlibc
 case "$d_getprotobynumber_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getprotobynumber_r_proto:$usethreads" in
        ":define")      d_getprotobynumber_r_proto=define
                set d_getprotobynumber_r_proto getprotobynumber_r $hdrs
@@ -12511,11 +12357,6 @@ eval $inlibc
 case "$d_getprotoent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getprotoent_r_proto:$usethreads" in
        ":define")      d_getprotoent_r_proto=define
                set d_getprotoent_r_proto getprotoent_r $hdrs
@@ -12582,11 +12423,6 @@ eval $inlibc
 case "$d_getpwent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
-       case "pwd" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getpwent_r_proto:$usethreads" in
        ":define")      d_getpwent_r_proto=define
                set d_getpwent_r_proto getpwent_r $hdrs
@@ -12648,11 +12484,6 @@ eval $inlibc
 case "$d_getpwnam_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
-       case "pwd" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getpwnam_r_proto:$usethreads" in
        ":define")      d_getpwnam_r_proto=define
                set d_getpwnam_r_proto getpwnam_r $hdrs
@@ -12706,11 +12537,6 @@ eval $inlibc
 case "$d_getpwuid_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
-       case "pwd" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getpwuid_r_proto:$usethreads" in
        ":define")      d_getpwuid_r_proto=define
                set d_getpwuid_r_proto getpwuid_r $hdrs
@@ -12777,11 +12603,6 @@ eval $inlibc
 case "$d_getservbyname_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getservbyname_r_proto:$usethreads" in
        ":define")      d_getservbyname_r_proto=define
                set d_getservbyname_r_proto getservbyname_r $hdrs
@@ -12831,11 +12652,6 @@ eval $inlibc
 case "$d_getservbyport_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getservbyport_r_proto:$usethreads" in
        ":define")      d_getservbyport_r_proto=define
                set d_getservbyport_r_proto getservbyport_r $hdrs
@@ -12885,11 +12701,6 @@ eval $inlibc
 case "$d_getservent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getservent_r_proto:$usethreads" in
        ":define")      d_getservent_r_proto=define
                set d_getservent_r_proto getservent_r $hdrs
@@ -12956,11 +12767,6 @@ eval $inlibc
 case "$d_getspnam_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_shadow shadow.h"
-       case "shadow" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_getspnam_r_proto:$usethreads" in
        ":define")      d_getspnam_r_proto=define
                set d_getspnam_r_proto getspnam_r $hdrs
@@ -13024,12 +12830,7 @@ set gmtime_r d_gmtime_r
 eval $inlibc
 case "$d_gmtime_r" in
 "$define")
-       hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h"
-       case "time" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
+       hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h"
        case "$d_gmtime_r_proto:$usethreads" in
        ":define")      d_gmtime_r_proto=define
                set d_gmtime_r_proto gmtime_r $hdrs
@@ -13269,12 +13070,7 @@ set localtime_r d_localtime_r
 eval $inlibc
 case "$d_localtime_r" in
 "$define")
-       hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h"
-       case "time" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
+       hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h $i_systime sys/time.h"
        case "$d_localtime_r_proto:$usethreads" in
        ":define")      d_localtime_r_proto=define
                set d_localtime_r_proto localtime_r $hdrs
@@ -14035,11 +13831,6 @@ eval $inlibc
 case "$d_random_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h"
-       case "stdlib" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_random_r_proto:$usethreads" in
        ":define")      d_random_r_proto=define
                set d_random_r_proto random_r $hdrs
@@ -14091,11 +13882,6 @@ eval $inlibc
 case "$d_readdir64_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_dirent dirent.h"
-       case "dirent" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_readdir64_r_proto:$usethreads" in
        ":define")      d_readdir64_r_proto=define
                set d_readdir64_r_proto readdir64_r $hdrs
@@ -14141,11 +13927,6 @@ eval $inlibc
 case "$d_readdir_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_dirent dirent.h"
-       case "dirent" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_readdir_r_proto:$usethreads" in
        ":define")      d_readdir_r_proto=define
                set d_readdir_r_proto readdir_r $hdrs
@@ -14695,11 +14476,6 @@ eval $inlibc
 case "$d_setgrent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_grp grp.h"
-       case "grp" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_setgrent_r_proto:$usethreads" in
        ":define")      d_setgrent_r_proto=define
                set d_setgrent_r_proto setgrent_r $hdrs
@@ -14749,11 +14525,6 @@ eval $inlibc
 case "$d_sethostent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_sethostent_r_proto:$usethreads" in
        ":define")      d_sethostent_r_proto=define
                set d_sethostent_r_proto sethostent_r $hdrs
@@ -14815,11 +14586,6 @@ eval $inlibc
 case "$d_setlocale_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_locale locale.h"
-       case "locale" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_setlocale_r_proto:$usethreads" in
        ":define")      d_setlocale_r_proto=define
                set d_setlocale_r_proto setlocale_r $hdrs
@@ -14865,11 +14631,6 @@ eval $inlibc
 case "$d_setnetent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_setnetent_r_proto:$usethreads" in
        ":define")      d_setnetent_r_proto=define
                set d_setnetent_r_proto setnetent_r $hdrs
@@ -14935,11 +14696,6 @@ eval $inlibc
 case "$d_setprotoent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_setprotoent_r_proto:$usethreads" in
        ":define")      d_setprotoent_r_proto=define
                set d_setprotoent_r_proto setprotoent_r $hdrs
@@ -14989,11 +14745,6 @@ eval $inlibc
 case "$d_setpwent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_pwd pwd.h"
-       case "pwd" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_setpwent_r_proto:$usethreads" in
        ":define")      d_setpwent_r_proto=define
                set d_setpwent_r_proto setpwent_r $hdrs
@@ -15063,11 +14814,6 @@ eval $inlibc
 case "$d_setservent_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_netdb netdb.h"
-       case "netdb" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_setservent_r_proto:$usethreads" in
        ":define")      d_setservent_r_proto=define
                set d_setservent_r_proto setservent_r $hdrs
@@ -15368,11 +15114,6 @@ eval $inlibc
 case "$d_srand48_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h"
-       case "stdlib" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_srand48_r_proto:$usethreads" in
        ":define")      d_srand48_r_proto=define
                set d_srand48_r_proto srand48_r $hdrs
@@ -15414,11 +15155,6 @@ eval $inlibc
 case "$d_srandom_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_stdlib stdlib.h"
-       case "stdlib" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_srandom_r_proto:$usethreads" in
        ":define")      d_srandom_r_proto=define
                set d_srandom_r_proto srandom_r $hdrs
@@ -15859,11 +15595,6 @@ eval $inlibc
 case "$d_strerror_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_string string.h"
-       case "string" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_strerror_r_proto:$usethreads" in
        ":define")      d_strerror_r_proto=define
                set d_strerror_r_proto strerror_r $hdrs
@@ -16253,11 +15984,6 @@ eval $inlibc
 case "$d_tmpnam_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h "
-       case "stdio" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_tmpnam_r_proto:$usethreads" in
        ":define")      d_tmpnam_r_proto=define
                set d_tmpnam_r_proto tmpnam_r $hdrs
@@ -16303,11 +16029,6 @@ eval $inlibc
 case "$d_ttyname_r" in
 "$define")
        hdrs="$i_systypes sys/types.h define stdio.h $i_unistd unistd.h"
-       case "unistd" in
-       time)
-               hdrs="$hdrs $i_systime sys/time.h"
-               ;;
-       esac
        case "$d_ttyname_r_proto:$usethreads" in
        ":define")      d_ttyname_r_proto=define
                set d_ttyname_r_proto ttyname_r $hdrs
@@ -16370,7 +16091,7 @@ case "$multiarch" in
 ''|[nN]*) multiarch="$undef" ;;
 esac
 
-: check for ordering of bytes in a long
+: check for ordering of bytes in a UV
 echo " "
 case "$usecrosscompile$multiarch" in
 *$define*)
@@ -16393,21 +16114,23 @@ an Alpha will report 12345678. If the test program works the default is
 probably right.
 I'm now running the test program...
 EOM
-               $cat >try.c <<'EOCP'
+               $cat >try.c <<EOCP
 #include <stdio.h>
+#include <sys/types.h>
+typedef $uvtype UV;
 int main()
 {
        int i;
        union {
-               unsigned long l;
-               char c[sizeof(long)];
+               UV l;
+               char c[$uvsize];
        } u;
 
-       if (sizeof(long) > 4)
-               u.l = (0x08070605L << 32) | 0x04030201L;
+       if ($uvsize > 4)
+               u.l = (((UV)0x08070605) << 32) | (UV)0x04030201;
        else
-               u.l = 0x04030201L;
-       for (i = 0; i < sizeof(long); i++)
+               u.l = (UV)0x04030201;
+       for (i = 0; i < $uvsize; i++)
                printf("%c", u.c[i]+'0');
        printf("\n");
        exit(0);
@@ -16434,7 +16157,7 @@ EOM
                fi
                case "$xxx_prompt" in
                y)
-                       rp="What is the order of bytes in a long?"
+                       rp="What is the order of bytes in $uvtype?"
                        . ./myread
                        byteorder="$ans"
                        ;;
@@ -18155,10 +17878,7 @@ set pid_t pidtype int stdio.h sys/types.h
 eval $typedef_ask
 
 : Find earliest binary compatible site_perl subdirectory perl can use.
-case "$bincompat5005" in
-"$define") xs_apiversion='5.005' ;;
-*) xs_apiversion=$version ;;   # The current site_perl version.
-esac
+xs_apiversion=$version # The current site_perl version.
 : Find earliest pure perl site_perl subdirectory perl can use.
 : The versioned directories started at 5.005.
 pm_apiversion='5.005'
@@ -19186,7 +18906,7 @@ for i in \`$cc -v -c tmp.c 2>&1 $postprocess_cc_v\`
 do
        case "\$i" in
        -D*) echo "\$i" | $sed 's/^-D//';;
-       -A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A\(.*\)(\(.*\))/\1=\2/';;
+       -A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A//' | $sed 's/\(.*\)(\(.*\))/\1=\2/';;
        esac
 done
 $rm -f try.c
@@ -19567,12 +19287,18 @@ for xxx in $known_extensions ; do
                esac
                ;;
        threads|threads/shared)
-                case "$usethreads" in
-                true|$define|y)
-                        case "$useithreads" in
-                        $define|true|[yY]*) avail_ext="$avail_ext $xxx" ;;
-                        esac
-               esac
+               # 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
@@ -19701,16 +19427,6 @@ EOM
        : Exclude those that are not xs extensions
        case "$dflt" in
        '')     dflt=none;;
-        *)  case " $dflt " in
-            *" Encode "*) # Add the subextensions of Encode
-                cd "$rsrc/ext"
-                for xxx in `ls Encode/*/Makefile.PL|awk -F/ '{print $2}'`; do
-                        dflt="$dflt Encode/$xxx"
-                done
-                cd "$tdir"
-                ;;
-            esac
-            ;;
        esac
        rp="What extensions do you wish to include?"
        . ./myread
@@ -19720,6 +19436,20 @@ EOM
        esac
        ;;
 esac
+#        
+# Encode is a special case.  If we are building Encode as a static
+# extension, we need to explicitly list its subextensions as well.
+# For other nested extensions, this is handled automatically by
+# the appropriate Makefile.PL.
+case " $static_ext " in
+       *" Encode "*) # Add the subextensions of Encode
+       cd "$rsrc/ext"
+       for xxx in `ls Encode/*/Makefile.PL|awk -F/ '{print $2}'`; do
+               static_ext="$static_ext Encode/$xxx"
+       done
+       cd "$tdir"
+       ;;
+esac
 
 set X $dynamic_ext $static_ext $nonxs_ext
 shift
@@ -19851,7 +19581,6 @@ awk='$awk'
 baserev='$baserev'
 bash='$bash'
 bin='$bin'
-bincompat5005='$bincompat5005'
 binexp='$binexp'
 bison='$bison'
 byacc='$byacc'
@@ -19919,7 +19648,6 @@ d_atoll='$d_atoll'
 d_attribut='$d_attribut'
 d_bcmp='$d_bcmp'
 d_bcopy='$d_bcopy'
-d_bincompat5005='$d_bincompat5005'
 d_bsd='$d_bsd'
 d_bsdgetpgrp='$d_bsdgetpgrp'
 d_bsdsetpgrp='$d_bsdsetpgrp'