#
# Note: this Configure script was generated automatically by the tool
# called "metaconfig". Rather than working with this copy of Configure,
-# you may wish to get metaconfig. Perl uses a modified version of this
-# tool, available in the "dist" folder in the checkout of the git repo
-# $ git clone git://perl5.git.perl.org/metaconfig.git metaconfig
-# The original dist package (including metaconfig) is available via SVN:
-# $ svn co https://svn.code.sf.net/p/dist/code/trunk/dist
+# you should use metaconfig. Perl uses a modified version of this
+# tool, and this, together with the metaconfig units, are available
+# in the git repository:
+# $ git clone https://github.com/perl5-metaconfig/metaconfig metaconfig
+# The original dist package (including metaconfig) is available on github:
+# $ git clone https://github.com/rmanfredi/dist.git dist-git
#
# Though this script was generated by metaconfig from metaunits, it is
-# OK to send patches against Configure itself. It's up to the Configure
-# pumpkin to backport the patch to the metaunits if it is accepted.
-# For more information on patching Configure, see pod/perlhack.pod
-#
-# The metaunits are also available from the public git repository:
-# http://perl5.git.perl.org/metaconfig.git/ or
-# $ git clone git://perl5.git.perl.org/metaconfig.git metaconfig
-#
-# See Porting/pumpkin.pod for more information on metaconfig.
+# OK to send patches against Configure itself (but not to commit them
+# to blead). It's up to
+# the Configure maintainers to backport the patch to the metaunits if it
+# is accepted. Exceptions to this rule, and more information, is in
+# Porting/pumpkin.pod.
# Generated using [metaconfig 3.5 PL0]
# (with additional metaconfig patches by perlbug@perl.org)
known_extensions=''
nonxs_ext=''
static_ext=''
+uselanginfo=''
useopcode=''
useposix=''
extras=''
afs=''
afsroot=''
alignbytes=''
-ansi2knr=''
archlib=''
archlibexp=''
d_archlib=''
cpprun=''
cppstdin=''
d__fwalk=''
+d_accept4=''
d_access=''
d_accessx=''
d_acosh=''
d_attribute_warn_unused_result=''
d_printf_format_null=''
d_backtrace=''
-d_bcmp=''
-d_bcopy=''
d_builtin_choose_expr=''
d_builtin_expect=''
-d_bzero=''
+d_builtin_add_overflow=''
+d_builtin_mul_overflow=''
+d_builtin_sub_overflow=''
d_c99_variadic_macros=''
d_casti32=''
castflags=''
ctime_r_proto=''
d_ctime_r=''
d_cuserid=''
-d_dbl_dig=''
d_dbminitproto=''
d_difftime=''
d_dir_dd_fd=''
drand48_r_proto=''
d_drand48proto=''
d_dup2=''
+d_dup3=''
d_eaccess=''
d_endgrent=''
d_endgrent_r=''
d_fpos64_t=''
d_frexpl=''
d_fs_data_s=''
+d_fchmodat=''
+d_linkat=''
+d_openat=''
+d_renameat=''
+d_unlinkat=''
d_fseeko=''
d_fsetpos=''
d_fstatfs=''
d_ftime=''
d_gettimeod=''
d_futimes=''
+d_gai_strerror=''
d_Gconvert=''
d_getaddrinfo=''
d_getcwd=''
d_llrintl=''
d_llround=''
d_llroundl=''
+d_localeconv_l=''
d_localtime_r=''
d_localtime_r_needs_tzset=''
localtime_r_proto=''
d_log2=''
d_logb=''
d_ldexpl=''
+d_long_double_style_ieee=''
+d_long_double_style_ieee_doubledouble=''
+d_long_double_style_ieee_extended=''
+d_long_double_style_ieee_std=''
+d_long_double_style_vax=''
d_longdbl=''
longdblkind=''
longdblsize=''
d_malloc_good_size=''
d_malloc_size=''
d_mblen=''
+d_mbrlen=''
+d_mbrtowc=''
d_mbstowcs=''
d_mbtowc=''
-d_memchr=''
-d_memcmp=''
-d_memcpy=''
d_memmem=''
-d_memmove=''
-d_memset=''
+d_memrchr=''
d_mkdir=''
d_mkdtemp=''
d_mkfifo=''
+d_mkostemp=''
d_mkstemp=''
d_mkstemps=''
d_mktime=''
d_msync=''
d_munmap=''
d_nan=''
+d_nanosleep=''
d_nearbyint=''
d_duplocale=''
d_freelocale=''
d_nexttoward=''
d_nice=''
d_nl_langinfo=''
+d_thread_safe_nl_langinfo_l=''
d_off64_t=''
d_open3=''
d_fpathconf=''
d_pathconf=''
d_pause=''
+d_pipe2=''
d_pipe=''
d_poll=''
d_portable=''
d_rint=''
d_rmdir=''
d_round=''
-d_safebcpy=''
-d_safemcpy=''
-d_sanemcmp=''
d_sbrkproto=''
d_scalbn=''
d_scalbnl=''
socketlib=''
d_socklen_t=''
d_socks5_init=''
-d_sprintf_returns_strlen=''
d_sqrtl=''
d_srand48_r=''
srand48_r_proto=''
stdio_cnt=''
stdio_filbuf=''
stdio_ptr=''
-d_index=''
-d_strchr=''
d_strcoll=''
-d_strctcpy=''
-d_strerrm=''
-d_strerror=''
d_sysernlst=''
d_syserrlst=''
d_strerror_l=''
d_strftime=''
d_strlcat=''
d_strlcpy=''
+d_strnlen=''
d_strtod=''
+d_strtod_l=''
d_strtol=''
d_strtold=''
+d_strtold_l=''
d_strtoll=''
d_strtoq=''
d_strtoul=''
usevfork=''
d_voidsig=''
signal_t=''
-d_volatile=''
-d_charvspr=''
-d_vprintf=''
d_wait4=''
d_waitpid=''
d_wcscmp=''
d_wcsxfrm=''
d_wctomb=''
d_writev=''
+default_inc_excludes_dot=''
dlext=''
bin_ELF=''
cccdlflags=''
usedl=''
doublesize=''
dtraceobject=''
+dtracexnolibs=''
ebcdic=''
fflushNULL=''
fflushall=''
html3direxp=''
installhtml3dir=''
i_arpainet=''
-i_assert=''
i_bfd=''
i_crypt=''
db_hashtype=''
i_execinfo=''
i_fcntl=''
i_fenv=''
-i_float=''
i_fp=''
i_fp_class=''
i_gdbm=''
i_inttypes=''
i_langinfo=''
i_libutil=''
-i_limits=''
i_locale=''
i_machcthr=''
i_malloc=''
i_mallocmalloc=''
-i_math=''
-i_memory=''
i_mntent=''
d_gdbm_ndbm_h_uses_prototypes=''
d_gdbmndbm_h_uses_prototypes=''
i_shadow=''
i_socks=''
i_stdbool=''
-i_stddef=''
i_stdint=''
i_stdlib=''
-i_string=''
-strings=''
i_sunmath=''
i_sysaccess=''
i_sysdir=''
i_unistd=''
i_ustat=''
i_utime=''
-i_values=''
-i_stdarg=''
-i_varargs=''
-i_varhdr=''
i_vfork=''
+i_wchar=''
d_inc_version_list=''
inc_version_list=''
inc_version_list_init=''
d_PRIfldbl=''
d_PRIgldbl=''
d_SCNfldbl=''
+d_double_has_inf=''
+d_double_has_nan=''
+d_double_has_negative_zero=''
+d_double_has_subnormals=''
+d_double_style_cray=''
+d_double_style_ibm=''
+d_double_style_ieee=''
+d_double_style_vax=''
doublekind=''
sPRIEUldbl=''
sPRIFUldbl=''
installprivlib=''
privlib=''
privlibexp=''
-prototype=''
ptrsize=''
d_PRIXU64=''
d_PRId64=''
incpath=''
mips_type=''
usrinc=''
-vaproto=''
d_vendorarch=''
installvendorarch=''
vendorarch=''
useposix=true
: set useopcode=false in your hint file to disable the Opcode extension.
useopcode=true
+: set uselanginfo=false in your hint file to disable the I18N::Langinfo extension.
+uselanginfo=true
archname64=''
ccflags_uselargefiles=''
ldflags_uselargefiles=''
*) echo "No symbolic links, so not testing for their testing..." >&4
;;
esac
-echo " "
: Make symlinks util
case "$mksymlinks" in
;;
nonstop-ux) osname=nonstopux ;;
openbsd) osname=openbsd
- osvers="$3"
- ;;
+ osvers="$3"
+ ;;
os2) osname=os2
osvers="$4"
;;
rp='Try to use long doubles if available?'
. ./myread
case "$ans" in
-y|Y) val="$define" ;;
+y|Y) val="$define" ;;
*) val="$undef" ;;
esac
set uselongdouble
shift;
$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs;'
+: stub, used only to satisfy other units
+i_stdlib='define'
+
+: check for lengths of integral types
+echo " "
+case "$intsize" in
+'')
+ echo "Checking to see how big your integers are..." >&4
+ $cat >try.c <<EOCP
+#include <stdio.h>
+#$i_stdlib I_STDLIB
+#ifdef I_STDLIB
+#include <stdlib.h>
+#endif
+int main()
+{
+ printf("intsize=%d;\n", (int)sizeof(int));
+ printf("longsize=%d;\n", (int)sizeof(long));
+ printf("shortsize=%d;\n", (int)sizeof(short));
+ exit(0);
+}
+EOCP
+ set try
+ if eval $compile_ok && $run ./try > /dev/null; then
+ eval `$run ./try`
+ echo "Your integers are $intsize bytes long."
+ echo "Your long integers are $longsize bytes long."
+ echo "Your short integers are $shortsize bytes long."
+ else
+ $cat >&4 <<EOM
+!
+Help! I can't compile and run the intsize test program: please enlighten me!
+(This is probably a misconfiguration in your system or libraries, and
+you really ought to fix it. Still, I'll try anyway.)
+!
+EOM
+ dflt=4
+ rp="What is the size of an integer (in bytes)?"
+ . ./myread
+ intsize="$ans"
+ dflt=$intsize
+ rp="What is the size of a long integer (in bytes)?"
+ . ./myread
+ longsize="$ans"
+ dflt=2
+ rp="What is the size of a short integer (in bytes)?"
+ . ./myread
+ shortsize="$ans"
+ fi
+ ;;
+esac
+$rm_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
+ ;;
+esac
+$rm_try
+
: determine filename position in cpp output
echo " "
echo "Computing filename position in cpp output for #include directives..." >&4
set $yyy; shift; shift; yyy=$@;
done'
-: see if stdlib is available
-set stdlib.h i_stdlib
-eval $inhdr
-
-: check for lengths of integral types
-echo " "
-case "$intsize" in
-'')
- echo "Checking to see how big your integers are..." >&4
- $cat >try.c <<EOCP
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main()
-{
- printf("intsize=%d;\n", (int)sizeof(int));
- printf("longsize=%d;\n", (int)sizeof(long));
- printf("shortsize=%d;\n", (int)sizeof(short));
- exit(0);
-}
-EOCP
- set try
- if eval $compile_ok && $run ./try > /dev/null; then
- eval `$run ./try`
- echo "Your integers are $intsize bytes long."
- echo "Your long integers are $longsize bytes long."
- echo "Your short integers are $shortsize bytes long."
- else
- $cat >&4 <<EOM
-!
-Help! I can't compile and run the intsize test program: please enlighten me!
-(This is probably a misconfiguration in your system or libraries, and
-you really ought to fix it. Still, I'll try anyway.)
-!
-EOM
- dflt=4
- rp="What is the size of an integer (in bytes)?"
- . ./myread
- intsize="$ans"
- dflt=$intsize
- rp="What is the size of a long integer (in bytes)?"
- . ./myread
- longsize="$ans"
- dflt=2
- rp="What is the size of a short integer (in bytes)?"
- . ./myread
- shortsize="$ans"
- fi
- ;;
-esac
-$rm_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
- ;;
-esac
-$rm_try
-
: see if inttypes.h is available
: we want a real compile instead of Inhdr because some systems
: have an inttypes.h which includes non-existent headers
esac
$rm_try
-: see if this is a float.h system
-set float.h i_float
-eval $inhdr
-
: check for long doubles
echo " "
echo "Checking to see if you have long double..." >&4
case "$d_longdbl" in
define)
$cat <<EOP >try.c
-#$i_float I_FLOAT
#$i_stdlib I_STDLIB
#define LONGDBLSIZE $longdblsize
#define DOUBLESIZE $doublesize
-#ifdef I_FLOAT
#include <float.h>
-#endif
#ifdef I_STDLIB
#include <stdlib.h>
#endif
6) echo "You have 128-bit fully big-endian double-double long doubles (64-bit BEs in BE)." >& 4 ;;
7) echo "You have 128-bit mixed-endian double-double long doubles (64-bit LEs in BE)." >& 4 ;;
8) echo "You have 128-bit mixed-endian double-double long doubles (64-bit BEs in LE)." >& 4 ;;
-9) echo "You have 128-bit PDP-style mixed-endian long doubles." >& 4 ;;
+9) echo "You have 128-bit PDP-style mixed-endian long doubles (VAX format H)." >& 4 ;;
*) echo "Cannot figure out your long double." >&4 ;;
esac
+d_long_double_style_ieee=$undef
+d_long_double_style_ieee_std=$undef
+d_long_double_style_ieee_extended=$undef
+d_long_double_style_ieee_doubledouble=$undef
+d_long_double_style_vax=$undef
+case "$longdblkind" in
+1|2|3|4|5|6|7|8) d_long_double_style_ieee=$define ;;
+esac
+case "$longdblkind" in
+1|2) d_long_double_style_ieee_std=$define ;;
+esac
+case "$longdblkind" in
+3|4) d_long_double_style_ieee_extended=$define ;;
+esac
+case "$longdblkind" in
+5|6|7|8) d_long_double_style_ieee_doubledouble=$define ;;
+esac
+case "$longdblkind" in
+9) d_long_double_style_vax=$define ;;
+esac
$rm_try
: determine the architecture name
;;
esac
-
: determine whether to use malloc wrapping
echo " "
case "$usemallocwrap" in
set d_perl_otherlibdirs
eval $setvar
-: Cruising for prototypes
-echo " "
-echo "Checking out function prototypes..." >&4
-$cat >prototype.c <<EOCP
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-int main(int argc, char *argv[]) {
- exit(0);}
-EOCP
-if $cc $ccflags -c prototype.c >prototype.out 2>&1 ; then
- echo "Your C compiler appears to support function prototypes."
- val="$define"
-else
- echo "Your C compiler doesn't seem to understand function prototypes."
- val="$undef"
-fi
-set prototype
-eval $setvar
-$rm -f prototype*
-
-: Check if ansi2knr is required
-case "$prototype" in
-"$define") ;;
-*) ansi2knr='ansi2knr'
- echo " "
- cat <<EOM >&4
-
-$me: FATAL ERROR:
-This version of $package can only be compiled by a compiler that
-understands function prototypes. Unfortunately, your C compiler
- $cc $ccflags
-doesn't seem to understand them. Sorry about that.
-
-If GNU cc is available for your system, perhaps you could try that instead.
-
-Eventually, we hope to support building Perl with pre-ANSI compilers.
-If you would like to help in that effort, please contact <perlbug@perl.org>.
-
-Aborting Configure now.
-EOM
- exit 2
- ;;
-esac
-
: DTrace support
dflt_dtrace='/usr/sbin/dtrace'
$test -x /usr/bin/dtrace && dflt_dtrace='/usr/bin/dtrace'
echo 'You cannot have filenames longer than 14 characters. Sigh.' >&4
val="$undef"
else
- echo 'You can have filenames longer than 14 characters.'>&4
- val="$define"
+ echo 'You can have filenames longer than 14 characters.'>&4
+ val="$define"
fi
else
$cat <<'EOM'
$test -s hosts
} || {
test "X$hostcat" != "X" &&
- $hostcat | $sed -n -e "s/[ ]*#.*//; s/\$/ /
+ $hostcat | $sed -n -e "s/[ ]*#.*//; s/\$/ /
/[ ]$myhostname[ . ]/p" > hosts
}
tmp_re="[ . ]"
.) dflt=.`$sed -n -e 's/ / /g' \
-e 's/^domain *\([^ ]*\).*/\1/p' $tans \
-e 1q 2>/dev/null`
- ;;
+ ;;
esac
fi
;;
set usefaststdio
eval $setvar
-
: define an is-a-typedef? function
typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
case "$inclist" in
rp='Try to understand large files, if available?'
. ./myread
case "$ans" in
- y|Y) val="$define" ;;
- *) val="$undef" ;;
+ y|Y) val="$define" ;;
+ *) val="$undef" ;;
esac
;;
esac
prefixvar=vendorscript
. ./installprefix
-: script used to emit important warnings
-cat >warn <<EOS
-$startsh
-if test \$# -gt 0; then
- echo "\$@" >msg
-else
- cat >msg
-fi
-echo "*** WARNING:" >&4
-sed -e 's/^/*** /' <msg >&4
-echo "*** " >&4
-cat msg >>config.msg
-echo " " >>config.msg
-rm -f msg
-EOS
-chmod +x warn
-$eunicefix warn
-
-: see which of string.h or strings.h is needed
-echo " "
-strings=`./findhdr string.h`
-if $test "$strings" && $test -r "$strings"; then
- echo "Using <string.h> instead of <strings.h>." >&4
- val="$define"
-else
- val="$undef"
- strings=`./findhdr strings.h`
- if $test "$strings" && $test -r "$strings"; then
- echo "Using <strings.h> instead of <string.h>." >&4
- else
- ./warn "No string header found -- You'll surely have problems."
- fi
-fi
-set i_string
-eval $setvar
-case "$i_string" in
-"$undef") strings=`./findhdr strings.h`;;
-*) strings=`./findhdr string.h`;;
-esac
-
: see if qgcvt exists
set qgcvt d_qgcvt
eval $inlibc
printf("9\n");
exit(0);
}
+ if (b[0] == 0xC0 && b[3] == 0x9A) {
+ /* IBM single 32-bit */
+ printf("12\n");
+ exit(0);
+ }
#endif
#if DOUBLESIZE == 8
if (b[0] == 0x9A && b[7] == 0xBF) {
printf("11\n");
exit(0);
}
+ if (b[0] == 0xC0 && b[7] == 0x9A) {
+ /* IBM double 64-bit */
+ printf("13\n");
+ exit(0);
+ }
+ if (b[0] == 0xBF && b[7] == 0xCD) {
+ /* CRAY single 64-bit */
+ printf("14\n");
+ exit(0);
+ }
#endif
#if DOUBLESIZE == 16
if (b[0] == 0x9A && b[15] == 0xBF) {
9) echo "You have VAX format F 32-bit PDP-style mixed endian doubles." >&4 ;;
10) echo "You have VAX format D 64-bit PDP-style mixed endian doubles." >&4 ;;
11) echo "You have VAX format G 64-bit PDP-style mixed endian doubles." >&4 ;;
-*) echo "Cannot figure out your double. You CRAY, or something?" >&4 ;;
+12) echo "You have IBM short 32-bit doubles." >&4 ;;
+13) echo "You have IBM long 64-bit doubles." >&4 ;;
+14) echo "You have Cray single 64-bit doubles." >&4 ;;
+*) echo "Cannot figure out your double. You Cyber, or something?" >&4 ;;
+esac
+d_double_style_ieee=$undef
+d_double_style_vax=$undef
+d_double_style_ibm=$undef
+d_double_style_cray=$undef
+case "$doublekind" in
+1|2|3|4|5|6|7|8) d_double_style_ieee=$define ;;
+9|10|11) d_double_style_vax=$define ;;
+12|13) d_double_style_ibm=$define ;;
+14) d_double_style_cray=$define ;;
+esac
+case "$d_double_style_ieee" in
+$define)
+ d_double_has_inf=$define
+ d_double_has_nan=$define
+ d_double_has_negative_zero=$define
+ d_double_has_subnormals=$define
+ ;;
+*)
+ d_double_has_inf=$undef
+ d_double_has_nan=$undef
+ d_double_has_negative_zero=$undef
+ d_double_has_subnormals=$undef
+ ;;
esac
$rm_try
#ifdef I_STDLIB
#include <stdlib.h>
#endif
-#$i_string I_STRING
-#ifdef I_STRING
-# include <string.h>
-#else
-# include <strings.h>
-#endif
+#include <string.h>
int checkit(char *expect, char *got)
{
set fwalk d__fwalk
eval $inlibc
+: see if accept4 exists
+set accept4 d_accept4
+eval $inlibc
+
: Initialize h_fcntl
h_fcntl=false
cc="$cc"
optimize="$optimize"
ccflags="$ccflags"
-prototype="$prototype"
define="$define"
rm_try="$rm_try"
usethreads=$usethreads
fi
shift 2
done
-test "$prototype" = "$define" && echo '#define CAN_PROTOTYPE' >> try.c
cat >> try.c <<'EOCP'
-#ifdef CAN_PROTOTYPE
#define _(args) args
-#else
-#define _(args) ()
-#endif
EOCP
echo "$foo" >> try.c
echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c
eval $setvar;
$rm_try'
-: see if we should include time.h, sys/time.h, or both
+: see if we should include sys/time.h
echo " "
+i_time='define'
if test "X$timeincl" = X; then
- echo "Testing to see if we should include <time.h>, <sys/time.h> or both." >&4
+ echo "Testing to see if we should include <sys/time.h>." >&4
$echo $n "I'm now running the test program...$c"
$cat >try.c <<EOCP
#include <sys/types.h>
-#ifdef I_TIME
#include <time.h>
-#endif
#ifdef I_SYSTIME
#ifdef SYSTIMEKERNEL
#define KERNEL
sysselect=''
for s_timeval in '-DS_TIMEVAL' ''; do
for i_systimek in '' '-DSYSTIMEKERNEL'; do
- for i_time in '' '-DI_TIME'; do
for i_systime in '-DI_SYSTIME' ''; do
case "$flags" in
'') $echo $n ".$c"
- set try $i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone
+ set try $i_systime $i_systimek $sysselect $s_timeval $s_timezone
if eval $compile; then
- set X $i_time $i_systime $i_systimek $sysselect $s_timeval
+ set X $i_systime $i_systimek $sysselect $s_timeval
shift
flags="$*"
echo " "
done
done
done
- done
timeincl=''
echo " "
case "$flags" in
*) i_systimek="$undef";;
esac
case "$flags" in
- *I_TIME*) i_time="$define"
- timeincl=`./findhdr time.h`" $timeincl"
- echo "We'll include <time.h>." >&4;;
- *) i_time="$undef";;
- esac
- case "$flags" in
*I_SYSTIME*) i_systime="$define"
timeincl=`./findhdr sys/time.h`" $timeincl"
echo "We'll include <sys/time.h>." >&4;;
esac
case "$asctime_r_proto" in
''|0) d_asctime_r=undef
- asctime_r_proto=0
+ asctime_r_proto=0
echo "Disabling asctime_r, cannot determine prototype." >&4 ;;
* ) case "$asctime_r_proto" in
REENTRANT_PROTO*) ;;
#ifdef I_STDLIB
#include <stdlib.h>
#endif
+#$i_inttypes I_INTTYPES
+#ifdef I_INTTYPES
+#include <inttypes.h>
+#endif
+#ifndef INTPTR_MAX
+#define intptr_t int
+#endif
int null_printf (char* pat,...) __attribute__((__format__(__printf__,1,2)));
-int null_printf (char* pat,...) { return (int)pat; }
+int null_printf (char* pat,...) { return (int)(intptr_t)pat; }
int main () { exit(null_printf(NULL)); }
EOCP
if $cc $ccflags -o attrib attrib.c >attrib.out 2>&1 ; then
eval $setvar
$rm -f attrib*
-: see if bcmp exists
-set bcmp d_bcmp
-eval $inlibc
-
-: see if bcopy exists
-set bcopy d_bcopy
-eval $inlibc
-
: see if getpgrp exists
set getpgrp d_getpgrp
eval $inlibc
eval $setvar
$rm_try
+: Look for GCC-style __builtin_add_overflow
+case "$d_builtin_add_overflow" in
+'')
+ echo " "
+ echo "Checking whether your compiler can handle __builtin_add_overflow ..." >&4
+ $cat >try.c <<'EOCP'
+int main(void) {
+ const unsigned int uint_max = ~0u;
+ int target_int = 0;
+ if (__builtin_add_overflow(1, 2, &target_int) || target_int != 3) {
+ return 1;
+ }
+ if (!__builtin_add_overflow((int)(uint_max >> 1), 1, &target_int)) {
+ return 1;
+ }
+ if (!__builtin_add_overflow(uint_max, -1, &target_int)) {
+ return 1;
+ }
+ return 0;
+}
+EOCP
+ set try
+ if eval $compile && $run ./try; then
+ echo "Your C compiler supports __builtin_add_overflow."
+ val="$define"
+ else
+ echo "Your C compiler doesn't seem to understand __builtin_add_overflow."
+ val="$undef"
+ fi
+ ;;
+*) val="$d_builtin_add_overflow" ;;
+esac
+
+set d_builtin_add_overflow
+eval $setvar
+$rm_try
+
+: Look for GCC-style __builtin_sub_overflow
+case "$d_builtin_sub_overflow" in
+'')
+ echo " "
+ echo "Checking whether your compiler can handle __builtin_sub_overflow ..." >&4
+ $cat >try.c <<'EOCP'
+int main(void) {
+ const unsigned int uint_max = ~0u;
+ int target_int = 0;
+ if (__builtin_sub_overflow(1, -2, &target_int) || target_int != 3) {
+ return 1;
+ }
+ if (!__builtin_sub_overflow(-(int)(uint_max >> 1), 2, &target_int)) {
+ return 1;
+ }
+ if (!__builtin_sub_overflow(uint_max, 1, &target_int)) {
+ return 1;
+ }
+ return 0;
+}
+EOCP
+ set try
+ if eval $compile && $run ./try; then
+ echo "Your C compiler supports __builtin_sub_overflow."
+ val="$define"
+ else
+ echo "Your C compiler doesn't seem to understand __builtin_sub_overflow."
+ val="$undef"
+ fi
+ ;;
+*) val="$d_builtin_sub_overflow" ;;
+esac
+
+set d_builtin_sub_overflow
+eval $setvar
+$rm_try
+
+: Look for GCC-style __builtin_mul_overflow
+case "$d_builtin_mul_overflow" in
+'')
+ echo " "
+ echo "Checking whether your compiler can handle __builtin_mul_overflow ..." >&4
+ $cat >try.c <<'EOCP'
+int main(void) {
+ const unsigned int uint_max = ~0u;
+ int target_int = 0;
+ if (__builtin_mul_overflow(2, 3, &target_int) || target_int != 6) {
+ return 1;
+ }
+ if (!__builtin_mul_overflow((int)(uint_max >> 1), 2, &target_int)) {
+ return 1;
+ }
+ if (!__builtin_mul_overflow(uint_max, 1, &target_int)) {
+ return 1;
+ }
+ return 0;
+}
+EOCP
+ set try
+ if eval $compile && $run ./try; then
+ echo "Your C compiler supports __builtin_mul_overflow."
+ val="$define"
+ else
+ echo "Your C compiler doesn't seem to understand __builtin_mul_overflow."
+ val="$undef"
+ fi
+ ;;
+*) val="$d_builtin_mul_overflow" ;;
+esac
+
+set d_builtin_mul_overflow
+eval $setvar
+$rm_try
+
: Look for GCC-style __builtin_choose_expr
case "$d_builtin_choose_expr" in
'')
eval $setvar
$rm_try
-: see if bzero exists
-set bzero d_bzero
-eval $inlibc
-
-: see if stdarg is available
-echo " "
-if $test `./findhdr stdarg.h`; then
- echo "<stdarg.h> found." >&4
- valstd="$define"
-else
- echo "<stdarg.h> NOT found." >&4
- valstd="$undef"
-fi
-
-: see if varargs is available
-echo " "
-if $test `./findhdr varargs.h`; then
- echo "<varargs.h> found." >&4
-else
- echo "<varargs.h> NOT found, but that's ok (I hope)." >&4
-fi
-
-: set up the varargs testing programs
-$cat > varargs.c <<EOP
-#ifdef I_STDARG
-#include <stdarg.h>
-#endif
-#ifdef I_VARARGS
-#include <varargs.h>
-#endif
-
-#ifdef I_STDARG
-int f(char *p, ...)
-#else
-int f(va_alist)
-va_dcl
-#endif
-{
- va_list ap;
-#ifndef I_STDARG
- char *p;
-#endif
-#ifdef I_STDARG
- va_start(ap,p);
-#else
- va_start(ap);
- p = va_arg(ap, char *);
-#endif
- va_end(ap);
- return 0;
-}
-EOP
-$cat > varargs <<EOP
-$startsh
-if $cc -c $ccflags -D\$1 varargs.c >/dev/null 2>&1; then
- echo "true"
-else
- echo "false"
-fi
-$rm -f varargs$_o
-EOP
-chmod +x varargs
-
-: now check which varargs header should be included
-echo " "
-i_varhdr=''
-val=''
-case "$valstd" in
-"$define")
- if `./varargs I_STDARG`; then
- val='stdarg.h'
- elif `./varargs I_VARARGS`; then
- val='varargs.h'
- fi
- ;;
-*)
- if `./varargs I_VARARGS`; then
- val='varargs.h'
- fi
- ;;
-esac
-case "$val" in
-'')
- echo " "
- echo "*** WHOA THERE!!! ***" >&4
- echo " Your C compiler \"$cc\" doesn't seem to support stdarg or varargs!" >&4
- case "$knowitall" in
- '')
- echo " I'm giving up; maybe you can try again with a different compiler?" >&4
- exit 1
- ;;
- esac
-echo "I could not find the definition for va_dcl... You have problems..." >&4
- val="$undef"; set i_stdarg; eval $setvar
- val="$undef"; set i_varargs; eval $setvar
- ;;
-*)
- set i_varhdr
- eval $setvar
- case "$i_varhdr" in
- stdarg.h)
- val="$define"; set i_stdarg; eval $setvar
- val="$undef"; set i_varargs; eval $setvar
- ;;
- varargs.h)
- val="$undef"; set i_stdarg; eval $setvar
- val="$define"; set i_varargs; eval $setvar
- ;;
- esac
- echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;;
-esac
-$rm -f varargs*
-
: see if the Compiler supports C99 variadic macros
-case "$i_stdarg$i_stdlib" in
- "$define$define")
- echo "You have <stdarg.h> and <stdlib.h>, so checking for C99 variadic macros." >&4
- $cat >try.c <<EOCP
+echo "Checking for C99 variadic macros." >&4
+$cat >try.c <<EOCP
#include <stdio.h>
#include <stdarg.h>
return 0;
}
EOCP
- set try
- if eval $compile && $run ./try 2>&1 >/dev/null; then
- case "`$run ./try`" in
- "123 456 789")
- echo "You have C99 variadic macros." >&4
- d_c99_variadic_macros="$define"
- ;;
- *)
- echo "You don't have functional C99 variadic macros." >&4
- d_c99_variadic_macros="$undef"
- ;;
- esac
- else
- echo "I couldn't compile and run the test program, so I assume that you don't have functional C99 variadic macros." >&4
+set try
+if eval $compile && $run ./try 2>&1 >/dev/null; then
+ case "`$run ./try`" in
+ "123 456 789")
+ echo "You have C99 variadic macros." >&4
+ d_c99_variadic_macros="$define"
+ ;;
+ *)
+ echo "You don't have functional C99 variadic macros." >&4
d_c99_variadic_macros="$undef"
- fi
- $rm_try
- ;;
- *)
- echo "You don't have <stdarg.h> and <stdlib.h>, so not checking for C99 variadic macros." >&4
+ ;;
+ esac
+else
+ 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"
- ;;
-esac
+fi
+$rm_try
: see if signal is declared as pointer to function returning int or void
echo " "
set cbrt d_cbrt
eval $inlibc
-: see if vprintf exists
-echo " "
-if set vprintf val -f d_vprintf; eval $csym; $val; then
- echo 'vprintf() found.' >&4
- val="$define"
- $cat >try.c <<EOF
-#$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>
-#endif
-
-#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);
-}
-int main() { xxx("foo"); }
-
-#endif
-
-EOF
- set try
- 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 '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"
-fi
-$rm_try
-set d_vprintf
-eval $setvar
-val=$val2
-set d_charvspr
-eval $setvar
-
: see if chown exists
set chown d_chown
eval $inlibc
*) echo "No, it doesn't." ;;
esac
-
: check for const keyword
echo " "
echo 'Checking to see if your C compiler knows about "const"...' >&4
esac
case "$crypt_r_proto" in
''|0) d_crypt_r=undef
- crypt_r_proto=0
+ crypt_r_proto=0
echo "Disabling crypt_r, cannot determine prototype." >&4 ;;
* ) case "$crypt_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$ctermid_r_proto" in
''|0) d_ctermid_r=undef
- ctermid_r_proto=0
+ ctermid_r_proto=0
echo "Disabling ctermid_r, cannot determine prototype." >&4 ;;
* ) case "$ctermid_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$ctime_r_proto" in
''|0) d_ctime_r=undef
- ctime_r_proto=0
+ ctime_r_proto=0
echo "Disabling ctime_r, cannot determine prototype." >&4 ;;
* ) case "$ctime_r_proto" in
REENTRANT_PROTO*) ;;
set cuserid d_cuserid
eval $inlibc
-: see if this is a limits.h system
-set limits.h i_limits
-eval $inhdr
-
-: See if number of significant digits in a double precision number is known
-echo " "
-$cat >dbl_dig.c <<EOM
-#$i_limits I_LIMITS
-#$i_float I_FLOAT
-#ifdef I_LIMITS
-#include <limits.h>
-#endif
-#ifdef I_FLOAT
-#include <float.h>
-#endif
-#ifdef DBL_DIG
-printf("Contains DBL_DIG");
-#endif
-EOM
-$cppstdin $cppflags $cppminus < dbl_dig.c >dbl_dig.E 2>/dev/null
-if $contains 'DBL_DIG' dbl_dig.E >/dev/null 2>&1; then
- echo "DBL_DIG found." >&4
- val="$define"
-else
- echo "DBL_DIG NOT found." >&4
- val="$undef"
-fi
-$rm -f dbl_dig.?
-set d_dbl_dig
-eval $setvar
-
: see if dbm.h is available
: see if dbmclose exists
set dbmclose d_dbmclose
#include <sys/ndir.h>
#else
#ifdef I_SYS_DIR
-#ifdef hp9000s500
-#include <ndir.h> /* may be wrong in the future */
-#else
#include <sys/dir.h>
#endif
#endif
#endif
-#endif
int main() {
DIR *dirp = opendir(".");
if (dirfd(dirp) >= 0)
esac
case "$drand48_r_proto" in
''|0) d_drand48_r=undef
- drand48_r_proto=0
+ drand48_r_proto=0
echo "Disabling drand48_r, cannot determine prototype." >&4 ;;
* ) case "$drand48_r_proto" in
REENTRANT_PROTO*) ;;
set dup2 d_dup2
eval $inlibc
+: see if dup3 exists
+set dup3 d_dup3
+eval $inlibc
+
+: see if this is an xlocale.h system
+set xlocale.h i_xlocale
+eval $inhdr
+
+: see if newlocale exists
+set newlocale d_newlocale
+eval $inlibc
+
+: see if freelocale exists
+set freelocale d_freelocale
+eval $inlibc
+
+: see if uselocale exists
+set uselocale d_uselocale
+eval $inlibc
+
+: see if duplocale exists
+set duplocale d_duplocale
+eval $inlibc
+
+: see if querylocale exists
+set querylocale d_querylocale
+eval $inlibc
+
: see if eaccess exists
set eaccess d_eaccess
eval $inlibc
esac
case "$endgrent_r_proto" in
''|0) d_endgrent_r=undef
- endgrent_r_proto=0
+ endgrent_r_proto=0
echo "Disabling endgrent_r, cannot determine prototype." >&4 ;;
* ) case "$endgrent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$endhostent_r_proto" in
''|0) d_endhostent_r=undef
- endhostent_r_proto=0
+ endhostent_r_proto=0
echo "Disabling endhostent_r, cannot determine prototype." >&4 ;;
* ) case "$endhostent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$endnetent_r_proto" in
''|0) d_endnetent_r=undef
- endnetent_r_proto=0
+ endnetent_r_proto=0
echo "Disabling endnetent_r, cannot determine prototype." >&4 ;;
* ) case "$endnetent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$endprotoent_r_proto" in
''|0) d_endprotoent_r=undef
- endprotoent_r_proto=0
+ endprotoent_r_proto=0
echo "Disabling endprotoent_r, cannot determine prototype." >&4 ;;
* ) case "$endprotoent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$endpwent_r_proto" in
''|0) d_endpwent_r=undef
- endpwent_r_proto=0
+ endpwent_r_proto=0
echo "Disabling endpwent_r, cannot determine prototype." >&4 ;;
* ) case "$endpwent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$endservent_r_proto" in
''|0) d_endservent_r=undef
- endservent_r_proto=0
+ endservent_r_proto=0
echo "Disabling endservent_r, cannot determine prototype." >&4 ;;
* ) case "$endservent_r_proto" in
REENTRANT_PROTO*) ;;
#ifdef I_UNISTD
#include <unistd.h>
#endif
-#$i_string I_STRING
-#ifdef I_STRING
#include <string.h>
-#else
-#include <strings.h>
-#endif
$signal_t blech(int x) { exit(3); }
EOCP
$cat >> try.c <<'EOCP'
EOP
set try
if eval $compile && $to try.c; then
- case `$run ./try` in
+ case `$run ./try` in
Pass_changed)
echo "Increasing ptr in your stdio decreases cnt by the same amount. Good." >&4
d_stdio_ptr_lval_sets_cnt="$define" ;;
set d_faststdio
eval $setvar
-
-
: see if fchdir exists
set fchdir d_fchdir
eval $inlibc
set fchmod d_fchmod
eval $inlibc
+: check for openat, unlinkat, renameat, linkat, fchmodat
+set openat d_openat
+eval $inlibc
+
+set unlinkat d_unlinkat
+eval $inlibc
+
+set renameat d_renameat
+eval $inlibc
+
+set linkat d_linkat
+eval $inlibc
+
+set fchmodat d_fchmodat
+eval $inlibc
+
: see if fchown exists
set fchown d_fchown
eval $inlibc
set fp_class d_fp_class
eval $inlibc
-: see if this is a math.h system
-set math.h i_math
-eval $inhdr
-
: check for fpclassify
echo "Checking to see if you have fpclassify..." >&4
$cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
#include <math.h>
-#endif
int main() { return fpclassify(1.0) == FP_NORMAL ? 0 : 1; }
EOCP
set try
set d_fpos64_t
eval $setvar
-: see if this is an xlocale.h system
-set xlocale.h i_xlocale
-eval $inhdr
-
-: see if newlocale exists
-set newlocale d_newlocale
-eval $inlibc
-
-: see if freelocale exists
-set freelocale d_freelocale
-eval $inlibc
-
-: see if uselocale exists
-set uselocale d_uselocale
-eval $inlibc
-
-: see if duplocale exists
-set duplocale d_duplocale
-eval $inlibc
-
-: see if querylocale exists
-set querylocale d_querylocale
-eval $inlibc
-
: see if frexpl exists
set frexpl d_frexpl
eval $inlibc
set fstatvfs d_fstatvfs
eval $inlibc
-
: see if fsync exists
set fsync d_fsync
eval $inlibc
;;
*) echo "No, you have futimes, but it isn't working ($rc) (probably harmless)" >&4
;;
- esac
+ esac
+else
+ echo "No, it does not (probably harmless)" >&4
+fi
+$rm_try
+
+: look for gai_strerror
+echo " "
+$cat >try.c <<'EOCP'
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netdb.h>
+int main ()
+{
+ return (gai_strerror (0) ? 0 : 1);
+ }
+EOCP
+set try
+val="$undef"
+if eval $compile; then
+ `$run ./try`
+ case "$?" in
+ 0) echo "A working gai_strerror() found." >&4
+ val="$define" ;;
+ *) echo "gai_strerror() found, but it doesn't work" >&4
+ ;;
+ esac
else
- echo "No, it does not (probably harmless)" >&4
-fi
+ echo "gai_strerror() NOT found." >&4
+ fi
+set d_gai_strerror
+eval $setvar
$rm_try
: see if ndbm.h is available
esac
case "$getgrent_r_proto" in
''|0) d_getgrent_r=undef
- getgrent_r_proto=0
+ getgrent_r_proto=0
echo "Disabling getgrent_r, cannot determine prototype." >&4 ;;
* ) case "$getgrent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getgrgid_r_proto" in
''|0) d_getgrgid_r=undef
- getgrgid_r_proto=0
+ getgrgid_r_proto=0
echo "Disabling getgrgid_r, cannot determine prototype." >&4 ;;
* ) case "$getgrgid_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getgrnam_r_proto" in
''|0) d_getgrnam_r=undef
- getgrnam_r_proto=0
+ getgrnam_r_proto=0
echo "Disabling getgrnam_r, cannot determine prototype." >&4 ;;
* ) case "$getgrnam_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$gethostbyaddr_r_proto" in
''|0) d_gethostbyaddr_r=undef
- gethostbyaddr_r_proto=0
+ gethostbyaddr_r_proto=0
echo "Disabling gethostbyaddr_r, cannot determine prototype." >&4 ;;
* ) case "$gethostbyaddr_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$gethostbyname_r_proto" in
''|0) d_gethostbyname_r=undef
- gethostbyname_r_proto=0
+ gethostbyname_r_proto=0
echo "Disabling gethostbyname_r, cannot determine prototype." >&4 ;;
* ) case "$gethostbyname_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$gethostent_r_proto" in
''|0) d_gethostent_r=undef
- gethostent_r_proto=0
+ gethostent_r_proto=0
echo "Disabling gethostent_r, cannot determine prototype." >&4 ;;
* ) case "$gethostent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getlogin_r_proto" in
''|0) d_getlogin_r=undef
- getlogin_r_proto=0
+ getlogin_r_proto=0
echo "Disabling getlogin_r, cannot determine prototype." >&4 ;;
* ) case "$getlogin_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getnetbyaddr_r_proto" in
''|0) d_getnetbyaddr_r=undef
- getnetbyaddr_r_proto=0
+ getnetbyaddr_r_proto=0
echo "Disabling getnetbyaddr_r, cannot determine prototype." >&4 ;;
* ) case "$getnetbyaddr_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getnetbyname_r_proto" in
''|0) d_getnetbyname_r=undef
- getnetbyname_r_proto=0
+ getnetbyname_r_proto=0
echo "Disabling getnetbyname_r, cannot determine prototype." >&4 ;;
* ) case "$getnetbyname_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getnetent_r_proto" in
''|0) d_getnetent_r=undef
- getnetent_r_proto=0
+ getnetent_r_proto=0
echo "Disabling getnetent_r, cannot determine prototype." >&4 ;;
* ) case "$getnetent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getprotobyname_r_proto" in
''|0) d_getprotobyname_r=undef
- getprotobyname_r_proto=0
+ getprotobyname_r_proto=0
echo "Disabling getprotobyname_r, cannot determine prototype." >&4 ;;
* ) case "$getprotobyname_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getprotobynumber_r_proto" in
''|0) d_getprotobynumber_r=undef
- getprotobynumber_r_proto=0
+ getprotobynumber_r_proto=0
echo "Disabling getprotobynumber_r, cannot determine prototype." >&4 ;;
* ) case "$getprotobynumber_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getprotoent_r_proto" in
''|0) d_getprotoent_r=undef
- getprotoent_r_proto=0
+ getprotoent_r_proto=0
echo "Disabling getprotoent_r, cannot determine prototype." >&4 ;;
* ) case "$getprotoent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getpwent_r_proto" in
''|0) d_getpwent_r=undef
- getpwent_r_proto=0
+ getpwent_r_proto=0
echo "Disabling getpwent_r, cannot determine prototype." >&4 ;;
* ) case "$getpwent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getpwnam_r_proto" in
''|0) d_getpwnam_r=undef
- getpwnam_r_proto=0
+ getpwnam_r_proto=0
echo "Disabling getpwnam_r, cannot determine prototype." >&4 ;;
* ) case "$getpwnam_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getpwuid_r_proto" in
''|0) d_getpwuid_r=undef
- getpwuid_r_proto=0
+ getpwuid_r_proto=0
echo "Disabling getpwuid_r, cannot determine prototype." >&4 ;;
* ) case "$getpwuid_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getservbyname_r_proto" in
''|0) d_getservbyname_r=undef
- getservbyname_r_proto=0
+ getservbyname_r_proto=0
echo "Disabling getservbyname_r, cannot determine prototype." >&4 ;;
* ) case "$getservbyname_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getservbyport_r_proto" in
''|0) d_getservbyport_r=undef
- getservbyport_r_proto=0
+ getservbyport_r_proto=0
echo "Disabling getservbyport_r, cannot determine prototype." >&4 ;;
* ) case "$getservbyport_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getservent_r_proto" in
''|0) d_getservent_r=undef
- getservent_r_proto=0
+ getservent_r_proto=0
echo "Disabling getservent_r, cannot determine prototype." >&4 ;;
* ) case "$getservent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$getspnam_r_proto" in
''|0) d_getspnam_r=undef
- getspnam_r_proto=0
+ getspnam_r_proto=0
echo "Disabling getspnam_r, cannot determine prototype." >&4 ;;
* ) case "$getspnam_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$gmtime_r_proto" in
''|0) d_gmtime_r=undef
- gmtime_r_proto=0
+ gmtime_r_proto=0
echo "Disabling gmtime_r, cannot determine prototype." >&4 ;;
* ) case "$gmtime_r_proto" in
REENTRANT_PROTO*) ;;
set ilogbl d_ilogbl
eval $inlibc
-: index or strchr
-echo " "
-if set index val -f; eval $csym; $val; then
- if set strchr val -f d_strchr; eval $csym; $val; then
- if $contains strchr "$strings" >/dev/null 2>&1 ; then
- val="$define"
- vali="$undef"
- echo "strchr() found." >&4
- else
- val="$undef"
- vali="$define"
- echo "index() found." >&4
- fi
- else
- val="$undef"
- vali="$define"
- echo "index() found." >&4
- fi
-else
- if set strchr val -f d_strchr; eval $csym; $val; then
- val="$define"
- vali="$undef"
- echo "strchr() found." >&4
- else
- echo "No index() or strchr() found!" >&4
- val="$undef"
- vali="$undef"
- fi
-fi
-set d_strchr; eval $setvar
-val="$vali"
-set d_index; eval $setvar
-
: check whether inet_aton exists
set inet_aton d_inetaton
eval $inlibc
: check for isfinite
echo "Checking to see if you have isfinite..." >&4
$cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
#include <math.h>
-#endif
int main() { return isfinite(0.0); }
EOCP
set try
: check for isinf
echo "Checking to see if you have isinf..." >&4
$cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
#include <math.h>
-#endif
int main() { return isinf(0.0); }
EOCP
set try
: check for isless
echo "Checking to see if you have isless..." >&4
$cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
#include <math.h>
-#endif
int main() { return isless(0.0); }
EOCP
set try
: check for isnan
echo "Checking to see if you have isnan..." >&4
$cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
#include <math.h>
-#endif
int main() { return isnan(0.0); }
EOCP
set try
: check for isnormal
echo "Checking to see if you have isnormal..." >&4
$cat >try.c <<EOCP
-#$i_math I_MATH
-#ifdef I_MATH
#include <math.h>
-#endif
int main() { return isnormal(0.0); }
EOCP
set try
: See if number of significant digits in a double precision number is known
echo " "
$cat >ldbl_dig.c <<EOM
-#$i_limits I_LIMITS
-#$i_float I_FLOAT
-#ifdef I_LIMITS
#include <limits.h>
-#endif
-#ifdef I_FLOAT
#include <float.h>
-#endif
#ifdef LDBL_DIG
printf("Contains LDBL_DIG");
#endif
: check to see if math.h defines _LIB_VERSION
d_libm_lib_version="$undef"
-case $i_math in
- $define)
- echo " "
- echo "Checking to see if your libm supports _LIB_VERSION..." >&4
- $cat >try.c <<EOCP
+echo " "
+echo "Checking to see if your libm supports _LIB_VERSION..." >&4
+$cat >try.c <<EOCP
#include <unistd.h>
#include <math.h>
int main (int argc, char *argv[])
return (0);
} /* main */
EOCP
- set try
- if eval $compile; then
- foo=`$run ./try`
- echo "Yes, it does ($foo)" >&4
- d_libm_lib_version="$define"
- else
- echo "No, it does not (probably harmless)" >&4
- fi
- $rm_try
- ;;
-
- esac
+set try
+if eval $compile; then
+ foo=`$run ./try`
+ echo "Yes, it does ($foo)" >&4
+ d_libm_lib_version="$define"
+else
+ echo "No, it does not (probably harmless)" >&4
+ fi
+$rm_try
: see if link exists
set link d_link
set llroundl d_llroundl
eval $inlibc
+: see if localeconv_l exists
+set localeconv_l d_localeconv_l
+eval $inlibc
+
: see if localtime_r exists
set localtime_r d_localtime_r
eval $inlibc
esac
case "$localtime_r_proto" in
''|0) d_localtime_r=undef
- localtime_r_proto=0
+ localtime_r_proto=0
echo "Disabling localtime_r, cannot determine prototype." >&4 ;;
* ) case "$localtime_r_proto" in
REENTRANT_PROTO*) ;;
#$i_unistd I_UNISTD
#$i_time I_TIME
#$i_stdlib I_STDLIB
-#$i_string I_STRING
#$i_malloc I_MALLOC
#ifdef I_SYS_TYPES
# include <sys/types.h>
#ifdef I_STDLIB
#include <stdlib.h>
#endif
-#ifdef I_STRING
-# include <string.h>
-#else
-# include <strings.h>
-#endif
+#include <string.h>
#ifdef I_MALLOC
# include <malloc.h>
#endif
set mblen d_mblen
eval $inlibc
-: see if mbstowcs exists
-set mbstowcs d_mbstowcs
-eval $inlibc
-
-: see if mbtowc exists
-set mbtowc d_mbtowc
+: see if mbrlen exists
+set mbrlen d_mbrlen
eval $inlibc
-: see if memchr exists
-set memchr d_memchr
+: see if mbrtowc exists
+set mbrtowc d_mbrtowc
eval $inlibc
-: see if memcmp exists
-set memcmp d_memcmp
+: see if mbstowcs exists
+set mbstowcs d_mbstowcs
eval $inlibc
-: see if memcpy exists
-set memcpy d_memcpy
+: see if mbtowc exists
+set mbtowc d_mbtowc
eval $inlibc
: see if memmem exists
set memmem d_memmem
eval $inlibc
-: see if memmove exists
-set memmove d_memmove
-eval $inlibc
-
-: see if memset exists
-set memset d_memset
+: see if memrchr exists
+set memrchr d_memrchr
eval $inlibc
: see if mkdir exists
set mkfifo d_mkfifo
eval $inlibc
+: see if mkostemp exists
+set mkostemp d_mkostemp
+eval $inlibc
+
: see if mkstemp exists
set mkstemp d_mkstemp
eval $inlibc
set mktime d_mktime
eval $inlibc
-: see if this is a sys/mman.h system
+: see if sys/mman.h has to be included
set sys/mman.h i_sysmman
eval $inhdr
;;
esac
-
-
: see if sqrtl exists
set sqrtl d_sqrtl
eval $inlibc
: see if prototype for modfl is available
echo " "
-set d_modflproto modfl $i_math math.h
+set d_modflproto modfl define math.h
eval $hasproto
if $test "$uselongdouble" = "$define"; then
*) echo "No, it doesn't." ;;
esac
-
: see if msync exists
set msync d_msync
eval $inlibc
set nan d_nan
eval $inlibc
+: see if nanosleep exists
+set nanosleep d_nanosleep
+eval $inlibc
+
: see if nearbyint exists
set nearbyint d_nearbyint
eval $inlibc
set quadmath.h i_quadmath
eval $inhdr
-: check for volatile keyword
-echo " "
-echo 'Checking to see if your C compiler knows about "volatile"...' >&4
-$cat >try.c <<'EOCP'
-int main()
-{
- typedef struct _goo_struct goo_struct;
- goo_struct * volatile goo = ((goo_struct *)0);
- struct _goo_struct {
- long long_int;
- int reg_int;
- char char_var;
- };
- typedef unsigned short foo_t;
- char *volatile foo;
- volatile int bar;
- volatile foo_t blech;
- foo = foo;
-}
-EOCP
-if $cc -c $ccflags try.c >/dev/null 2>&1 ; then
- val="$define"
- echo "Yup, it does."
-else
- val="$undef"
- echo "Nope, it doesn't."
-fi
-set d_volatile
-eval $setvar
-$rm_try
-
: Check basic sizes
echo " "
$echo "Choosing the C types to be used for Perl's internal types..." >&4
esac
$echo "Checking how many bits of your UVs your NVs can preserve..." >&4
-: volatile so that the compiler has to store it out to memory.
-if test X"$d_volatile" = X"$define"; then
- volatile=volatile
-fi
$cat <<EOP >try.c
#include <stdio.h>
#$i_stdlib I_STDLIB
#include <sys/types.h>
#include <signal.h>
#ifdef SIGFPE
-$volatile int bletched = 0;
+/* volatile so that the compiler has to store it out to memory */
+volatile int bletched = 0;
$signal_t blech(int s) { bletched = 1; }
#endif
int main() {
$rm_try
$echo "Checking to find the largest integer value your NVs can hold..." >&4
-: volatile so that the compiler has to store it out to memory.
-if test X"$d_volatile" = X"$define"; then
- volatile=volatile
-fi
$cat <<EOP >try.c
#include <stdio.h>
int count = 1;
while(count < 256) {
- $volatile NV up = value + 1.0;
- $volatile NV negated = -value;
- $volatile NV down = negated - 1.0;
- $volatile NV got_up = up - value;
+ /* volatile so that the compiler has to store it out to memory */
+ volatile NV up = value + 1.0;
+ volatile NV negated = -value;
+ volatile NV down = negated - 1.0;
+ volatile NV got_up = up - value;
int up_good = got_up == 1.0;
int got_down = down - negated;
int down_good = got_down == -1.0;
$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.
-if test X"$d_volatile" = X"$define"; then
- volatile=volatile
-fi
$cat <<EOP >try.c
#include <stdio.h>
#$i_stdlib I_STDLIB
#ifdef I_STDLIB
#include <stdlib.h>
#endif
-#$i_string I_STRING
-#ifdef I_STRING
-# include <string.h>
-#else
-# include <strings.h>
-#endif
+#include <string.h>
#include <sys/types.h>
#include <signal.h>
#ifdef SIGFPE
-$volatile int bletched = 0;
+/* volatile so that the compiler has to store it out to memory */
+volatile int bletched = 0;
$signal_t blech(int s) { bletched = 1; }
#endif
-int checkit($nvtype d, char *where) {
- unsigned char *p = (char *)&d;
+int checkit($nvtype d, const char *where) {
+ void *v = &d;
+ unsigned char *p = (unsigned char *)v;
unsigned char *end = p + sizeof(d);
int fail = 0;
if (!fail)
return 0;
- p = (char *)&d;
+ p = (unsigned char *)v;
printf("No - %s: 0x", where);
while (p < end)
printf ("%02X", *p++);
set pause d_pause
eval $inlibc
+: see if pipe2 exists
+set pipe2 d_pipe2
+eval $inlibc
+
: see if poll exists
set poll d_poll
eval $inlibc
esac
case "$random_r_proto" in
''|0) d_random_r=undef
- random_r_proto=0
+ random_r_proto=0
echo "Disabling random_r, cannot determine prototype." >&4 ;;
* ) case "$random_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$readdir64_r_proto" in
''|0) d_readdir64_r=undef
- readdir64_r_proto=0
+ readdir64_r_proto=0
echo "Disabling readdir64_r, cannot determine prototype." >&4 ;;
* ) case "$readdir64_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$readdir_r_proto" in
''|0) d_readdir_r=undef
- readdir_r_proto=0
+ readdir_r_proto=0
echo "Disabling readdir_r, cannot determine prototype." >&4 ;;
* ) case "$readdir_r_proto" in
REENTRANT_PROTO*) ;;
set round d_round
eval $inlibc
-: see if memory.h is available.
-val=''
-set memory.h val
-eval $inhdr
-
-: See if it conflicts with string.h
-case "$val" in
-$define)
- case "$strings" in
- '') ;;
- *)
- $cppstdin $cppflags $cppminus < $strings > mem.h
- if $contains 'memcpy' mem.h >/dev/null 2>&1; then
- echo " "
- echo "We won't be including <memory.h>."
- val="$undef"
- fi
- $rm -f mem.h
- ;;
- esac
-esac
-set i_memory
-eval $setvar
-
-: can bcopy handle overlapping blocks?
-echo " "
-val="$undef"
-case "$d_memmove" in
-"$define") echo "I'll use memmove() instead of bcopy() for overlapping copies." ;;
-*) case "$d_bcopy" in
- "$define")
- echo "Checking to see if bcopy() can do overlapping copies..." >&4
- $cat >try.c <<EOCP
-#$i_memory I_MEMORY
-#$i_stdlib I_STDLIB
-#$i_string I_STRING
-#$i_unistd I_UNISTD
-EOCP
- $cat >>try.c <<'EOCP'
-#include <stdio.h>
-#ifdef I_MEMORY
-# include <memory.h>
-#endif
-#ifdef I_STDLIB
-# include <stdlib.h>
-#endif
-#ifdef I_STRING
-# include <string.h>
-#else
-# include <strings.h>
-#endif
-#ifdef I_UNISTD
-# include <unistd.h> /* Needed for NetBSD */
-#endif
-int main()
-{
-char buf[128], abc[128];
-char *b;
-int len;
-int off;
-int align;
-
-/* Copy "abcde..." string to char abc[] so that gcc doesn't
- try to store the string in read-only memory. */
-bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
-
-for (align = 7; align >= 0; align--) {
- for (len = 36; len; len--) {
- b = buf+align;
- bcopy(abc, b, len);
- for (off = 1; off <= len; off++) {
- bcopy(b, b+off, len);
- bcopy(b+off, b, len);
- if (bcmp(b, abc, len))
- exit(1);
- }
- }
-}
-exit(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- if $run ./try 2>/dev/null; then
- echo "Yes, it can."
- val="$define"
- else
- echo "It can't, sorry."
- fi
- else
- echo "(I can't compile the test program, so we'll assume not...)"
- fi
- ;;
- esac
- $rm_try
- ;;
-esac
-set d_safebcpy
-eval $setvar
-
-: can memcpy handle overlapping blocks?
-echo " "
-val="$undef"
-case "$d_memmove" in
-"$define") echo "I'll use memmove() instead of memcpy() for overlapping copies." ;;
-*) case "$d_memcpy" in
- "$define")
- echo "Checking to see if memcpy() can do overlapping copies..." >&4
- $cat >try.c <<EOCP
-#$i_memory I_MEMORY
-#$i_stdlib I_STDLIB
-#$i_string I_STRING
-#$i_unistd I_UNISTD
-EOCP
- $cat >>try.c <<'EOCP'
-#include <stdio.h>
-#ifdef I_MEMORY
-# include <memory.h>
-#endif
-#ifdef I_STDLIB
-# include <stdlib.h>
-#endif
-#ifdef I_STRING
-# include <string.h>
-#else
-# include <strings.h>
-#endif
-#ifdef I_UNISTD
-# include <unistd.h> /* Needed for NetBSD */
-#endif
-int main()
-{
-char buf[128], abc[128];
-char *b;
-int len;
-int off;
-int align;
-
-/* Copy "abcde..." string to char abc[] so that gcc doesn't
- try to store the string in read-only memory. */
-memcpy(abc, "abcdefghijklmnopqrstuvwxyz0123456789", 36);
-
-for (align = 7; align >= 0; align--) {
- for (len = 36; len; len--) {
- b = buf+align;
- memcpy(b, abc, len);
- for (off = 1; off <= len; off++) {
- memcpy(b+off, b, len);
- memcpy(b, b+off, len);
- if (memcmp(b, abc, len))
- exit(1);
- }
- }
-}
-exit(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- if $run ./try 2>/dev/null; then
- echo "Yes, it can."
- val="$define"
- else
- echo "It can't, sorry."
- fi
- else
- echo "(I can't compile the test program, so we'll assume not...)"
- fi
- ;;
- esac
- $rm_try
- ;;
-esac
-set d_safemcpy
-eval $setvar
-
-: can memcmp be trusted to compare relative magnitude?
-val="$undef"
-case "$d_memcmp" in
-"$define")
- echo " "
- echo "Checking if your memcmp() can compare relative magnitude..." >&4
- $cat >try.c <<EOCP
-#$i_memory I_MEMORY
-#$i_stdlib I_STDLIB
-#$i_string I_STRING
-#$i_unistd I_UNISTD
-EOCP
- $cat >>try.c <<'EOCP'
-#include <stdio.h>
-#ifdef I_MEMORY
-# include <memory.h>
-#endif
-#ifdef I_STDLIB
-# include <stdlib.h>
-#endif
-#ifdef I_STRING
-# include <string.h>
-#else
-# include <strings.h>
-#endif
-#ifdef I_UNISTD
-# include <unistd.h> /* Needed for NetBSD */
-#endif
-int main()
-{
-char a = -1;
-char b = 0;
-if ((a < b) && memcmp(&a, &b, 1) < 0)
- exit(1);
-exit(0);
-}
-EOCP
- set try
- if eval $compile_ok; then
- if $run ./try 2>/dev/null; then
- echo "Yes, it can."
- val="$define"
- else
- echo "No, it can't (it uses signed chars)."
- fi
- else
- echo "(I can't compile the test program, so we'll assume not...)"
- fi
- ;;
-esac
-$rm_try
-set d_sanemcmp
-eval $setvar
-
: see if prototype for sbrk is available
echo " "
set d_sbrkproto sbrk $i_unistd unistd.h
#ifndef errno
extern int errno;
#endif
-int main() {
- struct semid_ds arg;
+int main() {
+ union semun
+#ifndef HAS_UNION_SEMUN
+ {
+ int val;
+ struct semid_ds *buf;
+ unsigned short *array;
+ }
+#endif
+ arg;
+ struct semid_ds argbuf;
int sem, st;
#if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT)
sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT);
if (sem > -1) {
+ arg.buf = &argbuf;
# ifdef IPC_STAT
- st = semctl(sem, 0, IPC_STAT, &arg);
+ st = semctl(sem, 0, IPC_STAT, arg);
if (st == 0)
printf("semid_ds\n");
else
# endif /* IPC_STAT */
printf("semctl IPC_STAT failed: errno = %d\n", errno);
# ifdef IPC_RMID
- if (semctl(sem, 0, IPC_RMID, &arg) != 0)
+ if (semctl(sem, 0, IPC_RMID, arg) != 0)
# endif /* IPC_RMID */
printf("semctl IPC_RMID failed: errno = %d\n", errno);
} else
esac
case "$setgrent_r_proto" in
''|0) d_setgrent_r=undef
- setgrent_r_proto=0
+ setgrent_r_proto=0
echo "Disabling setgrent_r, cannot determine prototype." >&4 ;;
* ) case "$setgrent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$sethostent_r_proto" in
''|0) d_sethostent_r=undef
- sethostent_r_proto=0
+ sethostent_r_proto=0
echo "Disabling sethostent_r, cannot determine prototype." >&4 ;;
* ) case "$sethostent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$setlocale_r_proto" in
''|0) d_setlocale_r=undef
- setlocale_r_proto=0
+ setlocale_r_proto=0
echo "Disabling setlocale_r, cannot determine prototype." >&4 ;;
* ) case "$setlocale_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$setnetent_r_proto" in
''|0) d_setnetent_r=undef
- setnetent_r_proto=0
+ setnetent_r_proto=0
echo "Disabling setnetent_r, cannot determine prototype." >&4 ;;
* ) case "$setnetent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$setprotoent_r_proto" in
''|0) d_setprotoent_r=undef
- setprotoent_r_proto=0
+ setprotoent_r_proto=0
echo "Disabling setprotoent_r, cannot determine prototype." >&4 ;;
* ) case "$setprotoent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$setpwent_r_proto" in
''|0) d_setpwent_r=undef
- setpwent_r_proto=0
+ setpwent_r_proto=0
echo "Disabling setpwent_r, cannot determine prototype." >&4 ;;
* ) case "$setpwent_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$setservent_r_proto" in
''|0) d_setservent_r=undef
- setservent_r_proto=0
+ setservent_r_proto=0
echo "Disabling setservent_r, cannot determine prototype." >&4 ;;
* ) case "$setservent_r_proto" in
REENTRANT_PROTO*) ;;
: 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
+#include <math.h>
#ifdef I_SUNMATH /* Solaris special math library */
# include <sunmath.h>
#endif
int main(int argc, char **argv)
{
NV x = 0.0;
- NV y = -0.0;
+ NV y = -1.0;
if ((signbit(x) == 0) && (signbit(y) != 0))
return 0;
else
set socks5_init d_socks5_init
eval $inlibc
-: see if sprintf returns the length of the string in the buffer as per ANSI
-$echo "Checking whether sprintf returns the length of the string..." >&4
-$cat <<EOP >try.c
-#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
-#include <stdlib.h>
-#endif
-#$i_string I_STRING
-#ifdef I_STRING
-# include <string.h>
-#else
-# include <strings.h>
-#endif
-#$i_math I_MATH
-#ifdef I_MATH
-#include <math.h>
-#endif
-
-char buffer[256];
-
-int check (size_t expect, int test) {
- size_t got = strlen(buffer);
- if (expect == got)
- return 0;
-
- printf("expected %ld, got %ld in test %d '%s'\n", (long) expect, (long) got,
- test, buffer);
- exit (test);
-}
-
-int main(int argc, char **argv) {
- int test = 0;
-
- check(sprintf(buffer, ""), ++test);
- check(sprintf(buffer, "%s %s", "perl", "rules"), ++test);
- check(sprintf(buffer, "I like %g", atan2(0,-1)), ++test);
-
- return 0;
-}
-EOP
-set try
-
-if eval $compile; then
- xxx="`$run ./try`"
- case "$?" in
- 0) cat >&4 <<EOM
-sprintf returns the length of the string (as ANSI says it should)
-EOM
- d_sprintf_returns_strlen="$define"
- ;;
- *) cat >&4 <<EOM
-sprintf does not return the length of the string (how old is this system?)
-EOM
- d_sprintf_returns_strlen="$undef"
- ;;
- esac
-else
- echo "(I can't seem to compile the test program--assuming it doesn't)" >&4
- d_sprintf_returns_strlen="$undef"
-fi
-$rm_try
-
: see if srand48_r exists
set srand48_r d_srand48_r
eval $inlibc
esac
case "$srand48_r_proto" in
''|0) d_srand48_r=undef
- srand48_r_proto=0
+ srand48_r_proto=0
echo "Disabling srand48_r, cannot determine prototype." >&4 ;;
* ) case "$srand48_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$srandom_r_proto" in
''|0) d_srandom_r=undef
- srandom_r_proto=0
+ srandom_r_proto=0
echo "Disabling srandom_r, cannot determine prototype." >&4 ;;
* ) case "$srandom_r_proto" in
REENTRANT_PROTO*) ;;
*) echo "No, it doesn't." ;;
esac
-
: see if struct statfs knows about f_flags
case "$d_statfs_s" in
define)
Checking how to access stdio streams by file descriptor number...
EOM
case "$stdio_stream_array" in
-'') $cat >try.c <<EOCP
+'') $cat >try.c <<EOCP
#include <stdio.h>
int main() {
if (&STDIO_STREAM_ARRAY[fileno(stdin)] == stdin)
do
set try -DSTDIO_STREAM_ARRAY=$s
if eval $compile; then
- case "`$run ./try`" in
+ case "`$run ./try`" in
yes) stdio_stream_array=$s; break ;;
esac
fi
set strcoll d_strcoll
eval $inlibc
-: check for structure copying
-echo " "
-echo "Checking to see if your C compiler can copy structs..." >&4
-$cat >try.c <<'EOCP'
-int main()
-{
- struct blurfl {
- int dyick;
- } foo, bar;
-
- foo = bar;
-}
-EOCP
-if $cc -c try.c >/dev/null 2>&1 ; then
- val="$define"
- echo "Yup, it can."
-else
- val="$undef"
- echo "Nope, it can't."
-fi
-set d_strctcpy
-eval $setvar
-$rm_try
-
-: see if strerror and/or sys_errlist[] exist
-echo " "
-if test "X$d_strerror" = X -o "X$d_syserrlst" = X; then
- if set strerror val -f d_strerror; eval $csym; $val; then
- echo 'strerror() found.' >&4
- d_strerror="$define"
- d_strerrm='strerror(e)'
- if set sys_errlist val -a d_syserrlst; eval $csym; $val; then
- echo "(You also have sys_errlist[], so we could roll our own strerror.)"
- d_syserrlst="$define"
- else
- echo "(Since you don't have sys_errlist[], strerror() is welcome.)"
- d_syserrlst="$undef"
- fi
- elif xxx=`./findhdr string.h`; test "$xxx" || xxx=`./findhdr strings.h`; \
- $contains '#[ ]*define.*strerror' "$xxx" >/dev/null 2>&1; then
- echo 'strerror() found in string header.' >&4
- d_strerror="$define"
- d_strerrm='strerror(e)'
- if set sys_errlist val -a d_syserrlst; eval $csym; $val; then
- echo "(Most probably, strerror() uses sys_errlist[] for descriptions.)"
- d_syserrlst="$define"
- else
- echo "(You don't appear to have any sys_errlist[], how can this be?)"
- d_syserrlst="$undef"
- fi
- elif set sys_errlist val -a d_syserrlst; eval $csym; $val; then
- echo "strerror() not found, but you have sys_errlist[] so we'll use that." >&4
- d_strerror="$undef"
- d_syserrlst="$define"
- d_strerrm='((e)<0||(e)>=sys_nerr?"unknown":sys_errlist[e])'
- else
- echo 'strerror() and sys_errlist[] NOT found.' >&4
- d_strerror="$undef"
- d_syserrlst="$undef"
- d_strerrm='"unknown"'
- fi
-fi
-
: see if strerror_l exists
set strerror_l d_strerror_l
eval $inlibc
eval $inlibc
case "$d_strerror_r" in
"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_string string.h"
+ hdrs="$i_systypes sys/types.h define stdio.h define string.h"
case "$d_strerror_r_proto:$usethreads" in
":define") d_strerror_r_proto=define
set d_strerror_r_proto strerror_r $hdrs
esac
case "$strerror_r_proto" in
''|0) d_strerror_r=undef
- strerror_r_proto=0
+ strerror_r_proto=0
echo "Disabling strerror_r, cannot determine prototype." >&4 ;;
* ) case "$strerror_r_proto" in
REENTRANT_PROTO*) ;;
set strlcpy d_strlcpy
eval $inlibc
+: see if strnlen exists
+set strnlen d_strnlen
+eval $inlibc
+
: see if strtod exists
set strtod d_strtod
eval $inlibc
+: see if strtod_l exists
+set strtod_l d_strtod_l
+eval $inlibc
+
: see if strtol exists
set strtol d_strtol
eval $inlibc
set strtold d_strtold
eval $inlibc
+: see if strtold_l exists
+set strtold_l d_strtold_l
+eval $inlibc
+
: see if strtoll exists
set strtoll d_strtoll
eval $inlibc
check("-1", 18446744073709551615UL, 0);
check("-18446744073709551614", 2, 0);
check("-18446744073709551615", 1, 0);
- check("-18446744073709551616", 18446744073709551615UL, ERANGE);
+ check("-18446744073709551616", 18446744073709551615UL, ERANGE);
check("-18446744073709551617", 18446744073709551615UL, ERANGE);
#endif
EOCP
check("-1", 4294967295UL, 0);
check("-4294967294", 2, 0);
check("-4294967295", 1, 0);
- check("-4294967296", 4294967295UL, ERANGE);
+ check("-4294967296", 4294967295UL, ERANGE);
check("-4294967297", 4294967295UL, ERANGE);
#endif
EOCP
check("-1", 18446744073709551615ULL, 0);
check("-18446744073709551614", 2LL, 0);
check("-18446744073709551615", 1LL, 0);
- check("-18446744073709551616", 18446744073709551615ULL, ERANGE);
+ check("-18446744073709551616", 18446744073709551615ULL, ERANGE);
check("-18446744073709551617", 18446744073709551615ULL, ERANGE);
#endif
if (!bad)
check("-1", 18446744073709551615ULL, 0);
check("-18446744073709551614", 2LL, 0);
check("-18446744073709551615", 1LL, 0);
- check("-18446744073709551616", 18446744073709551615ULL, ERANGE);
+ check("-18446744073709551616", 18446744073709551615ULL, ERANGE);
check("-18446744073709551617", 18446744073709551615ULL, ERANGE);
#endif
if (!bad)
set sysconf d_sysconf
eval $inlibc
+: see if sys_errlist[] exists
+echo " "
+if test "X$d_syserrlst" = X; then
+ if set sys_errlist val -a d_syserrlst; eval $csym; $val; then
+ echo "You have sys_errlist[], so we could roll our own strerror."
+ d_syserrlst="$define"
+ else
+ echo "You don't have sys_errlist[], so strerror() is welcome."
+ d_syserrlst="$undef"
+ fi
+fi
+
: see if system exists
set system d_system
eval $inlibc
set tgamma d_tgamma
eval $inlibc
+: check for thread_safe_nl_langinfo_l item
+$cat <<EOM
+
+Checking to see if you have nl_langinfo_l() and that it is thread-safe
+EOM
+$cat >try.c <<EOCP
+#$i_stdlib I_STDLIB
+#ifdef I_STDLIB
+# include <stdlib.h>
+#endif
+#include <string.h>
+#$i_langinfo I_LANGINFO
+#ifdef I_LANGINFO
+# include <langinfo.h>
+#endif
+#$i_pthread I_PTHREAD
+#ifdef I_PTHREAD
+# include <pthread.h>
+#endif
+#$i_locale I_LOCALE
+#ifdef I_LOCALE
+# include <locale.h>
+#endif
+
+void *
+thread_start(void * arg)
+{
+ nl_langinfo(RADIXCHAR);
+}
+
+int main() {
+ char * main_buffer;
+ char save_main_buffer[1000];
+ pthread_t subthread;
+ pthread_attr_t attr;
+
+ main_buffer = nl_langinfo_l(CODESET, newlocale(LC_ALL_MASK, "C", 0));
+
+ /* If too large for our generous allowance, just assume we don't have
+ * it. */
+ if (strlen(main_buffer) >= sizeof(save_main_buffer)) {
+ exit(1);
+ }
+
+ strcpy(save_main_buffer, main_buffer);
+
+ if (pthread_attr_init(&attr) != 0) {
+ exit(1);
+ }
+
+ if (pthread_create(&subthread, &attr, thread_start, NULL) != 0) {
+ exit(1);
+ }
+
+ if (pthread_join(subthread, NULL) != 0) {
+ exit(1);
+ }
+
+ exit(! (strcmp(main_buffer, save_main_buffer) == 0));
+}
+EOCP
+case "$usethreads" in
+ define)
+ set try
+ if eval $compile; then
+ echo "Your system has nl_langinfo_l()..." >&4
+ if $run ./try; then
+ echo "and it is thread-safe (just as I'd hoped)." >&4
+ d_thread_safe_nl_langinfo_l="$define"
+ echo "$d_thread_safe_nl_langinfo_l" >&4
+ else
+ echo "but it isn't thread-safe, so we won't use it." >&4
+ fi
+ else
+ echo "your system does not have nl_langinfo_l()" >&4
+ fi
+ ;;
+ *) echo "Since threads aren't selected, we won't bother looking for nl_langinfo_l()" >&4
+esac
+if test X"$d_thread_safe_nl_langinfo_l" = X; then
+ d_thread_safe_nl_langinfo_l="$undef"
+fi
+$rm_try
+
: see if time exists
echo " "
if test "X$d_time" = X -o X"$timetype" = X; then
esac
case "$tmpnam_r_proto" in
''|0) d_tmpnam_r=undef
- tmpnam_r_proto=0
+ tmpnam_r_proto=0
echo "Disabling tmpnam_r, cannot determine prototype." >&4 ;;
* ) case "$tmpnam_r_proto" in
REENTRANT_PROTO*) ;;
esac
case "$ttyname_r_proto" in
''|0) d_ttyname_r=undef
- ttyname_r_proto=0
+ ttyname_r_proto=0
echo "Disabling ttyname_r, cannot determine prototype." >&4 ;;
* ) case "$ttyname_r_proto" in
REENTRANT_PROTO*) ;;
#include <sys/ndir.h>
#else
#ifdef I_SYS_DIR
-#ifdef hp9000s500
-#include <ndir.h> /* may be wrong in the future */
-#else
#include <sys/dir.h>
#endif
#endif
#endif
-#endif
int main() { return closedir(opendir(".")); }
EOM
set try
#ifndef DB_VERSION_MAJOR
u_int32_t hash_cb (const void* ptr, size_t size)
{
+ return 0;
}
HASHINFO info;
int main()
#ifndef DB_VERSION_MAJOR
size_t prefix_cb (const DBT *key1, const DBT *key2)
{
+ return 0;
}
BTREEINFO info;
int main()
;;
esac
+: Include . in @INC
+$cat <<EOM
+
+Historically Perl has provided a final fallback of the current working
+directory '.' when searching for a library. This, however, can lead to
+problems when a Perl program which loads optional modules is called from
+a shared directory. This can lead to executing unexpected code.
+
+EOM
+
+# When changing to exclude by default:
+case "$default_inc_excludes_dot" in
+ $undef|false|[nN]*) dflt="n" ;;
+ *) dflt="y" ;;
+esac
+# To turn exclude off by default:
+#case "$default_inc_excludes_dot" in
+# $define|true|[yY]*) dflt="y" ;;
+# *) dflt="n" ;;
+#esac
+
+rp='Exclude '.' from @INC by default? '
+. ./myread
+case "$ans" in
+ [nN]|undef) default_inc_excludes_dot="$undef" ;;
+ *) default_inc_excludes_dot="$define" ;;
+esac
+
: Check what kind of inf/nan your system has
$echo "Checking the kind of infinities and nans you have..." >&4
$echo "(The following tests may crash. That's okay.)" >&4
#define DOUBLESIZE $doublesize
#$d_longdbl HAS_LONG_DOUBLE
#ifdef HAS_LONG_DOUBLE
-#define LONGDBLSIZE $longdblsize
-#define LONGDBLKIND $longdblkind
+#define LONG_DOUBLESIZE $longdblsize
+#define LONG_DOUBLEKIND $longdblkind
#endif
-#$i_math I_MATH
-#ifdef I_MATH
#include <math.h>
-#endif
+#include <string.h>
#include <stdio.h>
/* Note that whether the sign bit is on or off
* for NaN depends on the CPU/FPU, and possibly
* 0x7f, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
* (respectively) as opposed to the more usual
* 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ *
+ * Pre-IEEE-754 floating point format do not even have inf/nan support
+ * at all. They might have a "max" value (DBL_MAX), which may be deadly
+ * to even mention, causing immediate SIGFPE or equivalent: this is
+ * the case with VAX floating point, for example.
*/
-static void bytes(unsigned char *p, unsigned int n) {
+static void bytes(void *v, unsigned int n) {
+ unsigned char *p = (unsigned char *)v;
int i;
for (i = 0; i < n; i++) {
printf("0x%02x%s", p[i], i < n - 1 ? ", " : "\n");
#ifdef HAS_LONG_DOUBLE
long double ldinf = (long double)exp(1e9);
long double ldnan = (long double)sqrt(-1.0);
-#endif
- if (argc == 2) {
- switch (argv[1][0]) {
- case '1': bytes(&dinf, sizeof(dinf)); break;
- case '2': bytes(&dnan, sizeof(dnan)); break;
-#ifdef HAS_LONG_DOUBLE
# if LONG_DOUBLEKIND == 3 || LONG_DOUBLEKIND == 4
/* the 80-bit long doubles might have garbage in their excess bytes */
memset((char *)&ldinf + 10, '\0', LONG_DOUBLESIZE - 10);
+ memset((char *)&ldnan + 10, '\0', LONG_DOUBLESIZE - 10);
# endif
+ if (argc == 2) {
+ switch (argv[1][0]) {
+ case '1': bytes(&dinf, sizeof(dinf)); break;
+ case '2': bytes(&dnan, sizeof(dnan)); break;
case '3': bytes(&ldinf, sizeof(ldinf)); break;
case '4': bytes(&ldnan, sizeof(ldnan)); break;
#endif
doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00'
doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00'
;;
+ 9|10|11|12|13|14) # VAX/Cray/IBM floating point formats, no inf/nan.
+ doubleinfbytes=$undef
+ doublenanbytes=$undef
+ ;;
*) # No idea.
doubleinfbytes=$undef
doublenanbytes=$undef
longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
;;
+ 9|10|11|12|13|14) # VAX/Cray/IBM floating point formats, no inf/nan.
+ longdblinfbytes=$undef
+ longdblnanbytes=$undef
+ ;;
*) # No idea.
longdblinfbytes=$undef
longdblnanbytes=$undef
;;
esac
fi
+# In case the program crashed the values are empty, turn them undef.
+case "$doubleinfbytes" in
+'') doubleinfbytes=$undef ;;
+esac
+case "$doublenanbytes" in
+'') doublenanbytes=$undef ;;
+esac
+case "$longdblinfbytes" in
+'') longdblinfbytes=$undef ;;
+esac
+case "$longdblnanbytes" in
+'') longdblnanbytes=$undef ;;
+esac
$rm_try
: Check the length of the double mantissa
$echo "Checking how many mantissa bits your doubles have..." >&4
$cat >try.c <<EOP
-#$i_float I_FLOAT
#$i_sunmath I_SUNMATH
-#ifdef I_FLOAT
-# include <float.h>
-#endif
+#include <float.h>
#ifdef I_SUNMATH
# include <sunmath.h>
#endif
: Check the length of the longdouble mantissa
$echo "Checking how many mantissa bits your long doubles have..." >&4
$cat >try.c <<EOP
-#$i_float I_FLOAT
#$i_sunmath I_SUNMATH
-#ifdef I_FLOAT
-# include <float.h>
-#endif
+#include <float.h>
#ifdef I_SUNMATH
# include <sunmath.h>
#endif
: object file that uses at least one of the probes defined in the .d file
case "$usedtrace" in
$define)
+ case "$dtracexnolibs" in
+ $define|true|[yY]*)
+ dtracexnolibs=$define
+ $dtrace -h -xnolibs -s ../perldtrace.d -o perldtrace.h
+ ;;
+ ' '|'')
+ if $dtrace -h -xnolibs -s ../perldtrace.d -o perldtrace.h 2>&1 ; then
+ dtracexnolibs=$define
+ echo "Your dtrace accepts -xnolibs"
+ elif $dtrace -h -s ../perldtrace.d -o perldtrace.h 2>&1 ; then
+ dtracexnolibs=$undef
+ echo "Your dtrace doesn't accept -xnolibs"
+ else
+ echo "Your dtrace doesn't work at all, try building without dtrace support" >&4
+ exit 1
+ fi
+ ;;
+ *)
+ dtracexnolibs=$undef
+ $dtrace -h -s ../perldtrace.d -o perldtrace.h
+ ;;
+ esac
+ case $dtracexnolibs in
+ $define) xnolibs=-xnolibs ;;
+ *) xnolibs= ;;
+ esac
+
case "$dtraceobject" in
$define|true|[yY]*)
dtraceobject=$define
;;
' '|'')
- $dtrace -h -s ../perldtrace.d -o perldtrace.h
$cat >try.c <<EOM
#include "perldtrace.h"
int main(void) {
EOM
dtraceobject=$undef
if $cc -c -o try.o $optimize $ccflags try.c \
- && $dtrace -G -s ../perldtrace.d try.o >/dev/null 2>&1; then
+ && $dtrace -G $xnolibs -s ../perldtrace.d try.o >/dev/null 2>&1; then
dtraceobject=$define
echo "Your dtrace builds an object file"
fi
- $rm -f try.c try.o perldtrace.o
;;
*) dtraceobject=$undef ;;
esac
+ $rm_try perldtrace.o perldtrace.h
esac
: Determine if this is an EBCDIC system
fi
: check for fflush NULL behavior
case "$fflushNULL" in
-'') set try -DTRY_FFLUSH_NULL $output
+'') set try -DTRY_FFLUSH_NULL $output
if eval $compile; then
$run ./try 2>/dev/null
code="$?"
EOM
: now check for fflushall behaviour
case "$fflushall" in
- '') set try -DTRY_FFLUSH_ALL $output
+ '') set try -DTRY_FFLUSH_ALL $output
if eval $compile; then
$cat >&4 <<EOM
(Now testing the other method--but note that this also may fail.)
echo "(I can't compile the test program--guessing $gidsize.)" >&4
fi
-
: Check if GID is signed
echo " "
case "$gidtype" in
echo "(I can't compile the test program--guessing unsigned.)" >&4
fi
-
: Check 64bit sizes
echo " "
case "$yyy" in
12345678901)
sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"';
- sPRIo64='"o"'; sPRIx64='"x"'; sPRIXU64='"X"';
+ sPRIo64='"o"'; sPRIx64='"x"'; sPRIXU64='"X"';
echo "We will use %d."
;;
esac
case "$yyy" in
12345678901)
sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"';
- sPRIo64='"lo"'; sPRIx64='"lx"'; sPRIXU64='"lX"';
+ sPRIo64='"lo"'; sPRIx64='"lx"'; sPRIXU64='"lX"';
echo "We will use %ld."
;;
esac
case "$yyy" in
12345678901)
sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64;
- sPRIo64=PRIo64; sPRIx64=PRIx64; sPRIXU64=PRIXU64;
+ sPRIo64=PRIo64; sPRIx64=PRIx64; sPRIXU64=PRIXU64;
echo "We will use the C9X style."
;;
esac
case "$yyy" in
12345678901)
sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"';
- sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"';
+ sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"';
echo "We will use %Ld."
;;
esac
case "$yyy" in
12345678901)
sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"';
- sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"';
+ sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"';
echo "We will use the %lld style."
;;
esac
case "$yyy" in
12345678901)
sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"';
- sPRIo64='"qo"'; sPRIx64='"qx"'; sPRIXU64='"qX"';
+ sPRIo64='"qo"'; sPRIx64='"qx"'; sPRIXU64='"qX"';
echo "We will use %qd."
;;
esac
: see if we need va_copy
echo " "
-case "$i_stdarg" in
-"$define")
- $cat >try.c <<EOCP
+$cat >try.c <<EOCP
#include <stdarg.h>
#include <stdio.h>
-#$i_stdlib I_STDLIB
-#ifdef I_STDLIB
#include <stdlib.h>
-#endif
#include <signal.h>
int
exit(0);
}
EOCP
- set try
- if eval $compile && $run ./try 2>&1 >/dev/null; then
- case "`$run ./try`" in
- "that's all right, then")
- okay=yes
- ;;
- esac
- fi
- case "$okay" in
- yes) echo "It seems that you don't need va_copy()." >&4
- need_va_copy="$undef"
- ;;
- *) echo "It seems that va_copy() or similar will be needed." >&4
- need_va_copy="$define"
+set try
+if eval $compile && $run ./try 2>&1 >/dev/null; then
+ case "`$run ./try`" in
+ "that's all right, then")
+ okay=yes
;;
esac
- $rm_try
- ;;
-*) echo "You don't have <stdarg.h>, not checking for va_copy()." >&4
+fi
+case "$okay" in
+yes) echo "It seems that you don't need va_copy()." >&4
need_va_copy="$undef"
;;
+*) echo "It seems that va_copy() or similar will be needed." >&4
+ need_va_copy="$define"
+ ;;
esac
+$rm_try
: see what type is used for size_t
rp="What is the type used for the length parameter for string functions?"
fi
$rm -f foo* bar*
-: see if this is a values.h system
-set values.h i_values
-eval $inhdr
-
: Check the max offset that gmtime and localtime accept
echo "Checking max offsets that gmtime () accepts"
-case $i_values in
- define) yyy="#include <values.h>" ;;
- *) yyy="" ;;
- esac
-
case "$sGMTIME_min/$sGMTIME_max" in
0/0|/)
$cat >try.c <<EOCP
#include <sys/types.h>
#include <stdio.h>
#include <time.h>
-$yyy
int i;
struct tm *tmp;
#include <sys/types.h>
#include <stdio.h>
#include <time.h>
-$yyy
int i;
struct tm *tmp;
yes)
echo "Generating a list of signal names and numbers..." >&4
. ./signal_cmd
- sig_count=`$awk '/^NSIG/ { printf "%d", $2 }' signal.lst`
- sig_name=`$awk 'BEGIN { printf "ZERO " }
- !/^NSIG/ { printf "%s ", $1 }' signal.lst`
- sig_num=`$awk 'BEGIN { printf "0 " }
- !/^NSIG/ { printf "%d ", $2 }' signal.lst`
- sig_name_init=`$awk 'BEGIN { printf "\"ZERO\", " }
- !/^NSIG/ { printf "\"%s\", ", $1 }
- END { printf "0\n" }' signal.lst`
- sig_num_init=`$awk 'BEGIN { printf "0, " }
- !/^NSIG/ { printf "%d, ", $2}
- END { printf "0\n"}' signal.lst`
+ sig_count=`$awk '/^NSIG/ { printf "%d", $2 }' signal.lst`
+ sig_name=`$awk 'BEGIN { printf "ZERO " }
+ !/^NSIG/ { printf "%s ", $1 }' signal.lst`
+ sig_num=`$awk 'BEGIN { printf "0 " }
+ !/^NSIG/ { printf "%d ", $2 }' signal.lst`
+ sig_name_init=`$awk 'BEGIN { printf "\"ZERO\", " }
+ !/^NSIG/ { printf "\"%s\", ", $1 }
+ END { printf "0\n" }' signal.lst`
+ sig_num_init=`$awk 'BEGIN { printf "0, " }
+ !/^NSIG/ { printf "%d, ", $2}
+ END { printf "0\n"}' signal.lst`
;;
esac
echo "The following $sig_count signals are available:"
echo "(I can't compile the test program--guessing $sizesize.)" >&4
fi
-
: check for socklen_t
echo " "
echo "Checking to see if you have socklen_t..." >&4
echo "(I can't compile the test program--guessing unsigned.)" >&4
fi
-
: Check format string for UID
echo " "
$echo "Checking the format string to be used for uids..." >&4
return 4;
}
- buffer = malloc(size);
+ buffer = (char *)malloc(size);
if (!buffer) {
perror("malloc");
return 5;
return 2;
}
- buffer = malloc(size);
+ buffer = (char *)malloc(size);
if (!buffer) {
perror("malloc");
return 3;
;;
esac
-: see if prototypes support variable argument declarations
-echo " "
-case "$prototype$i_stdarg" in
-$define$define)
- echo "It appears we'll be able to prototype varargs functions." >&4
- val="$define"
- ;;
-*)
- echo "Too bad... We won't be using prototyped varargs functions..." >&4
- val="$undef"
- ;;
-esac
-set vaproto
-eval $setvar
-
: determine compiler compiler
case "$yacc" in
'')
;;
esac
-: see if this is a assert.h system
-set assert.h i_assert
-eval $inhdr
-
: see if this is a bfd.h system
set bfd.h i_bfd
eval $inhdr
GCC_NEW_VARARGS gcos gcx gimpel GLIBC GLIBC_MINOR GNUC GNUC_MINOR
GNU_LIBRARY GNU_SOURCE GO32 gould GOULD_PN
H3050R H3050RX hbullx20 hcx host_mips hp200 hp300 HP700 hp700
-hp800 hp9000 hp9000s200 hp9000s300 hp9000s400 hp9000s500
+hp800 hp9000 hp9000s200 hp9000s300 hp9000s400
hp9000s700 hp9000s800 hp9k8 hppa hpux HPUX_SOURCE hp_osf
i186 i286 i386 i486 i586 i686 i8086 i80960 i860 I960 IA32 IA64
iAPX286 ibm ibm032 ibmesa IBMR2 ibmrt ILP32 ILP64
printf "#ifdef _%s\nprintf(\"_%s=%%s\\n\", STRINGIFY(_%s));\n#endif\n", $1, $1, $1
printf "#ifdef __%s\nprintf(\"__%s=%%s\\n\", STRINGIFY(__%s));\n#endif\n", $1, $1, $1
printf "#ifdef __%s__\nprintf(\"__%s__=%%s\\n\", STRINGIFY(__%s__));\n#endif\n", $1, $1, $1
-}' >> try.c
+}' >> try.c
echo 'return 0;}' >> try.c
EOSH
cat <<EOSH >> Cppsym.try
: add -D_FORTIFY_SOURCE if feasible and not already there
case "$gccversion" in
-[45].*) case "$optimize$ccflags" in
+[4567].*) case "$optimize$ccflags" in
*-O*) case "$ccflags$cppsymbols" in
*_FORTIFY_SOURCE=*) # Don't add it again.
echo "You seem to have -D_FORTIFY_SOURCE already, not adding it." >&4
;;
esac
+: script used to emit important warnings
+cat >warn <<EOS
+$startsh
+if test \$# -gt 0; then
+ echo "\$@" >msg
+else
+ cat >msg
+fi
+echo "*** WARNING:" >&4
+sed -e 's/^/*** /' <msg >&4
+echo "*** " >&4
+cat msg >>config.msg
+echo " " >>config.msg
+rm -f msg
+EOS
+chmod +x warn
+$eunicefix warn
+
: see if this is a termio system
val="$undef"
val2="$undef"
set i_stdbool
eval $setvar
-: see if stddef is available
-set stddef.h i_stddef
-eval $inhdr
-
: see if stdint is available
set stdint.h i_stdint
eval $inhdr
;;
esac
+: see if wchar.h is present
+set wchar.h i_wchar
+eval $inhdr
+
: Check extensions
echo " "
echo "Looking for extensions..." >&4
$define) avail_ext="$avail_ext $xxx" ;;
esac
;;
- I18N/Langinfo|i18n_lan)
- case "$i_langinfo$d_nl_langinfo" in
- $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
true|$define|y) avail_ext="$avail_ext $xxx" ;;
esac
;;
+ I18N/Langinfo|langinfo)
+ case "$uselanginfo" in
+ true|define|y) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
Sys/Syslog|sys/syslog)
case $osname in
amigaos) ;; # not really very useful on AmigaOS
afs='$afs'
afsroot='$afsroot'
alignbytes='$alignbytes'
-ansi2knr='$ansi2knr'
aphostname='$aphostname'
api_revision='$api_revision'
api_subversion='$api_subversion'
d_PRIx64='$d_PRIx64'
d_SCNfldbl='$d_SCNfldbl'
d__fwalk='$d__fwalk'
+d_accept4='$d_accept4'
d_access='$d_access'
d_accessx='$d_accessx'
d_acosh='$d_acosh'
d_attribute_unused='$d_attribute_unused'
d_attribute_warn_unused_result='$d_attribute_warn_unused_result'
d_backtrace='$d_backtrace'
-d_bcmp='$d_bcmp'
-d_bcopy='$d_bcopy'
d_bsd='$d_bsd'
d_bsdgetpgrp='$d_bsdgetpgrp'
d_bsdsetpgrp='$d_bsdsetpgrp'
+d_builtin_add_overflow='$d_builtin_add_overflow'
d_builtin_choose_expr='$d_builtin_choose_expr'
d_builtin_expect='$d_builtin_expect'
-d_bzero='$d_bzero'
+d_builtin_mul_overflow='$d_builtin_mul_overflow'
+d_builtin_sub_overflow='$d_builtin_sub_overflow'
d_c99_variadic_macros='$d_c99_variadic_macros'
d_casti32='$d_casti32'
d_castneg='$d_castneg'
d_cbrt='$d_cbrt'
-d_charvspr='$d_charvspr'
d_chown='$d_chown'
d_chroot='$d_chroot'
d_chsize='$d_chsize'
d_ctime64='$d_ctime64'
d_ctime_r='$d_ctime_r'
d_cuserid='$d_cuserid'
-d_dbl_dig='$d_dbl_dig'
d_dbminitproto='$d_dbminitproto'
d_difftime64='$d_difftime64'
d_difftime='$d_difftime'
d_dlopen='$d_dlopen'
d_dlsymun='$d_dlsymun'
d_dosuid='$d_dosuid'
+d_double_has_inf='$d_double_has_inf'
+d_double_has_nan='$d_double_has_nan'
+d_double_has_negative_zero='$d_double_has_negative_zero'
+d_double_has_subnormals='$d_double_has_subnormals'
+d_double_style_cray='$d_double_style_cray'
+d_double_style_ibm='$d_double_style_ibm'
+d_double_style_ieee='$d_double_style_ieee'
+d_double_style_vax='$d_double_style_vax'
d_drand48_r='$d_drand48_r'
d_drand48proto='$d_drand48proto'
d_dup2='$d_dup2'
+d_dup3='$d_dup3'
d_duplocale='$d_duplocale'
d_eaccess='$d_eaccess'
d_endgrent='$d_endgrent'
d_faststdio='$d_faststdio'
d_fchdir='$d_fchdir'
d_fchmod='$d_fchmod'
+d_fchmodat='$d_fchmodat'
d_fchown='$d_fchown'
d_fcntl='$d_fcntl'
d_fcntl_can_lock='$d_fcntl_can_lock'
d_ftello='$d_ftello'
d_ftime='$d_ftime'
d_futimes='$d_futimes'
+d_gai_strerror='$d_gai_strerror'
d_gdbm_ndbm_h_uses_prototypes='$d_gdbm_ndbm_h_uses_prototypes'
d_gdbmndbm_h_uses_prototypes='$d_gdbmndbm_h_uses_prototypes'
d_getaddrinfo='$d_getaddrinfo'
d_ilogb='$d_ilogb'
d_ilogbl='$d_ilogbl'
d_inc_version_list='$d_inc_version_list'
-d_index='$d_index'
d_inetaton='$d_inetaton'
d_inetntop='$d_inetntop'
d_inetpton='$d_inetpton'
d_libm_lib_version='$d_libm_lib_version'
d_libname_unique='$d_libname_unique'
d_link='$d_link'
+d_linkat='$d_linkat'
d_llrint='$d_llrint'
d_llrintl='$d_llrintl'
d_llround='$d_llround'
d_llroundl='$d_llroundl'
+d_localeconv_l='$d_localeconv_l'
d_localtime64='$d_localtime64'
d_localtime_r='$d_localtime_r'
d_localtime_r_needs_tzset='$d_localtime_r_needs_tzset'
d_log1p='$d_log1p'
d_log2='$d_log2'
d_logb='$d_logb'
+d_long_double_style_ieee='$d_long_double_style_ieee'
+d_long_double_style_ieee_doubledouble='$d_long_double_style_ieee_doubledouble'
+d_long_double_style_ieee_extended='$d_long_double_style_ieee_extended'
+d_long_double_style_ieee_std='$d_long_double_style_ieee_std'
+d_long_double_style_vax='$d_long_double_style_vax'
d_longdbl='$d_longdbl'
d_longlong='$d_longlong'
d_lrint='$d_lrint'
d_malloc_good_size='$d_malloc_good_size'
d_malloc_size='$d_malloc_size'
d_mblen='$d_mblen'
+d_mbrlen='$d_mbrlen'
+d_mbrtowc='$d_mbrtowc'
d_mbstowcs='$d_mbstowcs'
d_mbtowc='$d_mbtowc'
-d_memchr='$d_memchr'
-d_memcmp='$d_memcmp'
-d_memcpy='$d_memcpy'
d_memmem='$d_memmem'
-d_memmove='$d_memmove'
-d_memset='$d_memset'
+d_memrchr='$d_memrchr'
d_mkdir='$d_mkdir'
d_mkdtemp='$d_mkdtemp'
d_mkfifo='$d_mkfifo'
+d_mkostemp='$d_mkostemp'
d_mkstemp='$d_mkstemp'
d_mkstemps='$d_mkstemps'
d_mktime64='$d_mktime64'
d_munmap='$d_munmap'
d_mymalloc='$d_mymalloc'
d_nan='$d_nan'
+d_nanosleep='$d_nanosleep'
d_ndbm='$d_ndbm'
d_ndbm_h_uses_prototypes='$d_ndbm_h_uses_prototypes'
d_nearbyint='$d_nearbyint'
d_oldpthreads='$d_oldpthreads'
d_oldsock='$d_oldsock'
d_open3='$d_open3'
+d_openat='$d_openat'
d_pathconf='$d_pathconf'
d_pause='$d_pause'
d_perl_otherlibdirs='$d_perl_otherlibdirs'
d_phostname='$d_phostname'
+d_pipe2='$d_pipe2'
d_pipe='$d_pipe'
d_poll='$d_poll'
d_portable='$d_portable'
d_remainder='$d_remainder'
d_remquo='$d_remquo'
d_rename='$d_rename'
+d_renameat='$d_renameat'
d_rewinddir='$d_rewinddir'
d_rint='$d_rint'
d_rmdir='$d_rmdir'
d_round='$d_round'
-d_safebcpy='$d_safebcpy'
-d_safemcpy='$d_safemcpy'
-d_sanemcmp='$d_sanemcmp'
d_sbrkproto='$d_sbrkproto'
d_scalbn='$d_scalbn'
d_scalbnl='$d_scalbnl'
d_socklen_t='$d_socklen_t'
d_sockpair='$d_sockpair'
d_socks5_init='$d_socks5_init'
-d_sprintf_returns_strlen='$d_sprintf_returns_strlen'
d_sqrtl='$d_sqrtl'
d_srand48_r='$d_srand48_r'
d_srandom_r='$d_srandom_r'
d_stdio_stream_array='$d_stdio_stream_array'
d_stdiobase='$d_stdiobase'
d_stdstdio='$d_stdstdio'
-d_strchr='$d_strchr'
d_strcoll='$d_strcoll'
-d_strctcpy='$d_strctcpy'
-d_strerrm='$d_strerrm'
-d_strerror='$d_strerror'
d_strerror_l='$d_strerror_l'
d_strerror_r='$d_strerror_r'
d_strftime='$d_strftime'
d_strlcat='$d_strlcat'
d_strlcpy='$d_strlcpy'
+d_strnlen='$d_strnlen'
d_strtod='$d_strtod'
+d_strtod_l='$d_strtod_l'
d_strtol='$d_strtol'
d_strtold='$d_strtold'
+d_strtold_l='$d_strtold_l'
d_strtoll='$d_strtoll'
d_strtoq='$d_strtoq'
d_strtoul='$d_strtoul'
d_telldir='$d_telldir'
d_telldirproto='$d_telldirproto'
d_tgamma='$d_tgamma'
+d_thread_safe_nl_langinfo_l='$d_thread_safe_nl_langinfo_l'
d_time='$d_time'
d_timegm='$d_timegm'
d_times='$d_times'
d_umask='$d_umask'
d_uname='$d_uname'
d_union_semun='$d_union_semun'
+d_unlinkat='$d_unlinkat'
d_unordered='$d_unordered'
d_unsetenv='$d_unsetenv'
d_uselocale='$d_uselocale'
d_void_closedir='$d_void_closedir'
d_voidsig='$d_voidsig'
d_voidtty='$d_voidtty'
-d_volatile='$d_volatile'
-d_vprintf='$d_vprintf'
d_vsnprintf='$d_vsnprintf'
d_wait4='$d_wait4'
d_waitpid='$d_waitpid'
db_version_major='$db_version_major'
db_version_minor='$db_version_minor'
db_version_patch='$db_version_patch'
+default_inc_excludes_dot='$default_inc_excludes_dot'
direntrytype='$direntrytype'
dlext='$dlext'
dlsrc='$dlsrc'
drand48_r_proto='$drand48_r_proto'
dtrace='$dtrace'
dtraceobject='$dtraceobject'
+dtracexnolibs='$dtracexnolibs'
dynamic_ext='$dynamic_ext'
eagain='$eagain'
ebcdic='$ebcdic'
i8size='$i8size'
i8type='$i8type'
i_arpainet='$i_arpainet'
-i_assert='$i_assert'
i_bfd='$i_bfd'
i_bsdioctl='$i_bsdioctl'
i_crypt='$i_crypt'
i_execinfo='$i_execinfo'
i_fcntl='$i_fcntl'
i_fenv='$i_fenv'
-i_float='$i_float'
i_fp='$i_fp'
i_fp_class='$i_fp_class'
i_gdbm='$i_gdbm'
i_inttypes='$i_inttypes'
i_langinfo='$i_langinfo'
i_libutil='$i_libutil'
-i_limits='$i_limits'
i_locale='$i_locale'
i_machcthr='$i_machcthr'
i_malloc='$i_malloc'
i_mallocmalloc='$i_mallocmalloc'
-i_math='$i_math'
-i_memory='$i_memory'
i_mntent='$i_mntent'
i_ndbm='$i_ndbm'
i_netdb='$i_netdb'
i_sgtty='$i_sgtty'
i_shadow='$i_shadow'
i_socks='$i_socks'
-i_stdarg='$i_stdarg'
i_stdbool='$i_stdbool'
-i_stddef='$i_stddef'
i_stdint='$i_stdint'
i_stdlib='$i_stdlib'
-i_string='$i_string'
i_sunmath='$i_sunmath'
i_sysaccess='$i_sysaccess'
i_sysdir='$i_sysdir'
i_unistd='$i_unistd'
i_ustat='$i_ustat'
i_utime='$i_utime'
-i_values='$i_values'
-i_varargs='$i_varargs'
-i_varhdr='$i_varhdr'
i_vfork='$i_vfork'
+i_wchar='$i_wchar'
i_xlocale='$i_xlocale'
ignore_versioned_solibs='$ignore_versioned_solibs'
inc_version_list='$inc_version_list'
privlib='$privlib'
privlibexp='$privlibexp'
procselfexe='$procselfexe'
-prototype='$prototype'
ptrsize='$ptrsize'
quadkind='$quadkind'
quadtype='$quadtype'
stdio_ptr='$stdio_ptr'
stdio_stream_array='$stdio_stream_array'
strerror_r_proto='$strerror_r_proto'
-strings='$strings'
submit='$submit'
subversion='$subversion'
sysman='$sysman'
usefaststdio='$usefaststdio'
useithreads='$useithreads'
usekernprocpathname='$usekernprocpathname'
+uselanginfo='$uselanginfo'
uselargefiles='$uselargefiles'
uselongdouble='$uselongdouble'
usemallocwrap='$usemallocwrap'
uvtype='$uvtype'
uvuformat='$uvuformat'
uvxformat='$uvxformat'
-vaproto='$vaproto'
vendorarch='$vendorarch'
vendorarchexp='$vendorarchexp'
vendorbin='$vendorbin'