# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Sat Mar 16 21:39:24 EET 2002 [metaconfig 3.0 PL70]
+# Generated on Thu Aug 1 18:53:48 CEST 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=''
d_gmtime_r=''
gmtime_r_proto=''
d_gnulibc=''
+gnulibc_version=''
d_hasmntopt=''
d_htonl=''
d_inetaton=''
mmaptype=''
d_modfl=''
d_modfl_pow32_bug=''
+d_modflproto=''
d_mprotect=''
d_msg=''
d_msgctl=''
perladmin=''
perlpath=''
d_nv_preserves_uv=''
-d_nv_preserves_uv_bits=''
i16size=''
i16type=''
i32size=''
i8type=''
ivsize=''
ivtype=''
+nv_preserves_uv_bits=''
nvsize=''
nvtype=''
u16size=''
fi
i_whoami=''
-ccname=''
-ccversion=''
-perllibs=''
-: set useposix=false in your hint file to disable the POSIX extension.
-useposix=true
-: set useopcode=false in your hint file to disable the Opcode extension.
-useopcode=true
-: Trailing extension. Override this in a hint file, if needed.
-: Extra object files, if any, needed on this platform.
-archobjs=''
-archname=''
: Possible local include directories to search.
: Set locincpth to "" in a hint file to defeat local include searches.
locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
: no include file wanted by default
inclwanted=''
+: Trailing extension. Override this in a hint file, if needed.
+: Extra object files, if any, needed on this platform.
+archobjs=''
groupstype=''
libnames=''
: change the next line if compiling for Xenix/286 on Xenix/386
libswanted=''
: some systems want to use only the non-versioned libso:s
ignore_versioned_solibs=''
+: full support for void wanted by default
+defvoidused=15
+
+ccname=''
+ccversion=''
+perllibs=''
+: set useposix=false in your hint file to disable the POSIX extension.
+useposix=true
+: set useopcode=false in your hint file to disable the Opcode extension.
+useopcode=true
archname64=''
ccflags_uselargefiles=''
ldflags_uselargefiles=''
libswanted_uselargefiles=''
: set usemultiplicity on the Configure command line to enable multiplicity.
: set usesocks on the Configure command line to enable socks.
+archname=''
: set usethreads on the Configure command line to enable threads.
usereentrant='undef'
-: full support for void wanted by default
-defvoidused=15
-
: List of libraries we want.
: If anyone needs -lnet, put it in a hint file.
libswanted='sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl'
zzz=''
uuu=undef
case "$yyy" in
- *=*) zzz=`echo $yyy|sed 's!=.*!!'`
+ *=*) zzz=`echo "$yyy"|sed 's!=.*!!'`
case "$zzz" in
*:*) zzz='' ;;
*) xxx=append
- zzz=" "`echo $yyy|sed 's!^[^=]*=!!'`
- yyy=`echo $yyy|sed 's!=.*!!'` ;;
+ zzz=" "`echo "$yyy"|sed 's!^[^=]*=!!'`
+ yyy=`echo "$yyy"|sed 's!=.*!!'` ;;
esac
;;
esac
case "$xxx" in
'') case "$yyy" in
- *:*) xxx=`echo $yyy|sed 's!:.*!!'`
- yyy=`echo $yyy|sed 's!^[^:]*:!!'`
- zzz=`echo $yyy|sed 's!^[^=]*=!!'`
- yyy=`echo $yyy|sed 's!=.*!!'` ;;
- *) xxx=`echo $yyy|sed 's!:.*!!'`
- yyy=`echo $yyy|sed 's!^[^:]*:!!'` ;;
+ *:*) xxx=`echo "$yyy"|sed 's!:.*!!'`
+ yyy=`echo "$yyy"|sed 's!^[^:]*:!!'`
+ zzz=`echo "$yyy"|sed 's!^[^=]*=!!'`
+ yyy=`echo "$yyy"|sed 's!=.*!!'` ;;
+ *) xxx=`echo "$yyy"|sed 's!:.*!!'`
+ yyy=`echo "$yyy"|sed 's!^[^:]*:!!'` ;;
esac
;;
esac
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'.
fi
fi
case "$ans" in
- [yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no ;;
+ [yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no;
+ if $test -f usethreads.cbu; then
+ $cat >&4 <<EOM
+
+*** However, any setting of the C compiler flags (e.g. for thread support)
+*** has been lost. It may be necessary to pass -Dcc=gcc to Configure
+*** (together with e.g. -Dusethreads).
+
+EOM
+ fi;;
esac
fi
fi
;;
next*) osname=next ;;
nonstop-ux) osname=nonstopux ;;
+ openbsd) osname=openbsd
+ osvers="$3"
+ ;;
POSIX-BC | posix-bc ) osname=posix-bc
osvers="$3"
;;
*) eval "$var=$val";;
esac'
+case "$usesocks" in
+$define|true|[yY]*) dflt='y';;
+*) dflt='n';;
+esac
+cat <<EOM
+
+Perl can be built to use the SOCKS proxy protocol library. To do so,
+Configure must be run with -Dusesocks. If you use SOCKS you also need
+to use the PerlIO abstraction layer, this will be implicitly selected.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+rp='Build Perl for SOCKS?'
+. ./myread
+case "$ans" in
+y|Y) val="$define" ;;
+*) val="$undef" ;;
+esac
+set usesocks
+eval $setvar
+
+case "$usesocks" in
+$define|true|[yY]*) useperlio="$define";;
+esac
+
+case "$useperlio" in
+$define|true|[yY]*|'') dflt='y';;
+*) dflt='n';;
+esac
+cat <<EOM
+
+Previous version of $package used the standard IO mechanisms as
+defined in <stdio.h>. Versions 5.003_02 and later of $package allow
+alternate IO mechanisms via the PerlIO abstraction layer, but the
+stdio mechanism is still available if needed. The abstraction layer
+can use AT&T's sfio (if you already have sfio installed) or regular stdio.
+Using PerlIO with sfio may cause problems with some extension modules.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+rp='Use the PerlIO abstraction layer?'
+. ./myread
+case "$ans" in
+y|Y)
+ val="$define"
+ ;;
+*)
+ echo "Ok, doing things the stdio way."
+ val="$undef"
+ ;;
+esac
+set useperlio
+eval $setvar
+
+case "$usesocks" in
+$define|true|[yY]*)
+ case "$useperlio" in
+ $define|true|[yY]*) ;;
+ *) cat >&4 <<EOM
+
+You are using the SOCKS proxy protocol library which means that you
+should also use the PerlIO layer. You may be headed for trouble.
+
+EOM
+ ;;
+ esac
+ ;;
+esac
+
+
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*)
+ case "$useperlio" in
+ "$define") dflt='y' ;;
+ *) dflt='n' ;;
+ esac
+ ;;
+ *) 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 5.5.640, Perl has two different internal threading implementations,
-the 5.005 version (5005threads) and an interpreter-based version
-(ithreads) that has one interpreter per thread. Both are very
-experimental. This arrangement exists to help developers work out
-which one is better.
+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.
-If you're a casual user, you probably don't want interpreter-threads
-at this time. But if you do, the 'threads' module allows their use,
-and the 'Thread' module offers an interface to both 5005threads and
-ithreads (whichever has been configured).
EOM
: Default to ithreads unless overridden on command line or with
: old config.sh
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
+if test X"$usethreads" = "X$define" -a "X$useperlio" = "Xundef"; then
+ cat >&4 <<EOF
+***
+*** To build with ithreads you must also use the PerlIO layer.
+*** Cannot continue, aborting.
+***
+EOF
+ exit 1
+fi
+
case "$d_oldpthreads" in
'') : Configure tests would be welcome here. For now, assume undef.
val="$undef" ;;
'') ccname="$cc" ;;
esac
+# gcc 3.1 complains about adding -Idirectories that it already knows about,
+# so we will take those off from locincpth.
+case "$gccversion" in
+3*)
+ echo "main(){}">try.c
+ for incdir in `$cc -v -c try.c 2>&1 | \
+ sed '1,/^#include <\.\.\.>/d;/^End of search list/,$d;s/^ //'` ; do
+ locincpth=`echo $locincpth | sed s!$incdir!!`
+ done
+ $rm -f try try.*
+esac
: decide how portable to be. Allow command line overrides.
case "$d_portable" in
case "$fn" in
*\(*)
- expr $fn : '.*(\(.*\)).*' | $tr ',' $trnl >getfile.ok
+ : getfile will accept an answer from the comma-separated list
+ : enclosed in parentheses even if it does not meet other criteria.
+ expr "$fn" : '.*(\(.*\)).*' | $tr ',' $trnl >getfile.ok
fn=`echo $fn | sed 's/(.*)//'`
;;
esac
'') firstmakefile='makefile';;
esac
-case "$usesocks" in
-$define|true|[yY]*) dflt='y';;
-*) dflt='n';;
-esac
-cat <<EOM
-
-Perl can be built to use the SOCKS proxy protocol library. To do so,
-Configure must be run with -Dusesocks. If you use SOCKS you also need
-to use the PerlIO abstraction layer, this will be implicitly selected.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-rp='Build Perl for SOCKS?'
-. ./myread
-case "$ans" in
-y|Y) val="$define" ;;
-*) val="$undef" ;;
-esac
-set usesocks
-eval $setvar
-
-case "$usesocks" in
-$define|true|[yY]*) useperlio="$define";;
-esac
-
: Looking for optional libraries
echo " "
echo "Checking for optional libraries..." >&4
esac
$rm -f try try.*
-: check for void type
+: check for long long
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
+echo "Checking to see if you have long long..." >&4
+echo 'int main() { long long x = 7; return 0; }' > try.c
+set try
+if eval $compile; then
+ val="$define"
+ echo "You have long long."
+else
+ val="$undef"
+ echo "You do not have long long."
+fi
+$rm try.*
+set d_longlong
+eval $setvar
-#if TRY & 4
- if(goo == moo) {
- exit(0);
- }
-#endif
- exit(0);
+: check for length of long long
+case "${d_longlong}${longlongsize}" in
+$define)
+ echo " "
+ echo "Checking to see how big your long longs are..." >&4
+ $cat >try.c <<'EOCP'
+#include <stdio.h>
+int main()
+{
+ printf("%d\n", (int)sizeof(long long));
+ return(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
+ set try
+ if eval $compile_ok; then
+ longlongsize=`$run ./try`
+ echo "Your long longs are $longlongsize bytes long."
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
+ dflt='8'
+ echo " "
+ echo "(I can't seem to compile the test program. Guessing...)"
+ rp="What is the size of a long long (in bytes)?"
+ . ./myread
+ longlongsize="$ans"
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
-echo 'int main() { long long x = 7; return 0; }' > try.c
-set try
-if eval $compile; then
- val="$define"
- echo "You have long long."
-else
- val="$undef"
- echo "You do not have long long."
-fi
-$rm try.*
-set d_longlong
-eval $setvar
-
-: check for length of long long
-case "${d_longlong}${longlongsize}" in
-$define)
- echo " "
- echo "Checking to see how big your long longs are..." >&4
- $cat >try.c <<'EOCP'
-#include <stdio.h>
-int main()
-{
- printf("%d\n", (int)sizeof(long long));
- return(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- longlongsize=`$run ./try`
- echo "Your long longs are $longlongsize bytes long."
- else
- dflt='8'
- echo " "
- echo "(I can't seem to compile the test program. Guessing...)"
- rp="What is the size of a long long (in bytes)?"
- . ./myread
- longlongsize="$ans"
- fi
- if $test "X$longsize" = "X$longlongsize"; then
- echo "(That isn't any different from an ordinary long.)"
- fi
- ;;
+ if $test "X$longsize" = "X$longlongsize"; then
+ echo "(That isn't any different from an ordinary long.)"
+ fi
+ ;;
esac
$rm -f try.* try
;;
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
echo " "
echo "Checking for GNU C Library..." >&4
-cat >try.c <<EOM
+cat >try.c <<'EOCP'
+/* Find out version of GNU C library. __GLIBC__ and __GLIBC_MINOR__
+ alone are insufficient to distinguish different versions, such as
+ 2.0.6 and 2.0.7. The function gnu_get_libc_version() appeared in
+ libc version 2.1.0. A. Dougherty, June 3, 2002.
+*/
#include <stdio.h>
-int main()
+int main(void)
{
#ifdef __GLIBC__
- exit(0);
+# ifdef __GLIBC_MINOR__
+# if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
+# include <gnu/libc-version.h>
+ printf("%s\n", gnu_get_libc_version());
+# else
+ printf("%d.%d\n", __GLIBC__, __GLIBC_MINOR__);
+# endif
+# else
+ printf("%d\n", __GLIBC__);
+# endif
+ return 0;
#else
- exit(1);
+ return 1;
#endif
}
-EOM
+EOCP
set try
-if eval $compile_ok && $run ./try; then
+if eval $compile_ok && $run ./try > glibc.ver; then
val="$define"
- echo "You are using the GNU C Library"
+ gnulibc_version=`$cat glibc.ver`
+ echo "You are using the GNU C Library version $gnulibc_version"
else
val="$undef"
+ gnulibc_version=''
echo "You are not using the GNU C Library"
fi
-$rm -f try try.*
+$rm -f try try.* glibc.ver
set d_gnulibc
eval $setvar
$echo $n ".$c"
$grep fprintf libc.tmp > libc.ptf
xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
-xrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
+xrun='eval "<libc.tmp $com >libc.list"; echo "done." >&4'
xxx='[ADTSIW]'
if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx *_[_.]*//p' -e 's/^.* $xxx *//p'";\
eval $xscan;\
set modfl d_modfl
eval $inlibc
+
+hasproto='varname=$1; func=$2; shift; shift;
+while $test $# -ge 2; do
+ case "$1" in
+ $define) echo "#include <$2>";;
+ esac ;
+ shift 2;
+done > try.c;
+$cppstdin $cppflags $cppminus < try.c > tryout.c 2>/dev/null;
+if $contains "$func.*(" tryout.c >/dev/null 2>&1; then
+ echo "$func() prototype found.";
+ val="$define";
+else
+ echo "$func() prototype NOT found.";
+ val="$undef";
+fi;
+set $varname;
+eval $setvar;
+$rm -f try.c tryout.c'
+
+: see if prototype for modfl is available
+echo " "
+set d_modflproto modfl math.h
+eval $hasproto
+
d_modfl_pow32_bug="$undef"
case "$d_longdbl$d_modfl" in
$cat >try.c <<EOCP
#include <math.h>
#include <stdio.h>
+EOCP
+if $test "X$d_modflproto" != "X$define"; then
+ $cat >>try.c <<EOCP
+/* Sigh. many current glibcs provide the function, but do not prototype it. */
+long double modfl (long double, long double *);
+EOCP
+fi
+$cat >>try.c <<EOCP
int main() {
long double nv = 4294967303.15;
long double v, w;
uselongdouble=$undef
fi
-case "$useperlio" in
-$define|true|[yY]*|'') dflt='y';;
-*) dflt='n';;
-esac
-cat <<EOM
-
-Previous version of $package used the standard IO mechanisms as
-defined in <stdio.h>. Versions 5.003_02 and later of $package allow
-alternate IO mechanisms via the PerlIO abstraction layer, but the
-stdio mechanism is still available if needed. The abstraction layer
-can use AT&T's sfio (if you already have sfio installed) or regular stdio.
-Using PerlIO with sfio may cause problems with some extension modules.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-rp='Use the PerlIO abstraction layer?'
-. ./myread
-case "$ans" in
-y|Y)
- val="$define"
- ;;
-*)
- echo "Ok, doing things the stdio way."
- val="$undef"
- ;;
-esac
-set useperlio
-eval $setvar
-
-case "$usesocks" in
-$define|true|[yY]*)
- case "$useperlio" in
- $define|true|[yY]*) ;;
- *) cat >&4 <<EOM
-
-You are using the SOCKS proxy protocol library which means that you
-should also use the PerlIO layer. You may be headed for trouble.
-
-EOM
- ;;
- esac
- ;;
-esac
-
-
: determine the architecture name
echo " "
if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
'')
dflt=`./loc . /usr/local /usr/local /local /opt /usr`
;;
+*?/)
+ dflt=`echo "$prefix" | sed 's/.$//'`
+ ;;
*)
dflt="$prefix"
;;
installarchlib="$archlibexp"
fi
+: see if setuid scripts can be secure
+$cat <<EOM
-: 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
+Some kernels have a bug that prevents setuid #! scripts from being
+secure. Some sites have disabled setuid #! scripts because of this.
+
+First let's decide if your kernel supports secure setuid #! scripts.
+(If setuid #! scripts would be secure but have been disabled anyway,
+don't say that they are secure if asked.)
+
+EOM
+
+val="$undef"
+if $test -d /dev/fd; then
+ echo "#!$ls" >reflect
+ chmod +x,u+s reflect
+ ./reflect >flect 2>&1
+ if $contains "/dev/fd" flect >/dev/null; then
+ echo "Congratulations, your kernel has secure setuid scripts!" >&4
+ val="$define"
+ else
+ $cat <<EOM
+If you are not sure if they are secure, I can check but I'll need a
+username and password different from the one you are using right now.
+If you don't have such a username or don't want me to test, simply
+enter 'none'.
+
+EOM
+ rp='Other username to test security of setuid scripts with?'
+ dflt='none'
+ . ./myread
+ case "$ans" in
+ n|none)
+ case "$d_suidsafe" in
+ '') echo "I'll assume setuid scripts are *not* secure." >&4
+ dflt=n;;
+ "$undef")
+ echo "Well, the $hint value is *not* secure." >&4
+ dflt=n;;
+ *) echo "Well, the $hint value *is* secure." >&4
+ dflt=y;;
+ esac
+ ;;
+ *)
+ $rm -f reflect flect
+ echo "#!$ls" >reflect
+ chmod +x,u+s reflect
+ echo >flect
+ chmod a+w flect
+ echo '"su" will (probably) prompt you for '"$ans's password."
+ su $ans -c './reflect >flect'
+ if $contains "/dev/fd" flect >/dev/null; then
+ echo "Okay, it looks like setuid scripts are secure." >&4
+ dflt=y
+ else
+ echo "I don't think setuid scripts are secure." >&4
+ dflt=n
+ fi
+ ;;
+ esac
+ rp='Does your kernel have *secure* setuid scripts?'
+ . ./myread
+ case "$ans" in
+ [yY]*) val="$define";;
+ *) val="$undef";;
+ esac
+ fi
+else
+ echo "I don't think setuid scripts are secure (no /dev/fd directory)." >&4
+ echo "(That's for file descriptors, not floppy disks.)"
+ val="$undef"
+fi
+set d_suidsafe
+eval $setvar
-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.
+$rm -f reflect flect
+
+: now see if they want to do setuid emulation
+echo " "
+val="$undef"
+case "$d_suidsafe" in
+"$define")
+ val="$undef"
+ echo "No need to emulate SUID scripts since they are secure here." >&4
+ ;;
+*)
+ $cat <<EOM
+Some systems have disabled setuid scripts, especially systems where
+setuid scripts cannot be secure. On systems where setuid scripts have
+been disabled, the setuid/setgid bits on scripts are currently
+useless. It is possible for $package to detect those bits and emulate
+setuid/setgid in a secure fashion. This emulation will only work if
+setuid scripts have been disabled in your kernel.
EOM
- case "$bincompat5005$d_bincompat5005" in
- *"$undef"*) dflt=n ;;
- *) dflt=y ;;
+ case "$d_dosuid" in
+ "$define") dflt=y ;;
+ *) dflt=n ;;
esac
- rp='Binary compatibility with Perl 5.005?'
+ rp="Do you want to do setuid/setgid emulation?"
. ./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"
- ;;
+ [yY]*) val="$define";;
+ *) val="$undef";;
esac
;;
esac
+set d_dosuid
+eval $setvar
+
+: see if this is a malloc.h system
+set malloc.h i_malloc
+eval $inhdr
+
+: see if stdlib is available
+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
-
-: see if setuid scripts can be secure
-$cat <<EOM
-
-Some kernels have a bug that prevents setuid #! scripts from being
-secure. Some sites have disabled setuid #! scripts because of this.
-
-First let's decide if your kernel supports secure setuid #! scripts.
-(If setuid #! scripts would be secure but have been disabled anyway,
-don't say that they are secure if asked.)
+*** 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
-val="$undef"
-if $test -d /dev/fd; then
- echo "#!$ls" >reflect
- chmod +x,u+s reflect
- ./reflect >flect 2>&1
- if $contains "/dev/fd" flect >/dev/null; then
- echo "Congratulations, your kernel has secure setuid scripts!" >&4
- val="$define"
- else
- $cat <<EOM
-If you are not sure if they are secure, I can check but I'll need a
-username and password different from the one you are using right now.
-If you don't have such a username or don't want me to test, simply
-enter 'none'.
+*** Downgrading from maximal 64-bitness to using 64-bit integers.
EOM
- rp='Other username to test security of setuid scripts with?'
- dflt='none'
- . ./myread
- case "$ans" in
- n|none)
- case "$d_suidsafe" in
- '') echo "I'll assume setuid scripts are *not* secure." >&4
- dflt=n;;
- "$undef")
- echo "Well, the $hint value is *not* secure." >&4
- dflt=n;;
- *) echo "Well, the $hint value *is* secure." >&4
- dflt=y;;
- esac
- ;;
- *)
- $rm -f reflect flect
- echo "#!$ls" >reflect
- chmod +x,u+s reflect
- echo >flect
- chmod a+w flect
- echo '"su" will (probably) prompt you for '"$ans's password."
- su $ans -c './reflect >flect'
- if $contains "/dev/fd" flect >/dev/null; then
- echo "Okay, it looks like setuid scripts are secure." >&4
- dflt=y
- else
- echo "I don't think setuid scripts are secure." >&4
- dflt=n
- fi
+ use64bitint="$define"
;;
esac
- rp='Does your kernel have *secure* setuid scripts?'
- . ./myread
- case "$ans" in
- [yY]*) val="$define";;
- *) val="$undef";;
- esac
- fi
-else
- echo "I don't think setuid scripts are secure (no /dev/fd directory)." >&4
- echo "(That's for file descriptors, not floppy disks.)"
- val="$undef"
-fi
-set d_suidsafe
-eval $setvar
-
-$rm -f reflect flect
-
-: now see if they want to do setuid emulation
-echo " "
-val="$undef"
-case "$d_suidsafe" in
-"$define")
- val="$undef"
- echo "No need to emulate SUID scripts since they are secure here." >&4
- ;;
-*)
- $cat <<EOM
-Some systems have disabled setuid scripts, especially systems where
-setuid scripts cannot be secure. On systems where setuid scripts have
-been disabled, the setuid/setgid bits on scripts are currently
-useless. It is possible for $package to detect those bits and emulate
-setuid/setgid in a secure fashion. This emulation will only work if
-setuid scripts have been disabled in your kernel.
-
-EOM
- case "$d_dosuid" in
- "$define") dflt=y ;;
- *) dflt=n ;;
- esac
- rp="Do you want to do setuid/setgid emulation?"
- . ./myread
- case "$ans" in
- [yY]*) val="$define";;
- *) val="$undef";;
+ ;;
esac
;;
esac
-set d_dosuid
-eval $setvar
-
-: see if this is a malloc.h system
-set malloc.h i_malloc
-eval $inhdr
-: see if stdlib is available
-set stdlib.h i_stdlib
-eval $inhdr
: determine which malloc to compile in
echo " "
''|' ') dflt=none ;;
esac
case "$dflt" in
-5.005) case "$bincompat5005" in
- $define|true|[yY]*) ;;
- *) dflt=none ;;
- esac
- ;;
+5.005) dflt=none ;;
esac
-$cat <<'EOM'
+$cat <<EOM
In order to ease the process of upgrading, this version of perl
can be configured to use modules built and installed with earlier
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
chmod +x protochk
$eunicefix protochk
-hasproto='varname=$1; func=$2; shift; shift;
-while $test $# -ge 2; do
- case "$1" in
- $define) echo "#include <$2>";;
- esac ;
- shift 2;
-done > try.c;
-$cppstdin $cppflags $cppminus < try.c > tryout.c 2>/dev/null;
-if $contains "$func.*(" tryout.c >/dev/null 2>&1; then
- echo "$func() prototype found.";
- val="$define";
-else
- echo "$func() prototype NOT found.";
- val="$undef";
-fi;
-set $varname;
-eval $setvar;
-$rm -f try.c tryout.c'
-
: see if sys/types.h has to be included
set sys/types.h i_systypes
eval $inhdr
eval $inlibc
case "$d_asctime_r" in
"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h"
+ 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
./protochk "extern $try" $hdrs && asctime_r_proto=I_SBI ;;
esac
case "$asctime_r_proto" in
- '') d_asctime_r=undef
+ ''|0) d_asctime_r=undef
asctime_r_proto=0
echo "Disabling asctime_r, cannot determine prototype." >&4 ;;
* ) case "$asctime_r_proto" in
*) case "$usethreads" in
define) echo "asctime_r has no prototype, not using it." >&4 ;;
esac
+ d_asctime_r=undef
+ asctime_r_proto=0
;;
esac
;;
echo 'Checking to see if your C compiler knows about "const"...' >&4
$cat >const.c <<'EOCP'
typedef struct spug { int drokk; } spug;
-int main()
+main()
{
const char *foo;
const spug y;
./protochk "extern $try" $hdrs && crypt_r_proto=B_CCS ;;
esac
case "$crypt_r_proto" in
- '') d_crypt_r=undef
+ ''|0) try='char* crypt_r(const char*, const char*, CRYPTD*);'
+ ./protochk "extern $try" $hdrs && crypt_r_proto=B_CCD ;;
+ esac
+ case "$crypt_r_proto" in
+ ''|0) d_crypt_r=undef
crypt_r_proto=0
echo "Disabling crypt_r, cannot determine prototype." >&4 ;;
* ) case "$crypt_r_proto" in
*) case "$usethreads" in
define) echo "crypt_r has no prototype, not using it." >&4 ;;
esac
+ d_crypt_r=undef
+ crypt_r_proto=0
;;
esac
;;
eval $inlibc
case "$d_ctermid_r" in
"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_stdio stdio.h"
+ hdrs="$i_systypes sys/types.h define stdio.h "
case "$d_ctermid_r_proto:$usethreads" in
":define") d_ctermid_r_proto=define
set d_ctermid_r_proto ctermid_r $hdrs
./protochk "extern $try" $hdrs && ctermid_r_proto=B_B ;;
esac
case "$ctermid_r_proto" in
- '') d_ctermid_r=undef
+ ''|0) d_ctermid_r=undef
ctermid_r_proto=0
echo "Disabling ctermid_r, cannot determine prototype." >&4 ;;
* ) case "$ctermid_r_proto" in
*) case "$usethreads" in
define) echo "ctermid_r has no prototype, not using it." >&4 ;;
esac
+ d_ctermid_r=undef
+ ctermid_r_proto=0
;;
esac
;;
eval $inlibc
case "$d_ctime_r" in
"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h"
+ 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
./protochk "extern $try" $hdrs && ctime_r_proto=I_SBI ;;
esac
case "$ctime_r_proto" in
- '') d_ctime_r=undef
+ ''|0) d_ctime_r=undef
ctime_r_proto=0
echo "Disabling ctime_r, cannot determine prototype." >&4 ;;
* ) case "$ctime_r_proto" in
*) case "$usethreads" in
define) echo "ctime_r has no prototype, not using it." >&4 ;;
esac
+ d_ctime_r=undef
+ ctime_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && drand48_r_proto=I_ST ;;
esac
case "$drand48_r_proto" in
- '') d_drand48_r=undef
+ ''|0) d_drand48_r=undef
drand48_r_proto=0
echo "Disabling drand48_r, cannot determine prototype." >&4 ;;
* ) case "$drand48_r_proto" in
*) case "$usethreads" in
define) echo "drand48_r has no prototype, not using it." >&4 ;;
esac
+ d_drand48_r=undef
+ drand48_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && endgrent_r_proto=V_H ;;
esac
case "$endgrent_r_proto" in
- '') d_endgrent_r=undef
+ ''|0) d_endgrent_r=undef
endgrent_r_proto=0
echo "Disabling endgrent_r, cannot determine prototype." >&4 ;;
* ) case "$endgrent_r_proto" in
*) case "$usethreads" in
define) echo "endgrent_r has no prototype, not using it." >&4 ;;
esac
+ d_endgrent_r=undef
+ endgrent_r_proto=0
;;
esac
;;
define)
case "$endhostent_r_proto" in
''|0) try='int endhostent_r(struct hostent_data*);'
- ./protochk "extern $try" $hdrs && endhostent_r_proto=I_S ;;
+ ./protochk "extern $try" $hdrs && endhostent_r_proto=I_D ;;
esac
case "$endhostent_r_proto" in
''|0) try='void endhostent_r(struct hostent_data*);'
- ./protochk "extern $try" $hdrs && endhostent_r_proto=V_S ;;
+ ./protochk "extern $try" $hdrs && endhostent_r_proto=V_D ;;
esac
case "$endhostent_r_proto" in
- '') d_endhostent_r=undef
+ ''|0) d_endhostent_r=undef
endhostent_r_proto=0
echo "Disabling endhostent_r, cannot determine prototype." >&4 ;;
* ) case "$endhostent_r_proto" in
*) case "$usethreads" in
define) echo "endhostent_r has no prototype, not using it." >&4 ;;
esac
+ d_endhostent_r=undef
+ endhostent_r_proto=0
;;
esac
;;
define)
case "$endnetent_r_proto" in
''|0) try='int endnetent_r(struct netent_data*);'
- ./protochk "extern $try" $hdrs && endnetent_r_proto=I_S ;;
+ ./protochk "extern $try" $hdrs && endnetent_r_proto=I_D ;;
esac
case "$endnetent_r_proto" in
''|0) try='void endnetent_r(struct netent_data*);'
- ./protochk "extern $try" $hdrs && endnetent_r_proto=V_S ;;
+ ./protochk "extern $try" $hdrs && endnetent_r_proto=V_D ;;
esac
case "$endnetent_r_proto" in
- '') d_endnetent_r=undef
+ ''|0) d_endnetent_r=undef
endnetent_r_proto=0
echo "Disabling endnetent_r, cannot determine prototype." >&4 ;;
* ) case "$endnetent_r_proto" in
*) case "$usethreads" in
define) echo "endnetent_r has no prototype, not using it." >&4 ;;
esac
+ d_endnetent_r=undef
+ endnetent_r_proto=0
;;
esac
;;
define)
case "$endprotoent_r_proto" in
''|0) try='int endprotoent_r(struct protoent_data*);'
- ./protochk "extern $try" $hdrs && endprotoent_r_proto=I_S ;;
+ ./protochk "extern $try" $hdrs && endprotoent_r_proto=I_D ;;
esac
case "$endprotoent_r_proto" in
''|0) try='void endprotoent_r(struct protoent_data*);'
- ./protochk "extern $try" $hdrs && endprotoent_r_proto=V_S ;;
+ ./protochk "extern $try" $hdrs && endprotoent_r_proto=V_D ;;
esac
case "$endprotoent_r_proto" in
- '') d_endprotoent_r=undef
+ ''|0) d_endprotoent_r=undef
endprotoent_r_proto=0
echo "Disabling endprotoent_r, cannot determine prototype." >&4 ;;
* ) case "$endprotoent_r_proto" in
*) case "$usethreads" in
define) echo "endprotoent_r has no prototype, not using it." >&4 ;;
esac
+ d_endprotoent_r=undef
+ endprotoent_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && endpwent_r_proto=V_H ;;
esac
case "$endpwent_r_proto" in
- '') d_endpwent_r=undef
+ ''|0) d_endpwent_r=undef
endpwent_r_proto=0
echo "Disabling endpwent_r, cannot determine prototype." >&4 ;;
* ) case "$endpwent_r_proto" in
*) case "$usethreads" in
define) echo "endpwent_r has no prototype, not using it." >&4 ;;
esac
+ d_endpwent_r=undef
+ endpwent_r_proto=0
;;
esac
;;
define)
case "$endservent_r_proto" in
''|0) try='int endservent_r(struct servent_data*);'
- ./protochk "extern $try" $hdrs && endservent_r_proto=I_S ;;
+ ./protochk "extern $try" $hdrs && endservent_r_proto=I_D ;;
esac
case "$endservent_r_proto" in
''|0) try='void endservent_r(struct servent_data*);'
- ./protochk "extern $try" $hdrs && endservent_r_proto=V_S ;;
+ ./protochk "extern $try" $hdrs && endservent_r_proto=V_D ;;
esac
case "$endservent_r_proto" in
- '') d_endservent_r=undef
+ ''|0) d_endservent_r=undef
endservent_r_proto=0
echo "Disabling endservent_r, cannot determine prototype." >&4 ;;
* ) case "$endservent_r_proto" in
*) case "$usethreads" in
define) echo "endservent_r has no prototype, not using it." >&4 ;;
esac
+ d_endservent_r=undef
+ endservent_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getgrent_r_proto=I_SBIH ;;
esac
case "$getgrent_r_proto" in
- '') d_getgrent_r=undef
+ ''|0) d_getgrent_r=undef
getgrent_r_proto=0
echo "Disabling getgrent_r, cannot determine prototype." >&4 ;;
* ) case "$getgrent_r_proto" in
*) case "$usethreads" in
define) echo "getgrent_r has no prototype, not using it." >&4 ;;
esac
+ d_getgrent_r=undef
+ getgrent_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getgrgid_r_proto=S_TSBI ;;
esac
case "$getgrgid_r_proto" in
- '') d_getgrgid_r=undef
+ ''|0) d_getgrgid_r=undef
getgrgid_r_proto=0
echo "Disabling getgrgid_r, cannot determine prototype." >&4 ;;
* ) case "$getgrgid_r_proto" in
*) case "$usethreads" in
define) echo "getgrgid_r has no prototype, not using it." >&4 ;;
esac
+ d_getgrgid_r=undef
+ getgrgid_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getgrnam_r_proto=S_CSBI ;;
esac
case "$getgrnam_r_proto" in
- '') d_getgrnam_r=undef
+ ''|0) d_getgrnam_r=undef
getgrnam_r_proto=0
echo "Disabling getgrnam_r, cannot determine prototype." >&4 ;;
* ) case "$getgrnam_r_proto" in
*) case "$usethreads" in
define) echo "getgrnam_r has no prototype, not using it." >&4 ;;
esac
+ d_getgrnam_r=undef
+ getgrnam_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && gethostbyaddr_r_proto=I_CII ;;
esac
case "$gethostbyaddr_r_proto" in
- '') d_gethostbyaddr_r=undef
+ ''|0) d_gethostbyaddr_r=undef
gethostbyaddr_r_proto=0
echo "Disabling gethostbyaddr_r, cannot determine prototype." >&4 ;;
* ) case "$gethostbyaddr_r_proto" in
*) case "$usethreads" in
define) echo "gethostbyaddr_r has no prototype, not using it." >&4 ;;
esac
+ d_gethostbyaddr_r=undef
+ gethostbyaddr_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && gethostbyname_r_proto=I_CSD ;;
esac
case "$gethostbyname_r_proto" in
- '') d_gethostbyname_r=undef
+ ''|0) d_gethostbyname_r=undef
gethostbyname_r_proto=0
echo "Disabling gethostbyname_r, cannot determine prototype." >&4 ;;
* ) case "$gethostbyname_r_proto" in
*) case "$usethreads" in
define) echo "gethostbyname_r has no prototype, not using it." >&4 ;;
esac
+ d_gethostbyname_r=undef
+ gethostbyname_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && gethostent_r_proto=I_SD ;;
esac
case "$gethostent_r_proto" in
- '') d_gethostent_r=undef
+ ''|0) d_gethostent_r=undef
gethostent_r_proto=0
echo "Disabling gethostent_r, cannot determine prototype." >&4 ;;
* ) case "$gethostent_r_proto" in
*) case "$usethreads" in
define) echo "gethostent_r has no prototype, not using it." >&4 ;;
esac
+ d_gethostent_r=undef
+ gethostent_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getlogin_r_proto=B_BI ;;
esac
case "$getlogin_r_proto" in
- '') d_getlogin_r=undef
+ ''|0) d_getlogin_r=undef
getlogin_r_proto=0
echo "Disabling getlogin_r, cannot determine prototype." >&4 ;;
* ) case "$getlogin_r_proto" in
*) case "$usethreads" in
define) echo "getlogin_r has no prototype, not using it." >&4 ;;
esac
+ d_getlogin_r=undef
+ getlogin_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getnetbyaddr_r_proto=I_IISD ;;
esac
case "$getnetbyaddr_r_proto" in
- '') d_getnetbyaddr_r=undef
+ ''|0) d_getnetbyaddr_r=undef
getnetbyaddr_r_proto=0
echo "Disabling getnetbyaddr_r, cannot determine prototype." >&4 ;;
* ) case "$getnetbyaddr_r_proto" in
*) case "$usethreads" in
define) echo "getnetbyaddr_r has no prototype, not using it." >&4 ;;
esac
+ d_getnetbyaddr_r=undef
+ getnetbyaddr_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getnetbyname_r_proto=I_CSD ;;
esac
case "$getnetbyname_r_proto" in
- '') d_getnetbyname_r=undef
+ ''|0) d_getnetbyname_r=undef
getnetbyname_r_proto=0
echo "Disabling getnetbyname_r, cannot determine prototype." >&4 ;;
* ) case "$getnetbyname_r_proto" in
*) case "$usethreads" in
define) echo "getnetbyname_r has no prototype, not using it." >&4 ;;
esac
+ d_getnetbyname_r=undef
+ getnetbyname_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getnetent_r_proto=I_SD ;;
esac
case "$getnetent_r_proto" in
- '') d_getnetent_r=undef
+ ''|0) d_getnetent_r=undef
getnetent_r_proto=0
echo "Disabling getnetent_r, cannot determine prototype." >&4 ;;
* ) case "$getnetent_r_proto" in
*) case "$usethreads" in
define) echo "getnetent_r has no prototype, not using it." >&4 ;;
esac
+ d_getnetent_r=undef
+ getnetent_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getprotobyname_r_proto=I_CSD ;;
esac
case "$getprotobyname_r_proto" in
- '') d_getprotobyname_r=undef
+ ''|0) d_getprotobyname_r=undef
getprotobyname_r_proto=0
echo "Disabling getprotobyname_r, cannot determine prototype." >&4 ;;
* ) case "$getprotobyname_r_proto" in
*) case "$usethreads" in
define) echo "getprotobyname_r has no prototype, not using it." >&4 ;;
esac
+ d_getprotobyname_r=undef
+ getprotobyname_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getprotobynumber_r_proto=I_ISD ;;
esac
case "$getprotobynumber_r_proto" in
- '') d_getprotobynumber_r=undef
+ ''|0) d_getprotobynumber_r=undef
getprotobynumber_r_proto=0
echo "Disabling getprotobynumber_r, cannot determine prototype." >&4 ;;
* ) case "$getprotobynumber_r_proto" in
*) case "$usethreads" in
define) echo "getprotobynumber_r has no prototype, not using it." >&4 ;;
esac
+ d_getprotobynumber_r=undef
+ getprotobynumber_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getprotoent_r_proto=I_SD ;;
esac
case "$getprotoent_r_proto" in
- '') d_getprotoent_r=undef
+ ''|0) d_getprotoent_r=undef
getprotoent_r_proto=0
echo "Disabling getprotoent_r, cannot determine prototype." >&4 ;;
* ) case "$getprotoent_r_proto" in
*) case "$usethreads" in
define) echo "getprotoent_r has no prototype, not using it." >&4 ;;
esac
+ d_getprotoent_r=undef
+ getprotoent_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getpwent_r_proto=I_SBIH ;;
esac
case "$getpwent_r_proto" in
- '') d_getpwent_r=undef
+ ''|0) d_getpwent_r=undef
getpwent_r_proto=0
echo "Disabling getpwent_r, cannot determine prototype." >&4 ;;
* ) case "$getpwent_r_proto" in
*) case "$usethreads" in
define) echo "getpwent_r has no prototype, not using it." >&4 ;;
esac
+ d_getpwent_r=undef
+ getpwent_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getpwnam_r_proto=I_CSBI ;;
esac
case "$getpwnam_r_proto" in
- '') d_getpwnam_r=undef
+ ''|0) d_getpwnam_r=undef
getpwnam_r_proto=0
echo "Disabling getpwnam_r, cannot determine prototype." >&4 ;;
* ) case "$getpwnam_r_proto" in
*) case "$usethreads" in
define) echo "getpwnam_r has no prototype, not using it." >&4 ;;
esac
+ d_getpwnam_r=undef
+ getpwnam_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getpwuid_r_proto=S_TSBI ;;
esac
case "$getpwuid_r_proto" in
- '') d_getpwuid_r=undef
+ ''|0) d_getpwuid_r=undef
getpwuid_r_proto=0
echo "Disabling getpwuid_r, cannot determine prototype." >&4 ;;
* ) case "$getpwuid_r_proto" in
*) case "$usethreads" in
define) echo "getpwuid_r has no prototype, not using it." >&4 ;;
esac
+ d_getpwuid_r=undef
+ getpwuid_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getservbyname_r_proto=I_CCSD ;;
esac
case "$getservbyname_r_proto" in
- '') d_getservbyname_r=undef
+ ''|0) d_getservbyname_r=undef
getservbyname_r_proto=0
echo "Disabling getservbyname_r, cannot determine prototype." >&4 ;;
* ) case "$getservbyname_r_proto" in
*) case "$usethreads" in
define) echo "getservbyname_r has no prototype, not using it." >&4 ;;
esac
+ d_getservbyname_r=undef
+ getservbyname_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getservbyport_r_proto=I_ICSD ;;
esac
case "$getservbyport_r_proto" in
- '') d_getservbyport_r=undef
+ ''|0) d_getservbyport_r=undef
getservbyport_r_proto=0
echo "Disabling getservbyport_r, cannot determine prototype." >&4 ;;
* ) case "$getservbyport_r_proto" in
*) case "$usethreads" in
define) echo "getservbyport_r has no prototype, not using it." >&4 ;;
esac
+ d_getservbyport_r=undef
+ getservbyport_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getservent_r_proto=I_SD ;;
esac
case "$getservent_r_proto" in
- '') d_getservent_r=undef
+ ''|0) d_getservent_r=undef
getservent_r_proto=0
echo "Disabling getservent_r, cannot determine prototype." >&4 ;;
* ) case "$getservent_r_proto" in
*) case "$usethreads" in
define) echo "getservent_r has no prototype, not using it." >&4 ;;
esac
+ d_getservent_r=undef
+ getservent_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && getspnam_r_proto=S_CSBI ;;
esac
case "$getspnam_r_proto" in
- '') d_getspnam_r=undef
+ ''|0) d_getspnam_r=undef
getspnam_r_proto=0
echo "Disabling getspnam_r, cannot determine prototype." >&4 ;;
* ) case "$getspnam_r_proto" in
*) case "$usethreads" in
define) echo "getspnam_r has no prototype, not using it." >&4 ;;
esac
+ d_getspnam_r=undef
+ getspnam_r_proto=0
;;
esac
;;
eval $inlibc
case "$d_gmtime_r" in
"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h"
+ 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
./protochk "extern $try" $hdrs && gmtime_r_proto=I_TS ;;
esac
case "$gmtime_r_proto" in
- '') d_gmtime_r=undef
+ ''|0) d_gmtime_r=undef
gmtime_r_proto=0
echo "Disabling gmtime_r, cannot determine prototype." >&4 ;;
* ) case "$gmtime_r_proto" in
*) case "$usethreads" in
define) echo "gmtime_r has no prototype, not using it." >&4 ;;
esac
+ d_gmtime_r=undef
+ gmtime_r_proto=0
;;
esac
;;
eval $inlibc
case "$d_localtime_r" in
"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_time time.h"
+ 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
./protochk "extern $try" $hdrs && localtime_r_proto=I_TS ;;
esac
case "$localtime_r_proto" in
- '') d_localtime_r=undef
+ ''|0) d_localtime_r=undef
localtime_r_proto=0
echo "Disabling localtime_r, cannot determine prototype." >&4 ;;
* ) case "$localtime_r_proto" in
*) case "$usethreads" in
define) echo "localtime_r has no prototype, not using it." >&4 ;;
esac
+ d_localtime_r=undef
+ localtime_r_proto=0
;;
esac
;;
echo " "
echo 'Checking to see if your C compiler knows about "volatile"...' >&4
$cat >try.c <<'EOCP'
-int main()
+main()
{
typedef struct _goo_struct goo_struct;
goo_struct * volatile goo = ((goo_struct *)0);
d_nv_preserves_uv="$undef"
if eval $compile; then
- d_nv_preserves_uv_bits="`$run ./try`"
+ nv_preserves_uv_bits="`$run ./try`"
fi
-case "$d_nv_preserves_uv_bits" in
+case "$nv_preserves_uv_bits" in
\-[1-9]*)
- d_nv_preserves_uv_bits=`expr 0 - $d_nv_preserves_uv_bits`
- $echo "Your NVs can preserve all $d_nv_preserves_uv_bits bits of your UVs." 2>&1
+ nv_preserves_uv_bits=`expr 0 - $nv_preserves_uv_bits`
+ $echo "Your NVs can preserve all $nv_preserves_uv_bits bits of your UVs." 2>&1
d_nv_preserves_uv="$define"
;;
-[1-9]*) $echo "Your NVs can preserve only $d_nv_preserves_uv_bits bits of your UVs." 2>&1
+[1-9]*) $echo "Your NVs can preserve only $nv_preserves_uv_bits bits of your UVs." 2>&1
d_nv_preserves_uv="$undef" ;;
*) $echo "Can't figure out how many bits your NVs preserve." 2>&1
- d_nv_preserves_uv_bits="$undef" ;;
+ nv_preserves_uv_bits="$undef" ;;
esac
$rm -f try.* try
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 " "
./protochk "extern $try" $hdrs && random_r_proto=I_TS ;;
esac
case "$random_r_proto" in
- '') d_random_r=undef
+ ''|0) d_random_r=undef
random_r_proto=0
echo "Disabling random_r, cannot determine prototype." >&4 ;;
* ) case "$random_r_proto" in
*) case "$usethreads" in
define) echo "random_r has no prototype, not using it." >&4 ;;
esac
+ d_random_r=undef
+ random_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && readdir64_r_proto=I_TS ;;
esac
case "$readdir64_r_proto" in
- '') d_readdir64_r=undef
+ ''|0) d_readdir64_r=undef
readdir64_r_proto=0
echo "Disabling readdir64_r, cannot determine prototype." >&4 ;;
* ) case "$readdir64_r_proto" in
*) case "$usethreads" in
define) echo "readdir64_r has no prototype, not using it." >&4 ;;
esac
+ d_readdir64_r=undef
+ readdir64_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && readdir_r_proto=I_TS ;;
esac
case "$readdir_r_proto" in
- '') d_readdir_r=undef
+ ''|0) d_readdir_r=undef
readdir_r_proto=0
echo "Disabling readdir_r, cannot determine prototype." >&4 ;;
* ) case "$readdir_r_proto" in
*) case "$usethreads" in
define) echo "readdir_r has no prototype, not using it." >&4 ;;
esac
+ d_readdir_r=undef
+ readdir_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && setgrent_r_proto=V_H ;;
esac
case "$setgrent_r_proto" in
- '') d_setgrent_r=undef
+ ''|0) d_setgrent_r=undef
setgrent_r_proto=0
echo "Disabling setgrent_r, cannot determine prototype." >&4 ;;
* ) case "$setgrent_r_proto" in
*) case "$usethreads" in
define) echo "setgrent_r has no prototype, not using it." >&4 ;;
esac
+ d_setgrent_r=undef
+ setgrent_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && sethostent_r_proto=V_ID ;;
esac
case "$sethostent_r_proto" in
- '') d_sethostent_r=undef
+ ''|0) d_sethostent_r=undef
sethostent_r_proto=0
echo "Disabling sethostent_r, cannot determine prototype." >&4 ;;
* ) case "$sethostent_r_proto" in
*) case "$usethreads" in
define) echo "sethostent_r has no prototype, not using it." >&4 ;;
esac
+ d_sethostent_r=undef
+ sethostent_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && setlocale_r_proto=I_ICBI ;;
esac
case "$setlocale_r_proto" in
- '') d_setlocale_r=undef
+ ''|0) d_setlocale_r=undef
setlocale_r_proto=0
echo "Disabling setlocale_r, cannot determine prototype." >&4 ;;
* ) case "$setlocale_r_proto" in
*) case "$usethreads" in
define) echo "setlocale_r has no prototype, not using it." >&4 ;;
esac
+ d_setlocale_r=undef
+ setlocale_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && setnetent_r_proto=V_ID ;;
esac
case "$setnetent_r_proto" in
- '') d_setnetent_r=undef
+ ''|0) d_setnetent_r=undef
setnetent_r_proto=0
echo "Disabling setnetent_r, cannot determine prototype." >&4 ;;
* ) case "$setnetent_r_proto" in
*) case "$usethreads" in
define) echo "setnetent_r has no prototype, not using it." >&4 ;;
esac
+ d_setnetent_r=undef
+ setnetent_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && setprotoent_r_proto=V_ID ;;
esac
case "$setprotoent_r_proto" in
- '') d_setprotoent_r=undef
+ ''|0) d_setprotoent_r=undef
setprotoent_r_proto=0
echo "Disabling setprotoent_r, cannot determine prototype." >&4 ;;
* ) case "$setprotoent_r_proto" in
*) case "$usethreads" in
define) echo "setprotoent_r has no prototype, not using it." >&4 ;;
esac
+ d_setprotoent_r=undef
+ setprotoent_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && setpwent_r_proto=V_H ;;
esac
case "$setpwent_r_proto" in
- '') d_setpwent_r=undef
+ ''|0) d_setpwent_r=undef
setpwent_r_proto=0
echo "Disabling setpwent_r, cannot determine prototype." >&4 ;;
* ) case "$setpwent_r_proto" in
*) case "$usethreads" in
define) echo "setpwent_r has no prototype, not using it." >&4 ;;
esac
+ d_setpwent_r=undef
+ setpwent_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && setservent_r_proto=V_ID ;;
esac
case "$setservent_r_proto" in
- '') d_setservent_r=undef
+ ''|0) d_setservent_r=undef
setservent_r_proto=0
echo "Disabling setservent_r, cannot determine prototype." >&4 ;;
* ) case "$setservent_r_proto" in
*) case "$usethreads" in
define) echo "setservent_r has no prototype, not using it." >&4 ;;
esac
+ d_setservent_r=undef
+ setservent_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && srand48_r_proto=I_LS ;;
esac
case "$srand48_r_proto" in
- '') d_srand48_r=undef
+ ''|0) d_srand48_r=undef
srand48_r_proto=0
echo "Disabling srand48_r, cannot determine prototype." >&4 ;;
* ) case "$srand48_r_proto" in
*) case "$usethreads" in
define) echo "srand48_r has no prototype, not using it." >&4 ;;
esac
+ d_srand48_r=undef
+ srand48_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && srandom_r_proto=I_TS ;;
esac
case "$srandom_r_proto" in
- '') d_srandom_r=undef
+ ''|0) d_srandom_r=undef
srandom_r_proto=0
echo "Disabling srandom_r, cannot determine prototype." >&4 ;;
* ) case "$srandom_r_proto" in
*) case "$usethreads" in
define) echo "srandom_r has no prototype, not using it." >&4 ;;
esac
+ d_srandom_r=undef
+ srandom_r_proto=0
;;
esac
;;
echo "Your stdio doesn't appear very std."
fi
$rm -f try.c try
+
+# glibc 2.2.90 and above apparently change stdio streams so Perl's
+# direct buffer manipulation no longer works. The Configure tests
+# should be changed to correctly detect this, but until then,
+# the following check should at least let perl compile and run.
+# (This quick fix should be updated before 5.8.1.)
+# To be defensive, reject all unknown versions, and all versions > 2.2.9.
+# A. Dougherty, June 3, 2002.
+case "$d_gnulibc" in
+$define)
+ case "$gnulibc_version" in
+ 2.[01]*) ;;
+ 2.2) ;;
+ 2.2.[0-9]) ;;
+ *) echo "But I will not snoop inside glibc $gnulibc_version stdio buffers."
+ val="$undef"
+ ;;
+ esac
+ ;;
+esac
set d_stdstdio
eval $setvar
echo " "
echo "Checking to see if your C compiler can copy structs..." >&4
$cat >try.c <<'EOCP'
-int main()
+main()
{
struct blurfl {
int dyick;
./protochk "extern $try" $hdrs && strerror_r_proto=B_IBW ;;
esac
case "$strerror_r_proto" in
- '') d_strerror_r=undef
+ ''|0) d_strerror_r=undef
strerror_r_proto=0
echo "Disabling strerror_r, cannot determine prototype." >&4 ;;
* ) case "$strerror_r_proto" in
*) case "$usethreads" in
define) echo "strerror_r has no prototype, not using it." >&4 ;;
esac
+ d_strerror_r=undef
+ strerror_r_proto=0
;;
esac
;;
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
eval $inlibc
case "$d_tmpnam_r" in
"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_stdio stdio.h"
+ hdrs="$i_systypes sys/types.h define stdio.h "
case "$d_tmpnam_r_proto:$usethreads" in
":define") d_tmpnam_r_proto=define
set d_tmpnam_r_proto tmpnam_r $hdrs
./protochk "extern $try" $hdrs && tmpnam_r_proto=B_B ;;
esac
case "$tmpnam_r_proto" in
- '') d_tmpnam_r=undef
+ ''|0) d_tmpnam_r=undef
tmpnam_r_proto=0
echo "Disabling tmpnam_r, cannot determine prototype." >&4 ;;
* ) case "$tmpnam_r_proto" in
*) case "$usethreads" in
define) echo "tmpnam_r has no prototype, not using it." >&4 ;;
esac
+ d_tmpnam_r=undef
+ tmpnam_r_proto=0
;;
esac
;;
./protochk "extern $try" $hdrs && ttyname_r_proto=B_IBI ;;
esac
case "$ttyname_r_proto" in
- '') d_ttyname_r=undef
+ ''|0) d_ttyname_r=undef
ttyname_r_proto=0
echo "Disabling ttyname_r, cannot determine prototype." >&4 ;;
* ) case "$ttyname_r_proto" in
*) case "$usethreads" in
define) echo "ttyname_r has no prototype, not using it." >&4 ;;
esac
+ d_ttyname_r=undef
+ ttyname_r_proto=0
;;
esac
;;
''|[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"
;;
esac
fi
: locate the preferred pager for this system
+fn=f/
case "$pager" in
'')
dflt=''
'') dflt=/usr/ucb/more;;
esac
;;
-*) dflt="$pager";;
+*) dflt="$pager"
+ : Instruct ./getfile to trust the hinted or previous pager value,
+ : even if it does not begin with a slash. For example, on os2,
+ : pager might be cmd /c more. See comments in UU/getfile.
+ fn="f/($pager)"
+ ;;
esac
echo " "
-fn=f/
rp='What pager is used on your system?'
. ./getfile
pager="$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="$*"
case "$i_ndbm" in
$define)
case "$osname-$use64bitint" in
- cygwin-*|hpux-define)
+ hpux-define)
case "$libs" in
*-lndbm*) avail_ext="$avail_ext $xxx" ;;
esac
case "${i_dbm}${i_rpcsvcdbm}" in
*"${define}"*)
case "$osname-$use64bitint" in
- cygwin-*|hpux-define)
+ hpux-define)
case "$libs" in
*-ldbm*) avail_ext="$avail_ext $xxx" ;;
esac
esac
esac
;;
- threads|threads/shared)
- case "$usethreads" in
- true|$define|y)
- case "$useithreads" in
- $define|true|[yY]*) avail_ext="$avail_ext $xxx" ;;
- esac
+ XS/APItest|xs/apitest)
+ # This is just for testing. Skip it unless we have dynamic loading.
+
+ case "$usedl" in
+ $define) avail_ext="$avail_ext $xxx" ;;
esac
;;
+ XS/Typemap|xs/typemap)
+ # This is just for testing. Skip it unless we have dynamic loading.
+ case "$usedl" in
+ $define) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ threads|threads/shared)
+ # threads and threads::shared are special cases.
+ # To stop people from asking "Perl 5.8.0 was supposed
+ # to have this new fancy threads implementation but my
+ # perl doesn't have it" and from people trying to
+ # (re)install the threads module using CPAN.pm and
+ # CPAN.pm then offering to reinstall Perl 5.8.0,
+ # the threads.pm and threads/shared.pm will always be
+ # there, croaking informatively ("you need to rebuild
+ # all of Perl with threads, sorry") when threads haven't
+ # been compiled in.
+ # --jhi
+ avail_ext="$avail_ext $xxx"
+ ;;
IPC/SysV|ipc/sysv)
: XXX Do we need a useipcsysv variable here
case "${d_msg}${d_sem}${d_shm}" in
EOM
case "$dynamic_ext" in
- '') dflt="$avail_ext" ;;
+ '')
+ : Exclude those listed in static_ext
+ dflt=''
+ for xxx in $avail_ext; do
+ case " $static_ext " in
+ *" $xxx "*) ;;
+ *) dflt="$dflt $xxx" ;;
+ esac
+ done
+ set X $dflt
+ shift
+ dflt="$*"
+ ;;
*) dflt="$dynamic_ext"
# Perhaps we are reusing an old out-of-date config.sh.
case "$hint" in
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'
d_mmap='$d_mmap'
d_modfl='$d_modfl'
d_modfl_pow32_bug='$d_modfl_pow32_bug'
+d_modflproto='$d_modflproto'
d_mprotect='$d_mprotect'
d_msg='$d_msg'
d_msg_ctrunc='$d_msg_ctrunc'
d_nice='$d_nice'
d_nl_langinfo='$d_nl_langinfo'
d_nv_preserves_uv='$d_nv_preserves_uv'
-d_nv_preserves_uv_bits='$d_nv_preserves_uv_bits'
d_off64_t='$d_off64_t'
d_old_pthread_create_joinable='$d_old_pthread_create_joinable'
d_oldpthreads='$d_oldpthreads'
glibpth='$glibpth'
gmake='$gmake'
gmtime_r_proto='$gmtime_r_proto'
+gnulibc_version='$gnulibc_version'
grep='$grep'
groupcat='$groupcat'
groupstype='$groupstype'
nvEUformat='$nvEUformat'
nvFUformat='$nvFUformat'
nvGUformat='$nvGUformat'
+nv_preserves_uv_bits='$nv_preserves_uv_bits'
nveformat='$nveformat'
nvfformat='$nvfformat'
nvgformat='$nvgformat'