known_extensions=''
nonxs_ext=''
static_ext=''
+uselanginfo=''
useopcode=''
useposix=''
extras=''
cpprun=''
cppstdin=''
d__fwalk=''
+d_accept4=''
d_access=''
d_accessx=''
d_acosh=''
d_closedir=''
d_void_closedir=''
d_cmsghdr_s=''
-d_const=''
d_copysign=''
d_copysignl=''
d_cplusplus=''
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_mkdir=''
d_mkdtemp=''
d_mkfifo=''
+d_mkostemp=''
d_mkstemp=''
d_mkstemps=''
d_mktime=''
d_fpathconf=''
d_pathconf=''
d_pause=''
+d_pipe2=''
d_pipe=''
d_poll=''
d_portable=''
sethostent_r_proto=''
d_setitimer=''
d_setlinebuf=''
+d_has_C_UTF8=''
d_setlocale=''
+d_setlocale_accepts_any_locale_name=''
d_setlocale_r=''
setlocale_r_proto=''
d_setnent=''
d_sigprocmask=''
d_sigsetjmp=''
usesitecustomize=''
+d_snprintf=''
+d_vsnprintf=''
d_sockatmark=''
d_sockatmarkproto=''
d_ip_mreq=''
stdio_filbuf=''
stdio_ptr=''
d_strcoll=''
-d_strerrm=''
-d_strerror=''
d_sysernlst=''
d_syserrlst=''
d_strerror_l=''
d_strlcpy=''
d_strnlen=''
d_strtod=''
+d_strtod_l=''
d_strtol=''
d_strtold=''
d_strtold_l=''
d_times=''
d_tmpnam_r=''
tmpnam_r_proto=''
+d_towlower=''
+d_towupper=''
d_trunc=''
d_truncate=''
d_truncl=''
html3direxp=''
installhtml3dir=''
i_arpainet=''
-i_assert=''
i_bfd=''
i_crypt=''
db_hashtype=''
i_machcthr=''
i_malloc=''
i_mallocmalloc=''
-i_math=''
-i_memory=''
i_mntent=''
d_gdbm_ndbm_h_uses_prototypes=''
d_gdbmndbm_h_uses_prototypes=''
i_stdbool=''
i_stdint=''
i_stdlib=''
-i_string=''
-strings=''
i_sunmath=''
i_sysaccess=''
i_sysdir=''
i_unistd=''
i_ustat=''
i_utime=''
-i_values=''
i_vfork=''
i_wchar=''
+i_wctype=''
d_inc_version_list=''
inc_version_list=''
inc_version_list_init=''
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=''
;;
MiNT) osname=mint
;;
+ minix) osname=minix
+ osvers=`$uname -r`
+ ;;
netbsd*) osname=netbsd
osvers="$3"
;;
;;
nonstop-ux) osname=nonstopux ;;
openbsd) osname=openbsd
- osvers="$3"
- ;;
+ osvers="$3"
+ ;;
os2) osname=os2
osvers="$4"
;;
: determine root of directory hierarchy where package will be installed.
case "$prefix" in
-'')
- dflt=`./loc . /usr/local /usr/local /local /opt /usr`
- ;;
-*?/)
- dflt=`echo "$prefix" | sed 's/.$//'`
+'') dflt=`./loc . /usr/local /usr/local /local /opt /usr`
;;
-*)
- dflt="$prefix"
+*) dflt="$prefix"
;;
esac
$cat <<EOM
. ./getfile
oldprefix=''
case "$prefix" in
-'') ;;
-*)
- case "$ans" in
+'') ;;
+*) case "$ans" in
"$prefix") ;;
*) oldprefix="$prefix";;
esac
;;
esac
-prefix="$ans"
-prefixexp="$ansexp"
+
+case "$ans" in
+*?/) prefix=`echo "$ans" | sed 's/.$//'`
+ ;;
+*) prefix="$ans"
+esac
+
+case "$ansexp" in
+*?/) prefixexp=`echo "$ansexp" | sed 's/.$//'`
+ ;;
+*) prefixexp="$ansexp"
+esac
: allow them to override the AFS root
case "$afsroot" in
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
compile_ok='
mc_file=$1;
shift;
-$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs;'
+$cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs > /dev/null 2>&1;'
: stub, used only to satisfy other units
i_stdlib='define'
none)
eval "tp=\"\$$2\"";
case "$tp" in
- ""|" ") eval "$1=\"\$$2\"";;
+ ""|" "|none) eval "$1=\"\$$2\"";;
*) eval "$1=";;
esac;;
esac;;
;;
esac
-
: determine whether to use malloc wrapping
echo " "
case "$usemallocwrap" in
$define|true|[yY]*)
dflt='y'
;;
+ $undef|false|[nN]*)
+ dflt='n'
+ dflt_dtrace=""
+ ;;
?*)
dflt='y'
dflt_dtrace=$usedtrace
if $test "X$sysroot" != X; then
case "$gccversion" in
'') ;;
- *) dflt="$dflt --sysroot $sysroot" ;;
+ *) dflt="$dflt --sysroot=$sysroot" ;;
esac
fi
solaris)
xxx="-R $shrpdir"
;;
- freebsd|mirbsd|netbsd|openbsd|interix|dragonfly|bitrig)
+ freebsd|minix|mirbsd|netbsd|openbsd|interix|dragonfly|bitrig)
xxx="-Wl,-R$shrpdir"
;;
bsdos|linux|irix*|dec_osf|gnu*|haiku)
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
$cat >>try.c <<EOP
#ifdef TRY_gconvert
#define Gconvert(x,n,t,b) gconvert((x),(n),(t),(b))
-char *myname = "gconvert";
+const char *myname = "gconvert";
#endif
#ifdef TRY_gcvt
#define Gconvert(x,n,t,b) gcvt((x),(n),(b))
-char *myname = "gcvt";
+const char *myname = "gcvt";
#endif
#ifdef TRY_qgcvt
#define Gconvert(x,n,t,b) qgcvt((x),(n),(b))
-char *myname = "qgcvt";
+const char *myname = "qgcvt";
#define DOUBLETYPE long double
#endif
#ifdef TRY_sprintf
#else
#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
#endif
-char *myname = "sprintf";
+const char *myname = "sprintf";
#endif
#ifndef DOUBLETYPE
#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)
+void checkit(const char *expect, char *got)
{
if (strcmp(expect, got)) {
printf("%s oddity: Expected %s, got %s\n",
fi
else
echo "$xxx_convert NOT found." >&4
+ xxx_convert=''
fi
done
set fwalk d__fwalk
eval $inlibc
+: see if accept4 exists
+set accept4 d_accept4
+eval $inlibc
+
: Initialize h_fcntl
h_fcntl=false
while $test $# -ge 2; do
case "$1" in
$define) echo "#include <$2>";;
+ literal) echo "$2" ;;
esac ;
shift 2;
done > try.c;
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
*) echo "No, it doesn't." ;;
esac
-
-: check for const keyword
-echo " "
-echo 'Checking to see if your C compiler knows about "const"...' >&4
-$cat >const.c <<'EOCP'
-typedef struct spug { int drokk; } spug;
-int main()
-{
- const char *foo;
- const spug y = { 0 };
-}
-EOCP
-if $cc -c $ccflags const.c >/dev/null 2>&1 ; then
- val="$define"
- echo "Yup, it does."
-else
- val="$undef"
- echo "Nope, it doesn't."
-fi
-set d_const
-eval $setvar
-
: see if copysign exists
set copysign d_copysign
eval $inlibc
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 number of significant digits in a double precision number is known
-echo " "
-$cat >dbl_dig.c <<EOM
-#include <limits.h>
-#include <float.h>
-#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 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
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*) ;;
: 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
: 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
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
eval $inlibc
: see if memmem exists
-set memmem d_memmem
-eval $inlibc
+: We need both a prototype in string.h and the symbol in libc.
+echo " "
+d_memmem_proto=''
+xx1="#$d_gnulibc HAS_GNULIBC"
+xx2='#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)'
+xx3='# define _GNU_SOURCE'
+xx4='#endif'
+set d_memmem_proto memmem literal "$xx1" literal "$xx2" literal "$xx3" literal "$xx4" define string.h
+eval $hasproto
+case "$d_memmem_proto" in
+ define) # see if memmem exists
+ set memmem d_memmem
+ eval $inlibc
+ ;;
+ *) val=$undef
+ set d_memmem
+ eval $setvar
+ ;;
+esac
: see if memrchr exists
-set memrchr d_memrchr
-eval $inlibc
+: We need both a prototype in string.h and the symbol in libc.
+echo " "
+d_memrchr_proto=''
+xx1="#$d_gnulibc HAS_GNULIBC"
+xx2='#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)'
+xx3='# define _GNU_SOURCE'
+xx4='#endif'
+set d_memrchr_proto memrchr literal "$xx1" literal "$xx2" literal "$xx3" literal "$xx4" define string.h
+eval $hasproto
+case "$d_memrchr_proto" in
+ define) # see if memrchr exists
+ set memrchr d_memrchr
+ eval $inlibc
+ ;;
+ *) val=$undef
+ set d_memrchr
+ eval $setvar
+ ;;
+esac
: see if mkdir exists
set mkdir d_mkdir
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
#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
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*) ;;
extern int errno;
#endif
int main() {
- struct semid_ds arg;
+ 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*) ;;
set setlinebuf d_setlinebuf
eval $inlibc
-: see if setlocale exists
-set setlocale d_setlocale
-eval $inlibc
-
: see if locale.h is available
set locale.h i_locale
eval $inhdr
+: see if this system has wctype.h
+set wctype.h i_wctype
+eval $inhdr
+
+: see if towupper exists
+set towupper d_towupper
+eval $inlibc
+
+: check for setlocale function and behavior
+$cat <<EOM
+
+Checking to see if you have setlocale() and its behavior
+EOM
+$cat >try.c <<EOCP
+#include <stdlib.h>
+#include <string.h>
+#$i_locale I_LOCALE
+#ifdef I_LOCALE
+# include <locale.h>
+#endif
+#$i_wctype I_WCTYPE
+#ifdef I_WCTYPE
+# include <wctype.h>
+#endif
+
+int main() {
+ const char * invalid_name = "\a"; /* This is really invalid! */
+ int accepts_any_locale_name = 0;
+ int has_C_UTF8 = 0;
+ unsigned char bad_setlocale = 255;
+
+ /* If LC_CTYPE isn't defined the compilation will fail, and locales will be
+ * disabled. It's hard to imagine an instance where meaningful locale
+ * handling could be done without LC_CTYPE */
+ const char * name = setlocale(LC_CTYPE, "C");
+
+ if (name == NULL || strcmp(name, "C") != 0) {
+ exit(bad_setlocale);
+ }
+
+ name = setlocale(LC_CTYPE, invalid_name);
+ if (name != NULL) {
+
+ /* Let it pass if it accepts the name but gives back one of the C
+ * locales */
+ if (strcmp(name, "C") != 0 && strcmp(name, "C.UTF-8") != 0) {
+ accepts_any_locale_name = 1;
+ }
+ }
+
+ name = setlocale(LC_CTYPE, "C.UTF-8");
+ if (name != NULL) {
+ unsigned char y_with_diaeresis = ('A' == 193) ? 0xDF : 0xFF;
+
+#$d_towupper HAS_TOWUPPER
+#ifdef HAS_TOWUPPER
+
+ /* We assume that if the machine doesn't have the C99 towupper, it
+ * doesn't have C.UTF-8, even if we successfully changed locales to
+ * include it. This seems safer even on platforms that didn't accept
+ * the really invalid name */
+
+ if (towupper(y_with_diaeresis) == 0x178) {
+ has_C_UTF8 = 1;
+ }
+
+#endif
+
+ }
+
+#if 0
+
+ /* Currently unused code to determine if LC_ALL with disparate values uses
+ * category = value pairs or positional, and to determine the separator
+ * between the categories. We could add code so that if the separator were
+ * > '9', we subtract 10; similarly for 'Z' and 'z', and then just about
+ * every possible ASCII separator would fit in the 5 bits available in the
+ * exit code. This would not be true in EBCDIC. And then if LC_ALL is
+ * positional, we probably would want to know the order of the categories.
+ * Using a file between the C program and the shell script would really be
+ * require to do that */
+#ifdef LC_ALL
+
+ unsigned char min_separator = ' ' - 1;
+ unsigned char separator = min_separator;
+ int uses_name_value_pair_names = 0;
+
+ name = setlocale(LC_ALL, "C");
+ if (name == NULL || strcmp(name, "C") != 0) {
+ exit(bad_setlocale);
+ }
+
+ if (has_C_UTF8) {
+ char * pos;
+
+ name = setlocale(LC_CTYPE, "C.UTF-8");
+ if (name == NULL) {
+ exit(bad_setlocale);
+ }
+ name = setlocale(LC_ALL, NULL);
+ if (name == NULL) {
+ exit(bad_setlocale);
+ }
+
+ pos = strstr(name, "LC_CTYPE" "=C.UTF-8");
+ if (pos != NULL) {
+ uses_name_value_pair_names = 1;
+ if (pos == name) {
+ separator = name[sizeof("LC_CTYPE=C.UTF-8") - 1];
+ }
+ else {
+ separator = *(pos - 1);
+ }
+ }
+ else {
+ pos = strstr(name, "C.UTF-8");
+ if (pos == NULL) {
+ /* bad */
+ }
+ else if (pos == name) {
+ separator = name[sizeof("C.UTF-8") - 1];
+ }
+ else {
+ separator = *(pos - 1);
+ }
+ }
+ }
+
+#endif
+#endif
+
+ exit( 0 /* (separator - min_separator) << 3
+ | uses_name_value_pair_names << 2
+ */
+ | has_C_UTF8 << 1
+ | accepts_any_locale_name);
+
+}
+EOCP
+set try
+if eval $compile; then
+ echo "Your system has setlocale()..." >&4
+ $run ./try
+ case $? in
+ 0) echo "and it seems sane" >&4
+ d_setlocale="$define"
+ d_setlocale_accepts_any_locale_name="$undef"
+ d_has_C_UTF8="false"
+ ;;
+ 1) echo "and it seems sane, but accepts any locale name as valid" >&4
+ d_setlocale="$define"
+ d_setlocale_accepts_any_locale_name="$define"
+ d_has_C_UTF8="false"
+ ;;
+ 2) echo "and it seems sane" >&4
+ d_setlocale="$define"
+ d_setlocale_accepts_any_locale_name="$undef"
+ d_has_C_UTF8="true"
+ ;;
+ 3) echo "and it seems sane, but accepts any locale name as valid" >&4
+ d_setlocale="$define"
+ d_setlocale_accepts_any_locale_name="$define"
+ d_has_C_UTF8="true"
+ ;;
+ *) echo "but it doesn't seem to work, so we won't use it." >&4
+ d_setlocale="$undef"
+ d_setlocale_accepts_any_locale_name="$undef"
+ d_has_C_UTF8="false"
+ ;;
+ esac
+else
+ echo "your system does not have setlocale()" >&4
+ d_setlocale="$undef"
+ d_setlocale_accepts_any_locale_name="$undef"
+ d_has_C_UTF8="false"
+fi
+$rm_try
+
: see if setlocale_r exists
set setlocale_r d_setlocale_r
eval $inlibc
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
eval $setvar
$rm_try
+: see if snprintf exists
+set snprintf d_snprintf
+eval $inlibc
+
+: see if vsnprintf exists
+set vsnprintf d_vsnprintf
+eval $inlibc
+
+case "$d_snprintf-$d_vsnprintf" in
+"$define-$define")
+ $cat <<EOM
+Checking whether your snprintf() and vsnprintf() work okay...
+EOM
+ $cat >try.c <<'EOCP'
+/* v?snprintf testing logic courtesy of Russ Allbery.
+ * According to C99:
+ * - if the buffer is too short it still must be \0-terminated
+ * - if the buffer is too short the potentially required length
+ * must be returned and not -1
+ * - if the buffer is NULL the potentially required length
+ * must be returned and not -1 or core dump
+ */
+#include <stdio.h>
+#include <stdarg.h>
+
+char buf[2];
+
+int test (char *format, ...)
+{
+ va_list args;
+ int count;
+
+ va_start (args, format);
+ count = vsnprintf (buf, sizeof buf, format, args);
+ va_end (args);
+ return count;
+}
+
+int main ()
+{
+ return ((test ("%s", "abcd") == 4 && buf[0] == 'a' && buf[1] == '\0'
+ && snprintf (NULL, 0, "%s", "abcd") == 4) ? 0 : 1);
+}
+EOCP
+ set try
+ if eval $compile; then
+ `$run ./try`
+ case "$?" in
+ 0) echo "Your snprintf() and vsnprintf() seem to be working okay." ;;
+ *) cat <<EOM >&4
+Your snprintf() and snprintf() don't seem to be working okay.
+EOM
+ d_snprintf="$undef"
+ d_vsnprintf="$undef"
+ ;;
+ esac
+ else
+ echo "(I can't seem to compile the test program--assuming they don't)"
+ d_snprintf="$undef"
+ d_vsnprintf="$undef"
+ fi
+ $rm_try
+ ;;
+esac
+
: see if sockatmark exists
set sockatmark d_sockatmark
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
-: 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*) ;;
eval $inlibc
: see if strlcat exists
-set strlcat d_strlcat
-eval $inlibc
+: We need both a prototype in string.h and the symbol in libc.
+echo " "
+d_strlcat_proto=''
+xx1="#$d_gnulibc HAS_GNULIBC"
+xx2='#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)'
+xx3='# define _GNU_SOURCE'
+xx4='#endif'
+set d_strlcat_proto strlcat literal "$xx1" literal "$xx2" literal "$xx3" literal "$xx4" define string.h
+eval $hasproto
+case "$d_strlcat_proto" in
+ define) # see if strlcat exists
+ set strlcat d_strlcat
+ eval $inlibc
+ ;;
+ *) val=$undef
+ set d_strlcat
+ eval $setvar
+ ;;
+esac
: see if strlcpy exists
-set strlcpy d_strlcpy
-eval $inlibc
+: We need both a prototype in string.h and the symbol in libc.
+echo " "
+d_strlcpy_proto=''
+xx1="#$d_gnulibc HAS_GNULIBC"
+xx2='#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)'
+xx3='# define _GNU_SOURCE'
+xx4='#endif'
+set d_strlcpy_proto strlcpy literal "$xx1" literal "$xx2" literal "$xx3" literal "$xx4" define string.h
+eval $hasproto
+case "$d_strlcpy_proto" in
+ define) # see if strlcpy exists
+ set strlcpy d_strlcpy
+ eval $inlibc
+ ;;
+ *) val=$undef
+ set d_strlcpy
+ eval $setvar
+ ;;
+esac
: see if strnlen exists
set strnlen d_strnlen
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
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
#ifdef I_STDLIB
# include <stdlib.h>
#endif
-#$i_string I_STRING
-#ifdef I_STRING
-# include <string.h>
-#endif
+#include <string.h>
#$i_langinfo I_LANGINFO
#ifdef I_LANGINFO
# include <langinfo.h>
}
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);
- }
+ char * main_buffer;
+ char save_main_buffer[1000];
+ pthread_t subthread;
+ pthread_attr_t attr;
- strcpy(save_main_buffer, main_buffer);
+ main_buffer = nl_langinfo_l(CODESET, newlocale(LC_ALL_MASK, "C", 0));
- if (pthread_attr_init(&attr) != 0) {
- exit(1);
- }
+ /* If too large for our generous allowance, just assume we don't have
+ * it. */
+ if (strlen(main_buffer) >= sizeof(save_main_buffer)) {
+ exit(1);
+ }
- if (pthread_create(&subthread, &attr, thread_start, NULL) != 0) {
- exit(1);
- }
+ strcpy(save_main_buffer, main_buffer);
- if (pthread_join(subthread, NULL) != 0) {
- exit(1);
- }
+ 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));
+ 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
- ;;
+ 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
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
+: see if towlower exists
+set towlower d_towlower
+eval $inlibc
+
: see if trunc exists
set trunc d_trunc
eval $inlibc
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
echo " "
echo "Checking Berkeley DB version ..." >&4
$cat >try.c <<EOCP
-#$d_const HASCONST
-#ifndef HASCONST
-#define const
-#endif
#include <sys/types.h>
#include <stdio.h>
#$i_stdlib I_STDLIB
echo " "
echo "Checking return type needed for hash for Berkeley DB ..." >&4
$cat >try.c <<EOCP
-#$d_const HASCONST
-#ifndef HASCONST
-#define const
-#endif
#include <sys/types.h>
#include <db.h>
#ifndef DB_VERSION_MAJOR
u_int32_t hash_cb (const void* ptr, size_t size)
{
+ return 0;
}
HASHINFO info;
int main()
echo " "
echo "Checking return type needed for prefix for Berkeley DB ..." >&4
cat >try.c <<EOCP
-#$d_const HASCONST
-#ifndef HASCONST
-#define const
-#endif
#include <sys/types.h>
#include <db.h>
#ifndef DB_VERSION_MAJOR
size_t prefix_cb (const DBT *key1, const DBT *key2)
{
+ return 0;
}
BTREEINFO info;
int main()
#define LONG_DOUBLESIZE $longdblsize
#define LONG_DOUBLEKIND $longdblkind
#endif
-#$i_math I_MATH
-#$i_string I_STRING
-#ifdef I_MATH
#include <math.h>
-#endif
-#ifdef I_STRING
-# include <string.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
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
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
;;
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
i_machcthr="$undef"
fi
-: 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
-
: see if this is a mntent.h system
set mntent.h i_mntent
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
MATH_HAS_NO_SIDE_EFFECTS mc300 mc500 mc68000 mc68010 mc68020
mc68030 mc68040 mc68060 mc68k mc68k32 mc700 mc88000 mc88100
merlin mert MiNT mips MIPSEB MIPSEL MIPS_FPSET MIPS_ISA MIPS_SIM
-MIPS_SZINT MIPS_SZLONG MIPS_SZPTR MODERN_C motorola mpeix MSDOS
+MIPS_SZINT MIPS_SZLONG MIPS_SZPTR MODERN_C motorola MSDOS
MTXINU MULTIMAX MVS mvs M_AMD64 M_ARM M_ARMT M_COFF M_I186 M_I286
M_I386 M_I8086 M_I86 M_I86SM M_IA64 M_IX86 M_PPC M_SYS3 M_SYS5
M_SYSIII M_SYSV M_UNIX M_X86 M_XENIX
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
-[4567].*) case "$optimize$ccflags" in
+[456789].*) 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"
$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
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_clearenv='$d_clearenv'
d_closedir='$d_closedir'
d_cmsghdr_s='$d_cmsghdr_s'
-d_const='$d_const'
d_copysign='$d_copysign'
d_copysignl='$d_copysignl'
d_cplusplus='$d_cplusplus'
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_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_gmtime_r='$d_gmtime_r'
d_gnulibc='$d_gnulibc'
d_grpasswd='$d_grpasswd'
+d_has_C_UTF8='$d_has_C_UTF8'
d_hasmntopt='$d_hasmntopt'
d_htonl='$d_htonl'
d_hypot='$d_hypot'
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_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_setitimer='$d_setitimer'
d_setlinebuf='$d_setlinebuf'
d_setlocale='$d_setlocale'
+d_setlocale_accepts_any_locale_name='$d_setlocale_accepts_any_locale_name'
d_setlocale_r='$d_setlocale_r'
d_setnent='$d_setnent'
d_setnetent_r='$d_setnetent_r'
d_sigsetjmp='$d_sigsetjmp'
d_sin6_scope_id='$d_sin6_scope_id'
d_sitearch='$d_sitearch'
+d_snprintf='$d_snprintf'
d_sockaddr_in6='$d_sockaddr_in6'
d_sockaddr_sa_len='$d_sockaddr_sa_len'
d_sockatmark='$d_sockatmark'
d_stdiobase='$d_stdiobase'
d_stdstdio='$d_stdstdio'
d_strcoll='$d_strcoll'
-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_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_tm_tm_gmtoff='$d_tm_tm_gmtoff'
d_tm_tm_zone='$d_tm_tm_zone'
d_tmpnam_r='$d_tmpnam_r'
+d_towlower='$d_towlower'
+d_towupper='$d_towupper'
d_trunc='$d_trunc'
d_truncate='$d_truncate'
d_truncl='$d_truncl'
d_void_closedir='$d_void_closedir'
d_voidsig='$d_voidsig'
d_voidtty='$d_voidtty'
+d_vsnprintf='$d_vsnprintf'
d_wait4='$d_wait4'
d_waitpid='$d_waitpid'
d_wcscmp='$d_wcscmp'
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_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_stdbool='$i_stdbool'
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_vfork='$i_vfork'
i_wchar='$i_wchar'
+i_wctype='$i_wctype'
i_xlocale='$i_xlocale'
ignore_versioned_solibs='$ignore_versioned_solibs'
inc_version_list='$inc_version_list'
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'