# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Mon Dec 4 19:08:33 CET 2006 [metaconfig 3.0 PL70]
+# Generated on Tue Jan 1 21:34:35 CET 2008 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
esac
;;
esac
+test -x "${newsh}" || unset newsh
: if needed set CDPATH to a harmless value that is not chatty
: avoid bash 2.02 problems with empty CDPATH.
lib_ext=''
obj_ext=''
path_sep=''
+rm_try=''
afs=''
afsroot=''
alignbytes=''
cf_email=''
cf_by=''
cf_time=''
-charsize=''
contains=''
cpp_stuff=''
cpplast=''
d_shmdt=''
d_shmget=''
d_sigaction=''
+d_signbit=''
d_sigprocmask=''
d_sigsetjmp=''
usesitecustomize=''
d_usleep=''
d_usleepproto=''
d_ustat=''
+d_pseudofork=''
d_vfork=''
usevfork=''
d_voidsig=''
html3direxp=''
installhtml3dir=''
i_arpainet=''
+i_assert=''
i_crypt=''
db_hashtype=''
db_prefixtype=''
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"
-locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
-:
-: no include file wanted by default
-inclwanted=''
-
-: Enable -DEBUGGING and -DDEBUGGING from the command line
-EBUGGING=''
-DEBUGGING=old
-
groupstype=''
libnames=''
: change the next line if compiling for Xenix/286 on Xenix/386
glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
test -f /shlib/libc.so && glibpth="/shlib $glibpth"
+test -d /usr/lib64 && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64"
: Private path used by Configure to find libraries. Its value
: is prepended to libpth. This variable takes care of special
siteman1dir=''
siteman3dir=''
sitescript=''
+: set usethreads on the Configure command line to enable threads.
+usereentrant='undef'
+: full support for void wanted by default
+defvoidused=15
+
+: 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"
+locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
+:
+: no include file wanted by default
+inclwanted=''
+
+: Enable -DEBUGGING and -DDEBUGGING from the command line
+EBUGGING=''
+DEBUGGING=old
+
+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.
-: 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 extra -lxxx, put those in a hint file.
libswanted="sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun"
fi
cd UU
shift;;
+ --help|\
-h) shift; error=true;;
-r) shift; reuseval=true;;
-s) shift; silent=true; realsilent=true;;
-D : define symbol to have some value:
-D symbol symbol gets the value 'define'
-D symbol=value symbol gets the value 'value'
+ common used examples (see INSTALL for more info):
+ -Duse64bitint use 64bit integers
+ -Duse64bitall use 64bit integers and pointers
+ -Dusethreads use thread support
+ -Dinc_version_list=none do not include older perl trees in @INC
+ -DEBUGGING=none DEBUGGING options
+ -Dcc=gcc choose your compiler
+ -Dprefix=/opt/perl5 choose your destination
-E : stop at the end of questions, after having produced config.sh.
-K : do not use unless you know what you are doing.
-O : let -D and -U override definitions from loaded configuration file.
-U : undefine symbol:
-U symbol symbol gets the value 'undef'
-U symbol= symbol gets completely empty
+ e.g.: -Uversiononly
-A : manipulate symbol after the platform specific hints have been applied:
- -A symbol=value append " "value to symbol
- -A append:symbol=value append value to symbol
- -A define:symbol=value define symbol to have value
- -A clear:symbol define symbol to be ''
- -A define:symbol define symbol to be 'define'
- -A eval:symbol=value define symbol to be eval of value
- -A prepend:symbol=value prepend value to symbol
- -A undef:symbol define symbol to be 'undef'
- -A undef:symbol= define symbol to be ''
+ -A append:symbol=value append value to symbol
+ -A symbol=value like append:, but with a separating space
+ -A define:symbol=value define symbol to have value
+ -A clear:symbol define symbol to be ''
+ -A define:symbol define symbol to be 'define'
+ -A eval:symbol=value define symbol to be eval of value
+ -A prepend:symbol=value prepend value to symbol
+ -A undef:symbol define symbol to be 'undef'
+ -A undef:symbol= define symbol to be ''
+ e.g.: -A prepend:libswanted='cl pthread '
+ -A ccflags=-DSOME_MACRO
-V : print version number and exit (with a zero status).
EOM
exit 1
;;
esac
+# This question was auctioned at YAPC::Europe-2007 in Vienna
+# I never promised you could answer it. I only auctioned the question.
+cat <<FOO
+The following message is sponsored by
+
+ Dresden.pm<--The stars should be here.
+
+Dear Perl user, system administrator or package
+maintainer, the Perl community sends greetings to
+you. Do you (emblematical) greet back [Y/n]? n
+
+FOO
+
cat <<EOS >trygcc
$startsh
EOS
case "$cc" in
*gcc*) trygcc=no ;;
esac
- case "`$cc -v -c try.c 2>&1`" in
- *gcc*) trygcc=no ;;
- esac
+ # Skip this test because it gives a false match on output like:
+ # ./trygcc: line 23: cc: command not found
+ # case "`$cc -v -c try.c 2>&1`" in
+ # *gcc*) trygcc=no ;;
+ # esac
if $test X"$trygcc" = Xyes; then
if gcc -o try -c try.c; then
echo " "
echo "You seem to have a working gcc, though." >&4
- rp="Would you like to use it?"
- dflt=y
+ # Switching compilers may undo the work of hints files.
+ # The most common problem is -D_REENTRANT for threads.
+ # This heuristic catches that case, but gets false positives
+ # if -Dusethreads was not actually specified. Better to
+ # bail out here with a useful message than fail
+ # mysteriously later. Should we perhaps just try to
+ # re-invoke Configure -Dcc=gcc config_args ?
+ if $test -f usethreads.cbu; then
+ $cat >&4 <<EOM
+
+*** However, any setting of the C compiler flags (e.g. for thread support)
+*** will be lost. It may be necessary for you to restart Configure and
+*** add -Dcc=gcc to your Configure command line.
+
+EOM
+ rp="Would you like to go ahead and try gcc anyway?"
+ dflt=n
+ else
+ rp="Would you like to use it?"
+ dflt=y
+ fi
if $test -f myread; then
. ./myread
else
fi
case "$ans" in
[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
$test -z "$myuname" && myuname=`hostname 2>/dev/null`
# tr '[A-Z]' '[a-z]' would not work in EBCDIC
# because the A-Z/a-z are not consecutive.
-myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \
+myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e "s,['/],,g" | \
./tr '[A-Z]' '[a-z]' | $tr $trnl ' '`
newmyuname="$myuname"
dflt=n
api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h`
api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h`
api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h`
- perl_patchlevel=`egrep 'define PERL_PATCHNUM [0-9][0-9]|,"MAINT[0-9][0-9]*"' $rsrc/patchlevel.h|sed 's/[^0-9]//g'`
+ perl_patchlevel=`egrep ',"(MAINT|SMOKE)[0-9][0-9]*"' $rsrc/patchlevel.h|tail -1|sed 's/[^0-9]//g'`
else
revision=0
patchlevel=0
else
: perl-5.9.x and later
- use5005threads="$undef"
- case "$usethreads" in
- $define)
- : Default to ithreads unless overridden on command line or with
- : old config.sh
- dflt='y'
- case "$useithreads" in
- $undef|false|[nN]*) dflt='n';;
- esac
- rp='Use the newer interpreter-based ithreads?'
- . ./myread
- case "$ans" in
- y|Y) val="$define" ;;
- *) val="$undef" ;;
+ if test X"$usethreads" = "X$define"; then
+ case "$use5005threads" in
+ $define|true|[yY]*)
+ $cat >&4 <<EOM
+
+5.005 threads has been removed for 5.10. Perl will be built using ithreads.
+
+EOM
+ ;;
esac
- set useithreads
- eval $setvar
- ;;
- *)
- useithreads="$undef"
- ;;
- esac
+ fi
+ use5005threads="$undef"
+ useithreads="$usethreads"
fi
if test X"$usethreads" = "X$define" -a "X$useperlio" = "Xundef"; then
obj_ext=$_o
path_sep=$p_
+rm_try="$rm -f try try$_exe a.out .out try.[cho] try.$_o core core.try* try.core*"
+
: Which makefile gets called first. This is used by make depend.
case "$firstmakefile" in
'') firstmakefile='makefile';;
both|$define) dflt='-DDEBUGGING'
esac
+: argument order is deliberate, as the flag will start with - which set could
+: think is an option
+checkccflag='check=$1; flag=$2; callback=$3;
+echo " ";
+echo "Checking if your compiler accepts $flag" 2>&1;
+echo "int main(void) { return 0; }" > gcctest.c;
+if $cc -O2 $flag -o gcctest gcctest.c 2>gcctest.out && ./gcctest; then
+ echo "Yes, it does." 2>&1;
+ if $test -s gcctest.out ; then
+ echo "But your platform does not like it:";
+ cat gcctest.out;
+ else
+ case "$ccflags" in
+ *$check*)
+ echo "Leaving current flags $ccflags alone." 2>&1
+ ;;
+ *) dflt="$dflt $flag";
+ eval $callback
+ ;;
+ esac
+ fi
+else
+ echo "Nope, it does not, but that is ok." 2>&1;
+fi
+'
+
: We will not override a previous value, but we might want to
: augment a hint file
case "$hint" in
*-g*:old) dflt="$dflt -DDEBUGGING";;
esac
case "$gccversion" in
- 2*) if test -d /etc/conf/kconfig.d &&
+ 2*) if $test -d /etc/conf/kconfig.d &&
$contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
then
# Interactive Systems (ISC) POSIX mode.
case "$gccversion" in
1*) ;;
2.[0-8]*) ;;
- ?*) echo " "
- echo "Checking if your compiler accepts -fno-strict-aliasing" 2>&1
- echo 'int main(void) { return 0; }' > gcctest.c
- if $cc -O2 -fno-strict-aliasing -o gcctest gcctest.c; then
- echo "Yes, it does." 2>&1
- case "$ccflags" in
- *strict-aliasing*)
- echo "Leaving current flags $ccflags alone." 2>&1
- ;;
- *) dflt="$dflt -fno-strict-aliasing" ;;
- esac
- else
- echo "Nope, it doesn't, but that's ok." 2>&1
- fi
+ ?*) set strict-aliasing -fno-strict-aliasing
+ eval $checkccflag
;;
esac
# For gcc, adding -pipe speeds up compilations for some, but apparently
# some assemblers can't read from stdin. (It also slows down compilations
# in other cases, but those are apparently rarer these days.) AD 5/2004.
case "$gccversion" in
- ?*) echo " "
- echo "Checking if your compiler accepts -pipe" 2>&1
- echo 'int main(void) { return 0; }' > gcctest.c
- if $cc -pipe -o gcctest gcctest.c; then
- echo "Yes, it does." 2>&1
- case "$ccflags" in
- *-pipe*)
- echo "Leaving current flags $ccflags alone." 2>&1
- ;;
- *) dflt="$dflt -pipe" ;;
- esac
- else
- echo "Nope, it doesn't, but that's ok." 2>&1
- fi
+ ?*) set pipe -pipe
+ eval $checkccflag
+ ;;
+ esac
+
+ # on x86_64 (at least) we require an extra library (libssp) in the
+ # link command line. This library is not named, so I infer that it is
+ # an implementation detail that may change. Hence the safest approach
+ # is to add the flag to the flags passed to the compiler at link time,
+ # as that way the compiler can do the right implementation dependant
+ # thing. (NWC)
+ case "$gccversion" in
+ ?*) set stack-protector -fstack-protector 'ldflags="$ldflags -fstack-protector"'
+ eval $checkccflag
;;
esac
;;
;;
n) echo "OK, that should do.";;
esac
-$rm -f try try.* core
+$rm_try gcctest.out
: define a shorthand compile call
compile='
fi
;;
esac
-$rm -f try try.*
+$rm_try
: check for long long
echo " "
val="$undef"
echo "You do not have long long."
fi
-$rm try.*
+$rm_try
set d_longlong
eval $setvar
fi
if $test "X$longsize" = "X$longlongsize"; then
echo "(That isn't any different from an ordinary long.)"
- fi
+ fi
;;
esac
-$rm -f try.* try
+$rm_try
: see if inttypes.h is available
: we want a real compile instead of Inhdr because some systems
echo "<inttypes.h> NOT found." >&4
val="$undef"
fi
-$rm -f try.c try
+$rm_try
set i_inttypes
eval $setvar
val="$undef"
echo "You do not have int64_t."
fi
-$rm -f try try.*
+$rm_try
set d_int64_t
eval $setvar
fi
;;
esac
-$rm -f try.c try
+$rm_try
: check for long doubles
echo " "
val="$undef"
echo "You do not have long double."
fi
-$rm try.*
+$rm_try
set d_longdbl
eval $setvar
echo "That isn't any different from an ordinary double."
echo "I'll keep your setting anyway, but you may see some"
echo "harmless compilation warnings."
- fi
+ fi
;;
esac
-$rm -f try.* try
+$rm_try
: determine the architecture name
echo " "
echo "<malloc.h> NOT found." >&4
val="$undef"
fi
-$rm -f try.c try
+$rm_try
set i_malloc
eval $setvar
voidflags="$ans"
;;
esac
-$rm -f try.* .out
+$rm_try
: check for length of pointer
echo " "
fi
;;
esac
-$rm -f try.c try
+$rm_try
case "$use64bitall" in
"$define"|true|[yY]*)
case "$ptrsize" in
gnulibc_version=''
echo "You are not using the GNU C Library"
fi
-$rm -f try try.* glibc.ver
+$rm_try glibc.ver
set d_gnulibc
eval $setvar
set dld.h i_dld
eval $inhdr
+
+echo " "
+echo "Checking for C++..." >&4
+$cat >try.c <<'EOCP'
+#include <stdio.h>
+int main(void)
+{
+#ifdef __cplusplus
+ return 0;
+#else
+ return 1;
+#endif
+}
+EOCP
+set try
+if eval $compile_ok && $run ./try; then
+ val="$define"
+ echo "You are using a C++ compiler."
+else
+ val="$undef"
+ echo "You are not using a C++ compiler."
+fi
+$rm_try cplusplus$$
+set d_cplusplus
+eval $setvar
+
: is a C symbol defined?
csym='tlook=$1;
case "$3" in
case "$tx" in
yes)
tval=false;
+ case "$d_cplusplus" in
+ $define) extern_C=\"C\";;
+ esac;
if $test "$runnm" = true; then
if $contains $tlook $tf >/dev/null 2>&1; then
tval=true;
elif $test "$mistrustnm" = compile -o "$mistrustnm" = run; then
- echo "void *(*(p()))$tdc { extern void *$1$tdc; return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c;
+ echo "extern $extern_C void *$1$tdc; void *(*(p()))$tdc { return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c;
$cc -o try $optimize $ccflags $ldflags try.c >/dev/null 2>&1 $libs && tval=true;
$test "$mistrustnm" = run -a -x try && { $run ./try$_exe >/dev/null 2>&1 || tval=false; };
- $rm -f try$_exe try.c core core.* try.core;
+ $rm_try;
fi;
else
- echo "void *(*(p()))$tdc { extern void *$1$tdc; return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c;
+ echo "extern $extern_C void *$1$tdc; void *(*(p()))$tdc { return &$1; } int main() { if(p()) return(0); else return(1); }"> try.c;
$cc -o try $optimize $ccflags $ldflags try.c $libs >/dev/null 2>&1 && tval=true;
- $rm -f try$_exe try.c;
+ $rm_try;
fi;
;;
*)
esac;;
esac'
-
-echo " "
-echo "Checking for C++..." >&4
-cat >try.c <<'EOCP'
-#include <stdio.h>
-int main(void)
-{
-#ifdef __cplusplus
- printf("define\n");
-#else
- printf("undef\n");
-#endif
- return 0;
-}
-EOCP
-set try
-if eval $compile_ok && $run ./try >cplusplus$$; then
- val=`$cat cplusplus$$`
- echo "You are using a C++ compiler."
-else
- val="$undef"
- echo "You are not using a C++ compiler."
-fi
-$rm -f try try.* cplusplus$$
-set d_cplusplus
-eval $setvar
-
: see if dlopen exists
xxx_runnm="$runnm"
xxx_ccflags="$ccflags"
dflt='n'
usedl="$undef"
;;
-*)
+*)
dflt='n'
case "$d_dlopen" in
$define) dflt='y' ;;
;;
*) case "$osname" in
darwin) dflt='none' ;;
- svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;;
+ linux*|svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;;
*) dflt='-fpic' ;;
esac ;;
esac ;;
int main() {
char b[4];
int i = open("a.out",O_RDONLY);
- if(i == -1)
+ if(i == -1)
exit(1); /* fail */
if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F')
exit(0); /* succeed (yes, it's ELF) */
echo "I'll use ld to build dynamic libraries."
dflt='ld'
fi
- rm -f try.c a.out
+ $rm_try
;;
*) dflt="$ld"
;;
case "$gccversion" in
'') dflt="$dflt +vnocompatwarnings" ;;
esac
- ;;
- linux|irix*|gnu*) dflt='-shared' ;;
+ ;;
+ linux|irix*|gnu*) dflt="-shared $optimize" ;;
next) dflt='none' ;;
solaris) dflt='-G' ;;
sunos) dflt='-assert nodefinitions' ;;
int main()
{
printf("%d\n", (int)sizeof($lseektype));
- return(0);
+ return(0);
}
EOCP
set try
. ./myread
lseeksize="$ans"
fi
-$rm -f try.c try
+$rm_try
: see what type file positions are declared as in the library
rp="What is the type for file position used by fsetpos()?"
EOM
uselargefiles="$define"
;;
-esac
+esac
case "$lseeksize:$fpossize" in
8:8) cat <<EOM
int main()
{
printf("%d\n", (int)sizeof($lseektype));
- return(0);
+ return(0);
}
EOCP
set try
*_t) zzz="$fpostype" ;;
*) zzz="fpos_t" ;;
esac
- $echo $n "Rechecking the size of $zzz...$c" >&4
+ $echo $n "Rechecking the size of $zzz...$c" >&4
$cat > try.c <<EOCP
#include <sys/types.h>
#include <stdio.h>
. ./myread
fpossize="$ans"
fi
- $rm -f try.c try
+ $rm_try
fi
;;
esac
sSCNfldbl=$sPRIfldbl # expect consistency
fi
-$rm -f try try.*
+$rm_try
fi # d_longdbl
case "$sPRIfldbl" in
-'') d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef";
- d_PRIFUldbl="$undef"; d_PRIGUldbl="$undef"; d_PRIEUldbl="$undef";
+'') d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef";
+ d_PRIFUldbl="$undef"; d_PRIGUldbl="$undef"; d_PRIEUldbl="$undef";
d_SCNfldbl="$undef";
;;
-*) d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define";
- d_PRIFUldbl="$define"; d_PRIGUldbl="$define"; d_PRIEUldbl="$define";
+*) d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define";
+ d_PRIFUldbl="$define"; d_PRIGUldbl="$define"; d_PRIEUldbl="$define";
d_SCNfldbl="$define";
;;
esac
}
int main()
-{
- char buf[64];
+{
+ char buf[64];
buf[63] = '\0';
/* This must be 1st test on (which?) platform */
Gconvert((DOUBLETYPE)0.1, 8, 0, buf);
checkit("0.1", buf);
- Gconvert((DOUBLETYPE)0.01, 8, 0, buf);
+ Gconvert((DOUBLETYPE)0.01, 8, 0, buf);
checkit("0.01", buf);
- Gconvert((DOUBLETYPE)0.001, 8, 0, buf);
+ Gconvert((DOUBLETYPE)0.001, 8, 0, buf);
checkit("0.001", buf);
- Gconvert((DOUBLETYPE)0.0001, 8, 0, buf);
+ Gconvert((DOUBLETYPE)0.0001, 8, 0, buf);
checkit("0.0001", buf);
Gconvert((DOUBLETYPE)0.00009, 8, 0, buf);
else
checkit("9e-05", buf);
- Gconvert((DOUBLETYPE)1.0, 8, 0, buf);
+ Gconvert((DOUBLETYPE)1.0, 8, 0, buf);
checkit("1", buf);
- Gconvert((DOUBLETYPE)1.1, 8, 0, buf);
+ Gconvert((DOUBLETYPE)1.1, 8, 0, buf);
checkit("1.1", buf);
- Gconvert((DOUBLETYPE)1.01, 8, 0, buf);
+ Gconvert((DOUBLETYPE)1.01, 8, 0, buf);
checkit("1.01", buf);
- Gconvert((DOUBLETYPE)1.001, 8, 0, buf);
+ Gconvert((DOUBLETYPE)1.001, 8, 0, buf);
checkit("1.001", buf);
- Gconvert((DOUBLETYPE)1.0001, 8, 0, buf);
+ Gconvert((DOUBLETYPE)1.0001, 8, 0, buf);
checkit("1.0001", buf);
- Gconvert((DOUBLETYPE)1.00001, 8, 0, buf);
+ Gconvert((DOUBLETYPE)1.00001, 8, 0, buf);
checkit("1.00001", buf);
- Gconvert((DOUBLETYPE)1.000001, 8, 0, buf);
+ Gconvert((DOUBLETYPE)1.000001, 8, 0, buf);
checkit("1.000001", buf);
- Gconvert((DOUBLETYPE)0.0, 8, 0, buf);
+ Gconvert((DOUBLETYPE)0.0, 8, 0, buf);
checkit("0", buf);
- Gconvert((DOUBLETYPE)-1.0, 8, 0, buf);
+ Gconvert((DOUBLETYPE)-1.0, 8, 0, buf);
checkit("-1", buf);
/* Some Linux gcvt's give 1.e+5 here. */
- Gconvert((DOUBLETYPE)100000.0, 8, 0, buf);
+ Gconvert((DOUBLETYPE)100000.0, 8, 0, buf);
checkit("100000", buf);
-
+
/* Some Linux gcvt's give -1.e+5 here. */
- Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf);
+ Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf);
checkit("-100000", buf);
- Gconvert((DOUBLETYPE)123.456, 8, 0, buf);
+ Gconvert((DOUBLETYPE)123.456, 8, 0, buf);
checkit("123.456", buf);
/* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */
case $xxx_convert in
gcvt|gconvert|sprintf) xxx_list="$xxx_list $xxx_convert" ;;
*) echo "Discarding unrecognized gconvert_preference $xxx_convert" >&4 ;;
- esac
+ esac
done
: then add any others
for xxx_convert in gconvert gcvt sprintf; do
case "$xxx_list" in
*$xxx_convert*) ;;
*) xxx_list="$xxx_list $xxx_convert" ;;
- esac
+ esac
done
case "$d_longdbl$uselongdouble" in
for xxx_convert in $xxx_list; do
echo "Trying $xxx_convert..."
- $rm -f try try$_o
+ $rm -f try try$_o core
set try -DTRY_$xxx_convert
if eval $compile; then
echo "$xxx_convert() found." >&4
d_Gconvert='sprintf((b),"%.*g",(n),(double)(x))' ;;
*) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;;
esac
- ;;
+ ;;
esac
fi
+$rm_try
: see if _fwalk exists
set fwalk d__fwalk
ccflags="$ccflags"
prototype="$prototype"
define="$define"
-rm=$rm
+rm_try="$rm_try"
usethreads=$usethreads
i_pthread=$i_pthread
pthread_h_first=$pthread_h_first
$cat >> protochk <<'EOSH'
-$rm -f try.c
+$rm_try
foo="$1"
shift
while test $# -ge 2; do
echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c
$cc $optimize $ccflags -c try.c > /dev/null 2>&1
status=$?
-$rm -f try.[co]
+$rm_try
exit $status
EOSH
chmod +x protochk
fi;
set $varname;
eval $setvar;
-$rm -f try.c tryout.c'
+$rm_try tryout.c'
: see if sys/types.h has to be included
set sys/types.h i_systypes
fi;
set $varname;
eval $setvar;
-$rm -f try.c try.o'
+$rm_try'
: see if we should include time.h, sys/time.h, or both
echo " "
echo "We'll include <sys/time.h>." >&4;;
*) i_systime="$undef";;
esac
- $rm -f try.c try
+ $rm_try
fi
: see if struct tm knows about tm_zone
case "$i_systime$i_time" in
-*$define*)
+*$define*)
echo " "
echo "Checking to see if your struct tm has tm_zone field..." >&4
set d_tm_tm_zone tm tm_zone $i_systime sys/time.h $i_time time.h
esac
: see if struct tm knows about tm_gmtoff
case "$i_systime$i_time" in
-*$define*)
+*$define*)
echo " "
echo "Checking to see if your struct tm has tm_gmtoff field..." >&4
set d_tm_tm_gmtoff tm tm_gmtoff $i_systime sys/time.h $i_time time.h
esac
set d_bsdgetpgrp
eval $setvar
-$rm -f try try.*
+$rm_try
: see if setpgrp exists
set setpgrp d_setpgrp
esac
set d_bsdsetpgrp
eval $setvar
-$rm -f try try.*
+$rm_try
+
: Look for GCC-style __builtin_choose_expr
case "$d_builtin_choose_expr" in
'')
set d_builtin_choose_expr
eval $setvar
-$rm -f try.* try core core.try.*
+$rm_try
: Look for GCC-style __builtin_expect
case "$d_builtin_expect" in
set d_builtin_expect
eval $setvar
-$rm -f try.* try core core.try.*
+$rm_try
: see if bzero exists
set bzero d_bzero
echo "I couldn't compile and run the test program, so I assume that you don't have functional C99 variadic macros." >&4
d_c99_variadic_macros="$undef"
fi
- $rm -f try.* try core core.try.*
+ $rm_try
;;
*)
echo "You don't have <stdarg.h> and <stdlib.h>, so not checking for C99 variadic macros." >&4
char str[16];
signal(SIGFPE, blech);
- /* Don't let compiler optimize the test away. Store the number
+ /* Don't let compiler optimize the test away. Store the number
in a writable string for gcc to pass to sscanf under HP/UX.
*/
sprintf(str, "2147483647");
esac
set d_casti32
eval $setvar
-$rm -f try try.*
+$rm_try
: check for ability to cast negative floats to unsigned
echo " "
unsigned short ashort;
int result = 0;
char str[16];
-
+
/* Frustrate gcc-2.7.2's optimizer which failed this test with
a direct f = -123. assignment. gcc-2.8.0 reportedly
optimized the whole file away
*/
- /* Store the number in a writable string for gcc to pass to
+ /* Store the number in a writable string for gcc to pass to
sscanf under HP/UX.
*/
sprintf(str, "-123");
esac
set d_castneg
eval $setvar
-$rm -f try.*
+$rm_try
: see if vprintf exists
echo " "
echo 'vprintf() found.' >&4
val="$define"
$cat >try.c <<EOF
-#include <varargs.h>
+#$i_stdarg I_STDARG /* Only one of these can be defined by i_varhrd */
+#$i_varargs I_VARARGS
+
#$i_stdlib I_STDLIB
+#$i_unistd I_UNISTD
+
+#ifdef I_STDARG
+# include <stdarg.h>
+#else /* I_VARARGS */
+# include <varargs.h>
+#endif
+
+#ifdef I_UNISTD
+# include <unistd.h>
+#endif
+
#ifdef I_STDLIB
-#include <stdlib.h>
+# include <stdlib.h>
#endif
-int main() { xxx("foo"); }
+#include <stdio.h> /* vsprintf prototype */
+
+#ifdef I_STDARG
+void xxx(int n, ...)
+{
+ va_list args;
+ char buf[10];
+ va_start(args, n);
+ exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
+}
+int main() { xxx(1, "foo"); }
+
+#else /* I_VARARGS */
xxx(va_alist)
va_dcl
{
- va_list args;
- char buf[10];
-
- va_start(args);
- exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
+ va_list args;
+ char buf[10];
+ va_start(args);
+ exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
}
+int main() { xxx("foo"); }
+
+#endif
+
EOF
set try
- if eval $compile && $run ./try; then
- echo "Your vsprintf() returns (int)." >&4
- val2="$undef"
+ if eval $compile_ok; then
+ if $run ./try; then
+ echo "Your vsprintf() returns (int)." >&4
+ val2="$undef"
+ else
+ echo "Your vsprintf() returns (char*)." >&4
+ val2="$define"
+ fi
else
- echo "Your vsprintf() returns (char*)." >&4
- val2="$define"
+ echo 'I am unable to compile the vsprintf() test program.' >&4
+ # We shouldn't get here. If we do, assume the standard signature,
+ # not the old BSD one.
+ echo 'Guessing that vsprintf() returns (int).' >&4
+ val2="$undef"
fi
else
echo 'vprintf() NOT found.' >&4
- val="$undef"
- val2="$undef"
+ val="$undef"
+ val2="$undef"
fi
-$rm -f try try.*
+$rm_try
set d_vprintf
eval $setvar
val=$val2
fi;
set $varname;
eval $setvar;
-$rm -f try.c try.o'
+$rm_try'
socketlib=''
sockethdr=''
sockethdr="-I/usr/netinclude"
;;
esac
- echo "Found Berkeley sockets interface in lib$net." >&4
+ echo "Found Berkeley sockets interface in lib$net." >&4
if $contains setsockopt libc.list >/dev/null 2>&1; then
d_oldsock="$undef"
else
val="$define"
fi
set d_${enum}; eval $setvar
- $rm -f try.c try
+ $rm_try
done
: see if this is a sys/uio.h system
'struct dirent') guess2='struct direct' ;;
*) guess2='struct dirent' ;;
esac
-
+
if $contains "$guess1" try.c >/dev/null 2>&1; then
direntrytype="$guess1"
echo "Your directory entries are $direntrytype." >&4
. ./myread
direntrytype="$ans"
fi
-$rm -f try.c
-
+$rm_try
: see if the directory entry stores field length
echo " "
fi
set d_dirnamlen
eval $setvar
-$rm -f try.c
+$rm_try
: Look for DIR.dd_fd
case "$i_dirent" in
esac
set d_dir_dd_fd
eval $setvar
-$rm -f try try.*
+$rm_try
: see if this is an sysdir system
set sys/dir.h i_sysdir
fi
set d_open3
eval $setvar
-$rm -f try try.*
+$rm_try
: see which of string.h or strings.h is needed
echo " "
set i_fcntl
eval $setvar
+: see if fork exists
+set fork d_fork
+eval $inlibc
+
+: see if pipe exists
+set pipe d_pipe
+eval $inlibc
+
: check for non-blocking I/O stuff
case "$h_sysfile" in
true) echo "#include <sys/file.h>" > head.c;;
;;
*) echo "Using $hint value $o_nonblock.";;
esac
-$rm -f try try.* .out core
+$rm_try
echo " "
echo "Let's see what value errno gets from read() on a $o_nonblock file..." >&4
case "$eagain" in
'')
+ case "$d_fork:$d_pipe" in
+ define:define)
$cat head.c > try.c
$cat >>try.c <<EOCP
#include <errno.h>
#include <sys/types.h>
#include <signal.h>
-#include <stdio.h>
+#include <stdio.h>
#$i_stdlib I_STDLIB
#ifdef I_STDLIB
#include <stdlib.h>
echo "I can't compile the test program--assuming errno EAGAIN will do."
eagain=EAGAIN
fi
+ ;;
+ *) echo "Can't figure out how to test this--assuming errno EAGAIN will do."
+ eagain=EAGAIN
+ val="$define"
+ ;;
+ esac
set d_eofnblk
eval $setvar
;;
esac
;;
esac
-$rm -f try try.* .out core head.c mtry
+$rm_try head.c mtry
: see if _ptr and _cnt from stdio act std
echo " "
else
echo "Your stdio doesn't appear very std."
fi
-$rm -f try.c try
+$rm_try
# glibc 2.2.90 and above apparently change stdio streams so Perl's
# direct buffer manipulation no longer works. The Configure tests
if (cnt == FILE_cnt(fp)) {
puts("Pass_unchanged");
exit (0);
- }
+ }
if (FILE_cnt(fp) == (cnt - 42)) {
puts("Pass_changed");
exit (0);
else
echo "It seems we can't set ptr in your stdio. Nevermind." >&4
fi
- $rm -f try.c try
+ $rm_try
;;
esac
else
echo "However, it seems to be lacking the _base field."
fi
- $rm -f try.c try
+ $rm_try
;;
esac
set d_stdiobase
esac
set d_fcntl_can_lock
eval $setvar
-$rm -f try*
-
+$rm_try
: check for fd_set items
$cat <<EOM
d_fd_macros="$undef"
fi
fi
-$rm -f try try.*
+$rm_try
: see if fgetpos exists
set fgetpos d_fgetpos
set d_flockproto flock $i_sysfile sys/file.h
eval $hasproto
-: see if fork exists
-set fork d_fork
-eval $inlibc
-
: see if fp_class exists
set fp_class d_fp_class
eval $inlibc
8) echo "(Your fpos_t is 64 bits, so you could use that.)" ;;
esac
fi
-$rm -f try.* try
+$rm_try
set d_fpos64_t
eval $setvar
d_futimes="$undef"
: check for a working futimes
echo " "
-echo "Checking for a working futimes()" >&4
+echo "Checking if you have a working futimes()" >&4
$cat >try.c <<EOCP
#include <stdio.h>
#include <sys/time.h>
`$run ./try`
rc=$?
case "$rc" in
- 0) echo "Yes, it does" >&4
+ 0) echo "Yes, you have" >&4
d_futimes="$define"
;;
- *) echo "No, it has futimes, but it isn't working ($rc) (probably harmless)\n" >&4
+ *) echo "No, you have futimes, but it isn't working ($rc) (probably harmless)" >&4
;;
esac
else
- echo "No, it does not (probably harmless)\n" >&4
+ echo "No, it does not (probably harmless)" >&4
fi
-$rm -f try.* try core core.try.*
+$rm_try
: see if getcwd exists
set getcwd d_getcwd
echo "Yes, it does ($foo)" >&4
d_libm_lib_version="$define"
else
- echo "No, it does not (probably harmless)\n" >&4
+ echo "No, it does not (probably harmless)" >&4
fi
- $rm -f try.* try core core.try.*
+ $rm_try
;;
esac
EOCP
set try
if eval $compile; then
- if ./try; then
+ if $run ./try; then
d_localtime_r_needs_tzset=undef;
else
d_localtime_r_needs_tzset=define;
d_localtime_r_needs_tzset=undef;
;;
esac
-$rm -f try try.* core
+$rm_try
: see if localeconv exists
set localeconv d_locconv
Checking to see whether your modfl() is okay for large values...
EOM
$cat >try.c <<EOCP
-#include <math.h>
+#include <math.h>
#include <stdio.h>
EOCP
if $test "X$d_modflproto" != "X$define"; then
$cat >>try.c <<EOCP
-/* Sigh. many current glibcs provide the function, but do not prototype it. */
+/* Sigh. many current glibcs provide the function, but do not prototype it. */
long double modfl (long double, long double *);
EOCP
fi
int main() {
long double nv = 4294967303.15;
long double v, w;
- v = modfl(nv, &w);
+ v = modfl(nv, &w);
#ifdef __GLIBC__
printf("glibc");
#endif
d_modfl="$undef"
;;
esac
- $rm -f try.* try core core.try.*
+ $rm_try
else
echo "I cannot figure out whether your modfl() is okay, assuming it isn't."
d_modfl="$undef"
set nl_langinfo d_nl_langinfo
eval $inlibc
-: check for length of character
-echo " "
-case "$charsize" in
-'')
- echo "Checking to see how big your characters are (hey, you never know)..." >&4
- $cat >try.c <<EOCP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main()
-{
- printf("%d\n", (int)sizeof(char));
- exit(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- dflt=`$run ./try`
- else
- dflt='1'
- echo "(I can't seem to compile the test program. Guessing...)"
- fi
- ;;
-*)
- dflt="$charsize"
- ;;
-esac
-rp="What is the size of a character (in bytes)?"
-. ./myread
-charsize="$ans"
-$rm -f try.c try
-
: check for volatile keyword
echo " "
echo 'Checking to see if your C compiler knows about "volatile"...' >&4
fi
set d_volatile
eval $setvar
-$rm -f try.*
+$rm_try
echo " "
}
EOCP
-case "$i8type" in
-'') case "$charsize" in
- 1) i8type=char
- u8type="unsigned char"
- i8size=$charsize
- u8size=$charsize
- ;;
- esac
- ;;
-esac
-case "$i8type" in
-'') set try -DINT8
- if eval $compile; then
- case "`$run ./try`" in
- int8_t) i8type=int8_t
- u8type=uint8_t
- i8size=1
- u8size=1
- ;;
- esac
- fi
- ;;
-esac
-case "$i8type" in
-'') if $test $charsize -ge 1; then
- i8type=char
- u8type="unsigned char"
- i8size=$charsize
- u8size=$charsize
- fi
- ;;
-esac
+i8type="signed char"
+u8type="unsigned char"
+i8size=1
+u8size=1
case "$i16type" in
'') case "$shortsize" in
if (($uvtype)d != (u - 1))
break;
#ifdef SIGFPE
- if (bletched) {
+ if (bletched)
break;
#endif
- }
}
printf("%d\n", ((i == n) ? -n : i));
exit(0);
nv_preserves_uv_bits="`$run ./try`"
fi
case "$nv_preserves_uv_bits" in
-\-[1-9]*)
+\-[1-9]*)
nv_preserves_uv_bits=`expr 0 - $nv_preserves_uv_bits`
$echo "Your NVs can preserve all $nv_preserves_uv_bits bits of your UVs." 2>&1
d_nv_preserves_uv="$define"
[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
- nv_preserves_uv_bits="$undef" ;;
+ nv_preserves_uv_bits="0" ;;
esac
-
-$rm -f try.* try
+$rm_try
$echo "Checking whether NV 0.0 is all bits zero in memory..." >&4
: volatile so that the compiler has to store it out to memory.
printf("(gives %g)\n", d);
return 1;
}
-
+
#ifdef SIGFPE
if (bletched) {
printf("No - something bleched\n");
;;
esac
fi
-
-$rm -f try.* try
-
+$rm_try
: check for off64_t
echo " "
8) echo "(Your off_t is 64 bits, so you could use that.)" ;;
esac
fi
-$rm -f try.* try
+$rm_try
set d_off64_t
eval $setvar
: how to create joinable pthreads
if test "X$usethreads" = "X$define" -a "X$i_pthread" = "X$define"; then
echo " "
- echo "Checking what constant to use for creating joinable pthreads..." >&4
+ echo "Checking what constant to use for creating joinable pthreads..." >&4
$cat >try.c <<'EOCP'
#include <pthread.h>
int main() {
val=PTHREAD_CREATE_UNDETACHED
set old_pthread_create_joinable
eval $setvar
- else
+ else
set try -DJOINABLE=__UNDETACHED
if eval $compile; then
echo "You seem to use __UNDETACHED." >&4
fi
fi
fi
- $rm -f try try.*
+ $rm_try
else
d_old_pthread_create_joinable="$undef"
old_pthread_create_joinable=""
set pause d_pause
eval $inlibc
-: see if pipe exists
-set pipe d_pipe
-eval $inlibc
-
: see if poll exists
set poll d_poll
eval $inlibc
set d_procselfexe
eval $setvar
+: backward compatibility for d_hvfork
+if test X$d_hvfork != X; then
+ d_vfork="$d_hvfork"
+ d_hvfork=''
+fi
+: see if there is a vfork
+val=''
+set vfork val
+eval $inlibc
+
+d_pseudofork=$undef
+
+: Ok, but do we want to use it. vfork is reportedly unreliable in
+: perl on Solaris 2.x, and probably elsewhere.
+case "$val" in
+$define)
+ echo " "
+ case "$usevfork" in
+ false) dflt='n';;
+ *) dflt='y';;
+ esac
+ cat <<'EOM'
+
+Perl can only use a vfork() that doesn't suffer from strict
+restrictions on calling functions or modifying global data in
+the child. For example, glibc-2.1 contains such a vfork()
+that is unsuitable. If your system provides a proper fork()
+call, chances are that you do NOT want perl to use vfork().
+
+EOM
+ rp="Do you still want to use vfork()?"
+ . ./myread
+ case "$ans" in
+ y|Y) ;;
+ *)
+ echo "Ok, we won't use vfork()."
+ val="$undef"
+ ;;
+ esac
+ ;;
+esac
+set d_vfork
+eval $setvar
+case "$d_vfork" in
+$define) usevfork='true';;
+*) usevfork='false';;
+esac
+
: see whether the pthread_atfork exists
$cat >try.c <<EOP
#include <pthread.h>
esac
set d_pthread_yield
eval $setvar
-
case "$sched_yield" in
'') sched_yield=undef ;;
esac
-
-$rm -f try try.*
+$rm_try
: see if random_r exists
set random_r d_random_r
EOCP
set try
if eval $compile_ok; then
- if ./try 2>/dev/null; then
+ if $run ./try 2>/dev/null; then
echo "Yes, it can."
val="$define"
else
fi
;;
esac
- $rm -f try.* try core
+ $rm_try
;;
esac
set d_safebcpy
EOCP
set try
if eval $compile_ok; then
- if ./try 2>/dev/null; then
+ if $run ./try 2>/dev/null; then
echo "Yes, it can."
val="$define"
else
fi
;;
esac
- $rm -f try.* try core
+ $rm_try
;;
esac
set d_safemcpy
fi
;;
esac
-$rm -f try.* try core
+$rm_try
set d_sanemcmp
eval $setvar
echo "You do not have union semun in <sys/sem.h>." >&4
val="$undef"
fi
-$rm -f try try.c
+$rm_try
set d_union_semun
eval $setvar
case "$d_sem" in
$define)
echo " "
- $cat > try.h <<END
+ $cat > tryh.h <<END
#ifndef S_IRUSR
# ifdef S_IREAD
# define S_IRUSR S_IREAD
#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>
-#include "try.h"
+#include "tryh.h"
#ifndef errno
extern int errno;
#endif
semun) val="$define" ;;
esac
fi
- $rm -f try try.c
+ $rm_try
set d_semctl_semun
eval $setvar
;;
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/stat.h>
-#include "try.h"
+#include "tryh.h"
#include <stdio.h>
#include <errno.h>
#ifndef errno
semid_ds) val="$define" ;;
esac
fi
- $rm -f try try.c
+ $rm_try
set d_semctl_semid_ds
eval $setvar
;;
*) echo "You cannot use struct semid_ds* for semctl IPC_STAT." >&4
;;
esac
- $rm -f try.h
;;
*) val="$undef"
eval $setvar
;;
esac
+$rm_try tryh.h
: see if sendmsg exists
set sendmsg d_sendmsg
val="$undef"
fi
set d_sigaction; eval $setvar
-$rm -f try try$_o try.c
+$rm_try
+
+: see if this is a sunmath.h system
+set sunmath.h i_sunmath
+eval $inhdr
+
+: see if signbit exists
+$echo $n "Checking to see if you have signbit() available to work on $nvtype... $c" >&4
+$cat >try.c <<EOCP
+#$i_math I_MATH
+#$i_sunmath I_SUNMATH
+#ifdef I_MATH
+# include <math.h>
+#endif
+#ifdef I_SUNMATH /* Solaris special math library */
+# include <sunmath.h>
+#endif
+#define NV $nvtype
+int main(int argc, char **argv)
+{
+ NV x = 0.0;
+ NV y = -0.0;
+ if ((signbit(x) == 0) && (signbit(y) != 0))
+ return 0;
+ else
+ return 1;
+}
+EOCP
+val="$undef"
+set try
+if eval $compile; then
+ if $run ./try; then
+ $echo "Yes." >&4
+ val="$define"
+ else
+ $echo "Signbit seems to be available, but doesn't work as I expected."
+ $echo "I won't use it." >&4
+ val="$undef"
+ fi
+else
+ $echo "Nope." >&4
+ dflt="$undef"
+fi
+set d_signbit
+eval $setvar
+$rm_try
: see if sigprocmask exists
set sigprocmask d_sigprocmask
esac
set d_sigsetjmp
eval $setvar
-$rm -f try.c try
+$rm_try
: see if snprintf exists
set snprintf d_snprintf
d_snprintf="$undef"
d_vsnprintf="$undef"
fi
- $rm -f try.* try core core.try.*
+ $rm_try
;;
esac
;;
esac
fi
-
-$rm -f try.* try
+$rm_try
: see if srand48_r exists
set srand48_r d_srand48_r
esac
fi
done
- $rm -f try.* try$exe_ext
+ $rm_try
esac
case "$stdio_stream_array" in
'') $cat >&4 <<EOM
fi
set d_strctcpy
eval $setvar
-$rm -f try.*
+$rm_try
: see if strerror and/or sys_errlist[] exist
echo " "
d_strtoul="$undef"
;;
esac
+ else
+ echo "(I can't seem to compile the test program--assuming it doesn't)"
+ d_strtoul="$undef"
fi
;;
esac
d_strtoull="$undef"
;;
esac
+ else
+ echo "(I can't seem to compile the test program--assuming it doesn't)"
+ d_strtoull="$undef"
fi
;;
esac
d_strtouq="$undef"
;;
esac
+ else
+ echo "(I can't seem to compile the test program--assuming it doesn't)"
+ d_strtouq="$undef"
fi
;;
esac
EOCP
xxx_prompt=y
set try
- if eval $compile && ./try > /dev/null; then
+ if eval $compile && $run ./try > /dev/null; then
dflt=`$run ./try`
case "$dflt" in
[1-4][1-4][1-4][1-4]|12345678|87654321)
esac
;;
esac
- $rm -f try.c try
+ $rm_try
;;
esac
-
$cat <<EOM
Checking to see whether you can access character data unalignedly...
*) d_u32align="$define" ;;
esac
fi
-$rm -f core core.try.* try.core
+$rm_try
;;
esac
set ustat d_ustat
eval $inlibc
-: backward compatibility for d_hvfork
-if test X$d_hvfork != X; then
- d_vfork="$d_hvfork"
- d_hvfork=''
-fi
-: see if there is a vfork
-val=''
-set vfork val
-eval $inlibc
-
-: Ok, but do we want to use it. vfork is reportedly unreliable in
-: perl on Solaris 2.x, and probably elsewhere.
-case "$val" in
-$define)
- echo " "
- case "$usevfork" in
- false) dflt='n';;
- *) dflt='y';;
- esac
- cat <<'EOM'
-
-Perl can only use a vfork() that doesn't suffer from strict
-restrictions on calling functions or modifying global data in
-the child. For example, glibc-2.1 contains such a vfork()
-that is unsuitable. If your system provides a proper fork()
-call, chances are that you do NOT want perl to use vfork().
-
-EOM
- rp="Do you still want to use vfork()?"
- . ./myread
- case "$ans" in
- y|Y) ;;
- *)
- echo "Ok, we won't use vfork()."
- val="$undef"
- ;;
- esac
- ;;
-esac
-set d_vfork
-eval $setvar
-case "$d_vfork" in
-$define) usevfork='true';;
-*) usevfork='false';;
-esac
-
: see if closedir exists
set closedir d_closedir
eval $inlibc
#endif
#endif
#endif
-#endif
+#endif
int main() { return closedir(opendir(".")); }
EOM
set try
esac
set d_void_closedir
eval $setvar
-$rm -f try try.*
+$rm_try
+
: see if there is a wait4
set wait4 d_wait4
eval $inlibc
rp="Doubles must be aligned on a how-many-byte boundary?"
. ./myread
alignbytes="$ans"
- $rm -f try.c try
+ $rm_try
;;
esac
/* check that db.h & libdb are compatible */
if (DB_VERSION_MAJOR != Major || DB_VERSION_MINOR != Minor || DB_VERSION_PATCH != Patch) {
printf("db.h and libdb are incompatible.\n") ;
- exit(3);
+ exit(3);
}
printf("db.h and libdb are compatible.\n") ;
if (Version < 2003004) {
/* if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH < 5) { */
printf("Perl needs Berkeley DB 2.3.4 or greater.\n") ;
- exit(2);
+ exit(2);
}
exit(0);
;;
esac
fi
- $rm -f try.*
+ $rm_try
;;
esac
case "$i_db" in
define)
- : Check the return type needed for hash
+ : Check the return type needed for hash
echo " "
echo "Checking return type needed for hash for Berkeley DB ..." >&4
$cat >try.c <<EOCP
echo "Help: I can't seem to compile the db test program." >&4
echo "Something's wrong, but I'll assume you use $db_hashtype." >&4
fi
- $rm -f try.*
+ $rm_try
echo "Your version of Berkeley DB uses $db_hashtype for hash."
;;
*) db_hashtype=u_int32_t
esac
case "$i_db" in
define)
- : Check the return type needed for prefix
+ : Check the return type needed for prefix
echo " "
echo "Checking return type needed for prefix for Berkeley DB ..." >&4
cat >try.c <<EOCP
echo "Help: I can't seem to compile the db test program." >&4
echo "Something's wrong, but I'll assume you use $db_prefixtype." >&4
fi
- $rm -f try.*
+ $rm_try
echo "Your version of Berkeley DB uses $db_prefixtype for prefix."
;;
*) db_prefixtype='size_t'
;;
esac
-
: How can we generate normalized random numbers ?
echo " "
echo "Looking for a random number function..." >&4
rp="How many bits does your $randfunc() function produce?"
. ./myread
randbits="$ans"
- $rm -f try.c try
+ $rm_try
drand01="($randfunc() / (double) ((unsigned long)1 << $randbits))"
seedfunc="s$randfunc"
randseedtype=unsigned
echo "I'm unable to compile the test program." >&4
echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4
fi
-$rm -f try try.*
+$rm_try
set ebcdic
eval $setvar
# endif
# endif
# endif
-# endif
+# endif
# ifdef HAS_STDIO_STREAM_ARRAY
if (open_max > 0) {
long i;
STDIO_STREAM_ARRAY[i]._file < open_max &&
STDIO_STREAM_ARRAY[i]._flag)
fflush(&STDIO_STREAM_ARRAY[i]);
- }
+ }
}
# endif
#endif
fi
fi
fi
- $rm -f core try.core core.try.*
+ $rm_try
case "$fflushNULL" in
x) $cat >&4 <<EOM
Your fflush(NULL) works okay for output streams.
fflushall="`$cat try.out`"
fi
fi
- $rm -f core try.core core.try.*
+ $rm_try
case "$fflushall" in
x) $cat >&4 <<EOM
Whew. Flushing explicitly all the stdio streams works.
EOM
;;
esac
-$rm -f try.* try$exe_ext
+$rm_try
: Store the full pathname to the ar program for use in the C program
: Respect a hint or command line value for full_ar.
if $test X"$sPRId64" = X; then
echo "Cannot figure out how to print 64-bit integers." >&4
fi
-
-$rm -f try try.*
+$rm_try
fi
case "$sPRId64" in
-'') d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef";
- d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIXU64="$undef";
+'') d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef";
+ d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIXU64="$undef";
;;
-*) d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define";
- d_PRIo64="$define"; d_PRIx64="$define"; d_PRIXU64="$define";
+*) d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define";
+ d_PRIo64="$define"; d_PRIx64="$define"; d_PRIXU64="$define";
;;
esac
{
return vfprintf(f, fmt, *valp);
}
-
-int
+
+int
myvfprintf(FILE *f, const char *fmt, va_list val)
{
return ivfprintf(f, fmt, &val);
}
-
+
int
-myprintf(char *fmt, ...)
+myprintf(char *fmt, ...)
{
va_list val;
va_start(val, fmt);
- return myvfprintf(stdout, fmt, val);
-}
+ return myvfprintf(stdout, fmt, val);
+}
int
main(int ac, char **av)
{
signal(SIGSEGV, exit);
- myprintf("%s%cs all right, then\n", "that", '\'');
- exit(0);
+ myprintf("%s%cs all right, then\n", "that", '\'');
+ exit(0);
}
EOCP
set try
need_va_copy="$define"
;;
esac
- $rm -f try.* core core.* *.core *.core.*
+ $rm_try
;;
*) echo "You don't have <stdarg.h>, not checking for va_copy()." >&4
;;
fi
$rm -f foo* bar*
-: check for type of arguments to select.
+: check for type of arguments to select.
case "$selecttype" in
'') case "$d_select" in
$define)
Checking to see what type of arguments are accepted by select().
EOM
hdrs="$define sys/types.h
- $i_systime sys/time.h
+ $i_systime sys/time.h
$i_sysselct sys/select.h
$d_socket sys/socket.h"
: The first arg can be int, unsigned, or size_t
val=$ans
selectminbits="$val"
fi
- $rm -f try.* try
+ $rm_try
;;
*) : no select, so pick a harmless default
selectminbits=$safebits
printf "\n"
}'
sig_size=`echo $sig_name | awk '{print NF}'`
-$rm -f signal signal.c signal.awk signal.lst signal_cmd
+$rm -f signal signal.c signal.awk signal.lst signal_cmd
echo " "
case "$sizetype" in
size_t) echo "(You do have size_t, that might work. Some people are happy with just an int.)" ;;
esac
fi
-$rm -f try try.*
+$rm_try
set d_socklen_t
eval $setvar
printf("$dflt\n");
else if (sizeof(Size_t) == sizeof(int))
printf("int\n");
- else
+ else
printf("long\n");
exit(0);
}
. ./myread
ssizetype="$ans"
fi
-$rm -f try try.*
+$rm_try
: see what type of char stdio uses.
echo " "
;;
esac
+
+: see if this is a assert.h system
+set assert.h i_assert
+eval $inhdr
+
: see if this is a fp.h system
set fp.h i_fp
eval $inhdr
echo "We won't be including <net/errno.h>." >&4
val="$undef"
fi
- $rm -f try.* try
+ $rm_try
;;
esac
set i_neterrno
INLINE_INTRINSICS INTRINSICS INT64 interdata is68k ksr1
LANGUAGE_C LARGE_FILE_API LARGEFILE64_SOURCE
LARGEFILE_SOURCE LFS64_LARGEFILE LFS_LARGEFILE
-Linux LITTLE_ENDIAN LONG64 LONG_DOUBLE LONG_LONG
+LIBCATAMOUNT Linux LITTLE_ENDIAN LONG64 LONG_DOUBLE LONG_LONG
LONGDOUBLE LONGLONG LP64 luna luna88k Lynx
M68000 m68k m88100 m88k M88KBCS_TARGET M_COFF
M_I186 M_I286 M_I386 M_I8086 M_I86 M_I86SM M_SYS3
pc532 pdp11 PGC PIC plexus PORTAR posix
POSIX1B_SOURCE POSIX2_SOURCE POSIX4_SOURCE
POSIX_C_SOURCE POSIX_SOURCE POWER
-PROTOTYPES PWB pyr QNX R3000 REENTRANT RES Rhapsody RISC6000
+PROTOTYPES PWB pyr QNX QK_USER R3000 REENTRANT RES Rhapsody RISC6000
riscix riscos RT S390 SA110 scs SCO sequent sgi SGI_SOURCE SH3 sinix
SIZE_INT SIZE_LONG SIZE_PTR SOCKET_SOURCE SOCKETS_SOURCE
sony sony_news sonyrisc sparc sparclite spectrum
-A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A//' | $sed 's/\(.*\)(\(.*\))/\1=\2/';;
esac
done
-$rm -f try.c
+$rm_try
EOS
postprocess_cc_v=''
chmod +x ccsym
set stddef.h i_stddef
eval $inhdr
-: see if this is a sunmath.h system
-set sunmath.h i_sunmath
-eval $inhdr
-
: see if sys/access.h is available
set sys/access.h i_sysaccess
eval $inhdr
case "$xxx" in
DynaLoader|dynaload) ;;
*)
- if $test -f $xxx/$xxx.xs; then
+ if $test -f $xxx/$xxx.xs -o -f $xxx/$xxx.c; then
known_extensions="$known_extensions $1$xxx";
elif $test -f $xxx/Makefile.PL; then
nonxs_extensions="$nonxs_extensions $1$xxx";
set X
shift
eval $find_extensions
-# 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.
-known_extensions="$known_extensions threads/shared"
-set X $nonxs_extensions
-shift
-nonxs_extensions="$*"
+# Special case: Add in modules that nest beyond the first level.
+# Currently threads/shared and Hash/Util/FieldHash, since they are
+# not picked up by the recursive find above (and adding in general
+# recursive finding breaks SDBM_File/sdbm).
+# A.D. 20011025 (SDBM), ajgough 20071008 (FieldHash)
+known_extensions="$known_extensions threads/shared Hash/Util/FieldHash"
set X $known_extensions
shift
known_extensions="$*"
+set X $nonxs_extensions
+shift
+nonxs_extensions="$*"
cd "$tdir"
: Now see which are supported on this system.
$define$define) avail_ext="$avail_ext $xxx" ;;
esac
;;
+ IPC/SysV|ipc/sysv)
+ : XXX Do we need a useipcsysv variable here
+ case "${d_msg}${d_sem}${d_shm}" in
+ *"${define}"*) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
NDBM_File|ndbm_fil)
case "$i_ndbm" in
$define)
ODBM_File|odbm_fil)
case "${i_dbm}${i_rpcsvcdbm}" in
*"${define}"*)
- case "$osname-$use64bitint" in
- hpux-define)
- case "$libs" in
- *-ldbm*) avail_ext="$avail_ext $xxx" ;;
+ case "$d_cplusplus" in
+ define) ;; # delete as a function name will not work
+ *) case "$osname-$use64bitint" in
+ hpux-define)
+ case "$libs" in
+ *-ldbm*) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ *) avail_ext="$avail_ext $xxx" ;;
esac
;;
- *) avail_ext="$avail_ext $xxx" ;;
esac
;;
esac
;;
- POSIX|posix)
- case "$useposix" in
+ Opcode|opcode)
+ case "$useopcode" in
true|define|y) avail_ext="$avail_ext $xxx" ;;
esac
;;
- Opcode|opcode)
- case "$useopcode" in
+ POSIX|posix)
+ case "$useposix" in
true|define|y) avail_ext="$avail_ext $xxx" ;;
esac
;;
Thread|thread)
case "$usethreads" in
true|$define|y)
- case "$useithreads" in
- $undef|false|[nN]*) avail_ext="$avail_ext $xxx" ;;
+ case "$use5005threads" in
+ $define|true|[yY]*) avail_ext="$avail_ext $xxx" ;;
esac
esac
;;
- 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
# --jhi
avail_ext="$avail_ext $xxx"
;;
- IPC/SysV|ipc/sysv)
- : XXX Do we need a useipcsysv variable here
- case "${d_msg}${d_sem}${d_shm}" in
- *"${define}"*) avail_ext="$avail_ext $xxx" ;;
+ Win32*)
+ case "$osname" in
+ cygwin) 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
;;
*) avail_ext="$avail_ext $xxx"
cf_by='$cf_by'
cf_email='$cf_email'
cf_time='$cf_time'
-charsize='$charsize'
chgrp='$chgrp'
chmod='$chmod'
chown='$chown'
d_portable='$d_portable'
d_printf_format_null='$d_printf_format_null'
d_procselfexe='$d_procselfexe'
+d_pseudofork='$d_pseudofork'
d_pthread_atfork='$d_pthread_atfork'
d_pthread_attr_setscope='$d_pthread_attr_setscope'
d_pthread_yield='$d_pthread_yield'
d_shmdt='$d_shmdt'
d_shmget='$d_shmget'
d_sigaction='$d_sigaction'
+d_signbit='$d_signbit'
d_sigprocmask='$d_sigprocmask'
d_sigsetjmp='$d_sigsetjmp'
d_sitearch='$d_sitearch'
i8size='$i8size'
i8type='$i8type'
i_arpainet='$i_arpainet'
+i_assert='$i_assert'
i_bsdioctl='$i_bsdioctl'
i_crypt='$i_crypt'
i_db='$i_db'
readdir_r_proto='$readdir_r_proto'
revision='$revision'
rm='$rm'
+rm_try='$rm_try'
rmail='$rmail'
run='$run'
runnm='$runnm'