# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Sun Mar 24 20:31:34 EET 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
bin=''
binexp=''
installbin=''
-bincompat5005=''
-d_bincompat5005=''
byteorder=''
cc=''
ccflags=''
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'.
;;
next*) osname=next ;;
nonstop-ux) osname=nonstopux ;;
+ openbsd) osname=openbsd
+ osvers="$3"
+ ;;
POSIX-BC | posix-bc ) osname=posix-bc
osvers="$3"
;;
case "$usethreads" in
$define|true|[yY]*) dflt='y';;
-*) dflt='n';;
+*) # Catch case where user specified ithreads or 5005threads but
+ # forgot -Dusethreads (A.D. 4/2002)
+ case "$useithreads$use5005threads" in
+ *$define*) dflt='y' ;;
+ *) dflt='n';;
+ esac
+ ;;
esac
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
$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
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" ;;
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
;;
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
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
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
''|' ') dflt=none ;;
esac
case "$dflt" in
-5.005) case "$bincompat5005" in
- $define|true|[yY]*) ;;
- *) dflt=none ;;
- esac
- ;;
+5.005) dflt=none ;;
esac
$cat <<'EOM'
set versiononly
eval $setvar
+case "$versiononly" in
+"$define") inc_version_list=''
+ inc_version_list_init=0
+ ;;
+esac
+
: figure out how to guarantee perl startup
case "$startperl" in
'')
set alarm d_alarm
eval $inlibc
+: see if POSIX threads are available
+set pthread.h i_pthread
+eval $inhdr
+
: define a fucntion to check prototypes
$cat > protochk <<EOSH
$startsh
prototype="$prototype"
define="$define"
rm=$rm
+usethreads=$usethreads
+i_pthread=$i_pthread
+pthread_h_first=$pthread_h_first
EOSH
$cat >> protochk <<'EOSH'
$define) echo "#include <$2>" >> try.c ;;
literal) echo "$2" >> try.c ;;
esac
+ # Extra magic for the benefit of systems that need pthread.h
+ # to be included early to correctly detect threadsafe functions.
+ # Such functions must guarantee themselves, though, that the usethreads
+ # and i_pthread have been defined, before calling protochk.
+ if test "$usethreads" = "$define" -a "$i_pthread" = "$define" -a "$pthread_h_first" = "$define" -a "$pthread_h_done" = ""; then
+ echo "#include <pthread.h>" >> try.c
+ pthread_h_done=yes
+ fi
shift 2
done
test "$prototype" = "$define" && echo '#define CAN_PROTOTYPE' >> try.c
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
set d_off64_t
eval $setvar
-: see if POSIX threads are available
-set pthread.h i_pthread
-eval $inhdr
-
-
-
-
: how to create joinable pthreads
if test "X$usethreads" = "X$define" -a "X$i_pthread" = "X$define"; then
echo " "
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
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
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
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
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
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
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
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
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
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
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
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
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
set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h
eval $hasproto
+: see if time exists
+echo " "
+if test "X$d_time" = X -o X"$timetype" = X; then
+ if set time val -f d_time; eval $csym; $val; then
+ echo 'time() found.' >&4
+ val="$define"
+ rp="What is the type returned by time() on this system?"
+ set time_t timetype long stdio.h sys/types.h
+ eval $typedef_ask
+ else
+ echo 'time() not found, hope that will do.' >&4
+ val="$undef"
+ timetype='int';
+ fi
+ set d_time
+ eval $setvar
+fi
+
: see if this is a sys/times.h system
set sys/times.h i_systimes
eval $inhdr
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
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
''|[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*)
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);
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"
;;
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'
-: see if time exists
-echo " "
-if test "X$d_time" = X -o X"$timetype" = X; then
- if set time val -f d_time; eval $csym; $val; then
- echo 'time() found.' >&4
- val="$define"
- rp="What is the type returned by time() on this system?"
- set time_t timetype long stdio.h sys/types.h
- eval $typedef_ask
- else
- echo 'time() not found, hope that will do.' >&4
- val="$undef"
- timetype='int';
- fi
- set d_time
- eval $setvar
-fi
-
: see what type uids are declared as in the kernel
echo " "
echo "Looking for the type for user ids returned by getuid()."
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
# Special case: Add in threads/shared since it is not picked up by the
# recursive find above (and adding in general recursive finding breaks
# SDBM_File/sdbm). A.D. 10/25/2001.
-# Encode::XX need explicit mentions for the same reason.
-# --jhi 2002-03-04
-known_extensions="$known_extensions threads/shared Encode/CN Encode/JP Encode/KR Encode/TW"
+known_extensions="$known_extensions threads/shared"
set X $nonxs_extensions
shift
nonxs_extensions="$*"
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
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
baserev='$baserev'
bash='$bash'
bin='$bin'
-bincompat5005='$bincompat5005'
binexp='$binexp'
bison='$bison'
byacc='$byacc'
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'