From bf1116d5222f6af74e10ae271f7016de3f54c23c Mon Sep 17 00:00:00 2001 From: Xavier de Gaye Date: Thu, 14 Mar 2019 16:07:38 +0100 Subject: [PATCH] Generate correct pyconfig.h when cross-compiling --- Makefile.pre.in | 1 + .../2019-03-19-10-35-38.bpo-36361.WINBB9.rst | 10 + Misc/build_config_site.sh | 114 + aclocal.m4 | 1 + configure | 2024 ++++++++++++++++- m4/ac_run_ifelse.m4 | 53 + 6 files changed, 2141 insertions(+), 62 deletions(-) create mode 100644 Misc/NEWS.d/next/Build/2019-03-19-10-35-38.bpo-36361.WINBB9.rst create mode 100644 Misc/build_config_site.sh create mode 100644 m4/ac_run_ifelse.m4 diff --git a/Makefile.pre.in b/Makefile.pre.in index 135c3230292b5ba..fb767813f88df8a 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1725,6 +1725,7 @@ clean: pycremoval -rm -f Lib/lib2to3/*Grammar*.pickle -rm -f Programs/_testembed Programs/_freeze_importlib -find build -type f -a ! -name '*.gc??' -exec rm -f {} ';' + -rm -rf build/run_ifelse_cvs -rm -f Include/pydtrace_probes.h -rm -f profile-gen-stamp diff --git a/Misc/NEWS.d/next/Build/2019-03-19-10-35-38.bpo-36361.WINBB9.rst b/Misc/NEWS.d/next/Build/2019-03-19-10-35-38.bpo-36361.WINBB9.rst new file mode 100644 index 000000000000000..232082f16487a83 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2019-03-19-10-35-38.bpo-36361.WINBB9.rst @@ -0,0 +1,10 @@ +When cross-compiling and the ``CONFIG_SITE`` environment variable is unset +or empty, ``configure`` copies the executables, results of the build of the +AC_RUN_IFELSE test programs in configure.ac, to the ``build/run_ifelse_cvs`` +directory. The ``Misc/build_config_site.sh`` script may be run then to +create a config.site file when invoked with one of the parameters as a path +to a shell script that transfers an executable to the platform, target of +the cross-compilation, and runs it on this platform. A second run of +'configure' with the CONFIG_SITE environment variable set to the +**absolute** path of this config.site file allows configuring the Python +build with the correct cache values for this platform. diff --git a/Misc/build_config_site.sh b/Misc/build_config_site.sh new file mode 100644 index 000000000000000..c65126baf937307 --- /dev/null +++ b/Misc/build_config_site.sh @@ -0,0 +1,114 @@ +#! /bin/sh +# +# Build a config.site file using the executables created in the +# 'build/run_ifelse_cvs' directory by configure when cross-compiling. +# +# The first parameter must be a shell script that takes an executable file +# pathname as its only parameter. The script uploads the executable and runs it +# on the host machine, target of the cross-compilation. +# +# The config.site file is a shell script that sets the correct cache values +# for the cross-compilation. It must be used in a second run of configure +# where the environment variable 'CONFIG_SITE' is set to the config.site +# **absolute pathname** (autoconf manual, section 15.8 Setting Site Defaults). + +usage () +{ + test -n "$1" && { echo $1; echo; } 1>&2 + + echo "usage: $pgm push_exec targetdir config_site + + push_exec Path of the shell script used for uploading the executable on + the machine, target of the cross-compilation, and that exits with + the exit status of running this executable on this machine. + + targetdir Directory (possibly out of source) where python is being + cross compiled. The executables and their actions generated by + configure are located in sub-directories of the + build/run_ifelse_cvs sub-directory of 'targetdir'. + + config_site Path of the config.site file generated by $pgm. +" 1>&2 + exit 2 +} + +# List directory content sorted by modification time, oldest first. +list_dir_mtime() +{ + local list="" + for arg in `ls -t $1` + do + list="$arg $list" + done + echo "$list" +} + +# Initialize variables. +pgm=${0##*/} +test "$#" != 3 && usage +test ! -f $1 && usage "error: file '$1' does not exist" +push_exec=$1 +build_dir=$2/build/run_ifelse_cvs +test ! -d $build_dir && usage "error: directory '$build_dir' does not exist" +config_site=$3 + +# First write the list of cache values to config.site. +cv_list=`echo "$(ls $build_dir)" | sed -n -e 's/^\(.*\)$/# \1/p'` +cat << EOF > $config_site +# This script has been generated by $pgm from the following +# list of cache values handled by AC_RUN_IFELSE macros as found +# in configure.ac: +# +$cv_list +# +# The list may be used to verify that this config.site file has not become +# stale in the case of addition of new cache values in configure.ac. +# +# The script sets the following cache values that have been found different +# from the pessimistic default values set by AC_RUN_IFELSE, after running the +# executable on the target machine: + +EOF + +# The tests for the cache variables are run in the same chronological order +# as those run by configure. +ac_cv_pthread_is_default=no +for cv in `list_dir_mtime $build_dir`; do + echo -n "$cv... " + + # Do not run the tests for the cache variables that are not tested + # by configure when the ac_cv_pthread_is_default value as been found + # as 'yes'. + if test $ac_cv_pthread_is_default = yes; then + case $cv in + ac_cv_kpthread|ac_cv_kthread|ac_cv_pthread) + echo "no change, ac_cv_pthread_is_default=$ac_cv_pthread_is_default" + continue;; + esac + fi + + # Run the test. + result=FALSE + if test -f $build_dir/$cv/a.out && \ + `/bin/sh $push_exec $build_dir/$cv/a.out`; then + result=TRUE + fi + + # Add the cache value to config.site if the test result is different from + # the content of ACTION-IF-CROSS-COMPILING. + if cmp -s $build_dir/$cv/$result $build_dir/$cv/CROSS-COMPILING; then + echo "no change" + else + # Check that the result can be run as a script before adding + # it to config.site. + if `/usr/bin/env -i /bin/sh $build_dir/$cv/$result`; then + echo "using ACTION-IF-$result" + cat $build_dir/$cv/$result >> $config_site + if test $cv = ac_cv_pthread_is_default -a $result = TRUE; then + ac_cv_pthread_is_default=yes + fi + else + echo "error: invalid shell statements in ACTION-IF-$result" 1>&2 + fi + fi +done diff --git a/aclocal.m4 b/aclocal.m4 index 85f00dd5fac7f29..1f2f5b158df0d4a 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -290,3 +290,4 @@ AS_VAR_IF([$1], [""], [$5], [$4])dnl m4_include([m4/ax_c_float_words_bigendian.m4]) m4_include([m4/ax_check_openssl.m4]) +m4_include([m4/ac_run_ifelse.m4]) diff --git a/configure b/configure index d0ef8a601b287b6..6a52b8a736028b0 100755 --- a/configure +++ b/configure @@ -783,7 +783,6 @@ infodir docdir oldincludedir includedir -runstatedir localstatedir sharedstatedir sysconfdir @@ -895,7 +894,6 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' -runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1148,15 +1146,6 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; - -runstatedir | --runstatedir | --runstatedi | --runstated \ - | --runstate | --runstat | --runsta | --runst | --runs \ - | --run | --ru | --r) - ac_prev=runstatedir ;; - -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ - | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ - | --run=* | --ru=* | --r=*) - runstatedir=$ac_optarg ;; - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1294,7 +1283,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir runstatedir + libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1447,7 +1436,6 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -5488,7 +5476,81 @@ fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE + +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE + +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_header_stdc=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +: +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5527,6 +5589,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 @@ -7515,7 +7578,79 @@ $as_echo_n "checking whether pthreads are available without options... " >&6; } if ${ac_cv_pthread_is_default+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE + + ac_cv_pthread_is_default=yes + ac_cv_kthread=no + ac_cv_pthread=no + +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE + + ac_cv_pthread_is_default=yes + ac_cv_kthread=no + ac_cv_pthread=no + +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_pthread_is_default=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_pthread_is_default=no +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +void* routine(void* p){return NULL;} + +int main(){ + pthread_t p; + if(pthread_create(&p,NULL,routine,NULL)!=0) + return 1; + (void)pthread_detach(p); + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_pthread_is_default=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7549,6 +7684,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread_is_default" >&5 @@ -7571,7 +7707,71 @@ if ${ac_cv_kpthread+:} false; then : else ac_save_cc="$CC" CC="$CC -Kpthread" -if test "$cross_compiling" = yes; then : +if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_kpthread=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_kpthread=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_kpthread=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_kpthread=no +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +void* routine(void* p){return NULL;} + +int main(){ + pthread_t p; + if(pthread_create(&p,NULL,routine,NULL)!=0) + return 1; + (void)pthread_detach(p); + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_kpthread=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7600,6 +7800,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + CC="$ac_save_cc" fi @@ -7621,7 +7822,71 @@ if ${ac_cv_kthread+:} false; then : else ac_save_cc="$CC" CC="$CC -Kthread" -if test "$cross_compiling" = yes; then : +if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_kthread=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_kthread=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_kthread=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_kthread=no +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +void* routine(void* p){return NULL;} + +int main(){ + pthread_t p; + if(pthread_create(&p,NULL,routine,NULL)!=0) + return 1; + (void)pthread_detach(p); + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_kthread=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7650,6 +7915,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + CC="$ac_save_cc" fi @@ -7671,7 +7937,71 @@ if ${ac_cv_pthread+:} false; then : else ac_save_cc="$CC" CC="$CC -pthread" -if test "$cross_compiling" = yes; then : +if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_pthread=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_pthread=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_pthread=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_pthread=no +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +void* routine(void* p){return NULL;} + +int main(){ + pthread_t p; + if(pthread_create(&p,NULL,routine,NULL)!=0) + return 1; + (void)pthread_detach(p); + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_pthread=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7700,6 +8030,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + CC="$ac_save_cc" fi @@ -7813,7 +8144,81 @@ fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE + +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE + +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_header_stdc=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +: +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7852,6 +8257,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 @@ -9194,10 +9600,42 @@ case $ac_sys_system/$ac_sys_release in else LIBTOOL_CRUFT="" fi - if test "$cross_compiling" = yes; then : - ac_osx_32bit=yes -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_osx_32bit=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_osx_32bit=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_osx_32bit=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_osx_32bit=yes +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -9211,17 +9649,47 @@ else } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_osx_32bit=yes +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out else - ac_osx_32bit=no + cat conftest.c > $ax_run_ifelse_var/conftest.c fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi +fi + if test "$cross_compiling" = yes; then : + ac_osx_32bit=yes +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "${ac_osx_32bit}" = "yes"; then + #include + int main(int argc, char*argv[]) + { + if (sizeof(long) == 4) { + return 0; + } else { + return 1; + } + } + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_osx_32bit=yes +else + ac_osx_32bit=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + + + if test "${ac_osx_32bit}" = "yes"; then case `/usr/bin/arch` in i386) MACOSX_DEFAULT_ARCH="i386" @@ -9982,7 +10450,70 @@ $as_echo_n "checking aligned memory access is required... " >&6; } if ${ac_cv_aligned_required+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_aligned_required=no +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_aligned_required=no +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_aligned_required=yes +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_aligned_required=yes +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int main() +{ + char s[16]; + int i, *p1, *p2; + for (i=0; i < 16; i++) + s[i] = i; + p1 = (int*)(s+1); + p2 = (int*)(s+2); + if (*p1 == *p2) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_aligned_required=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -10011,6 +10542,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_aligned_required" >&5 @@ -10839,7 +11371,71 @@ $as_echo_n "checking if PTHREAD_SCOPE_SYSTEM is supported... " >&6; } if ${ac_cv_pthread_system_supported+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_pthread_system_supported=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_pthread_system_supported=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_pthread_system_supported=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_pthread_system_supported=no +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + void *foo(void *parm) { + return NULL; + } + main() { + pthread_attr_t attr; + pthread_t id; + if (pthread_attr_init(&attr)) exit(-1); + if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1); + if (pthread_create(&id, &attr, foo, NULL)) exit(-1); + exit(0); + } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_pthread_system_supported=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -10869,6 +11465,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread_system_supported" >&5 @@ -12093,7 +12690,67 @@ $as_echo_n "checking for chflags... " >&6; } if ${ac_cv_have_chflags+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_have_chflags=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_have_chflags=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_have_chflags=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_have_chflags=cross +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +int main(int argc, char*argv[]) +{ + if(chflags(argv[0], 0) != 0) + return 1; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_have_chflags=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12119,6 +12776,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_chflags" >&5 $as_echo "$ac_cv_have_chflags" >&6; } @@ -12142,7 +12800,67 @@ $as_echo_n "checking for lchflags... " >&6; } if ${ac_cv_have_lchflags+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_have_lchflags=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_have_lchflags=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_have_lchflags=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_have_lchflags=cross +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +int main(int argc, char*argv[]) +{ + if(lchflags(argv[0], 0) != 0) + return 1; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_have_lchflags=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12168,6 +12886,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_lchflags" >&5 $as_echo "$ac_cv_have_lchflags" >&6; } @@ -13093,7 +13812,152 @@ $as_echo_n "checking getaddrinfo bug... " >&6; } if ${ac_cv_buggy_getaddrinfo+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_buggy_getaddrinfo=no +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_buggy_getaddrinfo=no +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_buggy_getaddrinfo=yes +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING + +if test "${enable_ipv6+set}" = set; then + ac_cv_buggy_getaddrinfo="no -- configured with --(en|dis)able-ipv6" +else + ac_cv_buggy_getaddrinfo=yes +fi +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +#include +#include + +int main() +{ + int passive, gaierr, inet4 = 0, inet6 = 0; + struct addrinfo hints, *ai, *aitop; + char straddr[INET6_ADDRSTRLEN], strport[16]; + + for (passive = 0; passive <= 1; passive++) { + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_UNSPEC; + hints.ai_flags = passive ? AI_PASSIVE : 0; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = IPPROTO_TCP; + if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) { + (void)gai_strerror(gaierr); + goto bad; + } + for (ai = aitop; ai; ai = ai->ai_next) { + if (ai->ai_addr == NULL || + ai->ai_addrlen == 0 || + getnameinfo(ai->ai_addr, ai->ai_addrlen, + straddr, sizeof(straddr), strport, sizeof(strport), + NI_NUMERICHOST|NI_NUMERICSERV) != 0) { + goto bad; + } + switch (ai->ai_family) { + case AF_INET: + if (strcmp(strport, "54321") != 0) { + goto bad; + } + if (passive) { + if (strcmp(straddr, "0.0.0.0") != 0) { + goto bad; + } + } else { + if (strcmp(straddr, "127.0.0.1") != 0) { + goto bad; + } + } + inet4++; + break; + case AF_INET6: + if (strcmp(strport, "54321") != 0) { + goto bad; + } + if (passive) { + if (strcmp(straddr, "::") != 0) { + goto bad; + } + } else { + if (strcmp(straddr, "::1") != 0) { + goto bad; + } + } + inet6++; + break; + case AF_UNSPEC: + goto bad; + break; + default: + /* another family support? */ + break; + } + } + freeaddrinfo(aitop); + aitop = NULL; + } + + if (!(inet4 == 0 || inet4 == 2)) + goto bad; + if (!(inet6 == 0 || inet6 == 2)) + goto bad; + + if (aitop) + freeaddrinfo(aitop); + return 0; + + bad: + if (aitop) + freeaddrinfo(aitop); + return 1; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : if test "${enable_ipv6+set}" = set; then ac_cv_buggy_getaddrinfo="no -- configured with --(en|dis)able-ipv6" @@ -13203,6 +14067,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi fi @@ -14363,11 +15228,81 @@ $as_echo_n "checking for x87-style double rounding... " >&6; } # $BASECFLAGS may affect the result ac_save_cc="$CC" CC="$CC $BASECFLAGS" -if test "$cross_compiling" = yes; then : - ac_cv_x87_double_rounding=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_x87_double_rounding=no +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_x87_double_rounding=no +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_x87_double_rounding=yes +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_x87_double_rounding=no +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +int main() { + volatile double x, y, z; + /* 1./(1-2**-53) -> 1+2**-52 (correct), 1.0 (double rounding) */ + x = 0.99999999999999989; /* 1-2**-53 */ + y = 1./x; + if (y != 1.) + exit(0); + /* 1e16+2.99999 -> 1e16+2. (correct), 1e16+4. (double rounding) */ + x = 1e16; + y = 2.99999; + z = x + y; + if (z != 1e16+4.) + exit(0); + /* both tests show evidence of double rounding */ + exit(1); +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : + ac_cv_x87_double_rounding=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ #include #include @@ -14398,6 +15333,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + CC="$ac_save_cc" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_x87_double_rounding" >&5 $as_echo "$ac_cv_x87_double_rounding" >&6; } @@ -14484,7 +15420,75 @@ $as_echo_n "checking whether POSIX semaphores are enabled... " >&6; } if ${ac_cv_posix_semaphores_enabled+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_posix_semaphores_enabled=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_posix_semaphores_enabled=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_posix_semaphores_enabled=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_posix_semaphores_enabled=yes +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +#include + +int main(void) { + sem_t *a = sem_open("/autoconf", O_CREAT, S_IRUSR|S_IWUSR, 0); + if (a == SEM_FAILED) { + perror("sem_open"); + return 1; + } + sem_close(a); + sem_unlink("/autoconf"); + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_posix_semaphores_enabled=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14518,6 +15522,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_posix_semaphores_enabled" >&5 @@ -14535,7 +15540,79 @@ $as_echo_n "checking for broken sem_getvalue... " >&6; } if ${ac_cv_broken_sem_getvalue+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_broken_sem_getvalue=no +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_broken_sem_getvalue=no +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_broken_sem_getvalue=yes +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_broken_sem_getvalue=yes +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +#include + +int main(void){ + sem_t *a = sem_open("/autocftw", O_CREAT, S_IRUSR|S_IWUSR, 0); + int count; + int res; + if(a==SEM_FAILED){ + perror("sem_open"); + return 1; + + } + res = sem_getvalue(a, &count); + sem_close(a); + sem_unlink("/autocftw"); + return res==-1 ? 1 : 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_broken_sem_getvalue=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14573,6 +15650,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_sem_getvalue" >&5 @@ -14798,7 +15876,65 @@ $as_echo_n "checking whether wchar_t is signed... " >&6; } $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_wchar_t_signed=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_wchar_t_signed=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_wchar_t_signed=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_wchar_t_signed=yes +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + int main() + { + /* Success: exit code 0 */ + exit((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1); + } + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_wchar_t_signed=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14821,6 +15957,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_wchar_t_signed" >&5 @@ -14976,7 +16113,114 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_c_bigendian=no +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_c_bigendian=no +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_c_bigendian=yes +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +# Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15048,6 +16292,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 @@ -15124,7 +16369,63 @@ if ${ac_cv_rshift_extends_sign+:} false; then : $as_echo_n "(cached) " >&6 else -if test "$cross_compiling" = yes; then : +if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_rshift_extends_sign=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_rshift_extends_sign=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_rshift_extends_sign=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_rshift_extends_sign=yes +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int main() +{ + exit(((-1)>>3 == -1) ? 0 : 1); +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_rshift_extends_sign=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15145,6 +16446,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rshift_extends_sign" >&5 @@ -15553,10 +16855,42 @@ if ${ac_cv_broken_nice+:} false; then : $as_echo_n "(cached) " >&6 else -if test "$cross_compiling" = yes; then : - ac_cv_broken_nice=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_broken_nice=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_broken_nice=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_broken_nice=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_broken_nice=no +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -15570,18 +16904,48 @@ int main() } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_broken_nice=yes +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out else - ac_cv_broken_nice=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + cat conftest.c > $ax_run_ifelse_var/conftest.c fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_nice" >&5 +fi + if test "$cross_compiling" = yes; then : + ac_cv_broken_nice=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +int main() +{ + int val1 = nice(1); + if (val1 != -1 && val1 == nice(2)) + exit(0); + exit(1); +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_broken_nice=yes +else + ac_cv_broken_nice=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_nice" >&5 $as_echo "$ac_cv_broken_nice" >&6; } if test "$ac_cv_broken_nice" = yes then @@ -15595,7 +16959,76 @@ $as_echo_n "checking for broken poll()... " >&6; } if ${ac_cv_broken_poll+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_broken_poll=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_broken_poll=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_broken_poll=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_broken_poll=no +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int main() +{ + struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 }; + int poll_test; + + close (42); + + poll_test = poll(&poll_struct, 1, 0); + if (poll_test < 0) + return 0; + else if (poll_test == 0 && poll_struct.revents != POLLNVAL) + return 0; + else + return 1; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_broken_poll=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15629,6 +17062,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_poll" >&5 @@ -15647,7 +17081,121 @@ if ${ac_cv_working_tzset+:} false; then : $as_echo_n "(cached) " >&6 else -if test "$cross_compiling" = yes; then : +if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_working_tzset=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_working_tzset=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_working_tzset=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_working_tzset=no +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + +#if HAVE_TZNAME +extern char *tzname[]; +#endif + +int main() +{ + /* Note that we need to ensure that not only does tzset(3) + do 'something' with localtime, but it works as documented + in the library reference and as expected by the test suite. + This includes making sure that tzname is set properly if + tm->tm_zone does not exist since it is the alternative way + of getting timezone info. + + Red Hat 6.2 doesn't understand the southern hemisphere + after New Year's Day. + */ + + time_t groundhogday = 1044144000; /* GMT-based */ + time_t midyear = groundhogday + (365 * 24 * 3600 / 2); + + putenv("TZ=UTC+0"); + tzset(); + if (localtime(&groundhogday)->tm_hour != 0) + exit(1); +#if HAVE_TZNAME + /* For UTC, tzname[1] is sometimes "", sometimes " " */ + if (strcmp(tzname[0], "UTC") || + (tzname[1][0] != 0 && tzname[1][0] != ' ')) + exit(1); +#endif + + putenv("TZ=EST+5EDT,M4.1.0,M10.5.0"); + tzset(); + if (localtime(&groundhogday)->tm_hour != 19) + exit(1); +#if HAVE_TZNAME + if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT")) + exit(1); +#endif + + putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0"); + tzset(); + if (localtime(&groundhogday)->tm_hour != 11) + exit(1); +#if HAVE_TZNAME + if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT")) + exit(1); +#endif + +#if HAVE_STRUCT_TM_TM_ZONE + if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT")) + exit(1); + if (strcmp(localtime(&midyear)->tm_zone, "AEST")) + exit(1); +#endif + + exit(0); +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_working_tzset=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15726,6 +17274,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_tzset" >&5 @@ -16332,7 +17881,94 @@ $as_echo_n "checking for %zd printf() format support... " >&6; } if ${ac_cv_have_size_t_format+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_have_size_t_format=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_have_size_t_format=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_have_size_t_format=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_have_size_t_format="cross -- assuming yes" + +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + +#ifdef HAVE_SYS_TYPES_H +#include +#endif + +#ifdef HAVE_SSIZE_T +typedef ssize_t Py_ssize_t; +#elif SIZEOF_VOID_P == SIZEOF_LONG +typedef long Py_ssize_t; +#else +typedef int Py_ssize_t; +#endif + +int main() +{ + char buffer[256]; + + if(sprintf(buffer, "%zd", (size_t)123) < 0) + return 1; + + if (strcmp(buffer, "123")) + return 1; + + if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0) + return 1; + + if (strcmp(buffer, "-123")) + return 1; + + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_have_size_t_format="cross -- assuming yes" else @@ -16384,6 +18020,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_size_t_format" >&5 $as_echo "$ac_cv_have_size_t_format" >&6; } @@ -16416,7 +18053,67 @@ $as_echo_n "checking for broken mbstowcs... " >&6; } if ${ac_cv_broken_mbstowcs+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_broken_mbstowcs=no +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_broken_mbstowcs=no +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_broken_mbstowcs=yes +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +ac_cv_broken_mbstowcs=no +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +int main() { + size_t len = -1; + const char *str = "text"; + len = mbstowcs(NULL, str, 0); + return (len != 4); +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : ac_cv_broken_mbstowcs=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -16441,6 +18138,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_mbstowcs" >&5 @@ -16487,7 +18185,73 @@ $as_echo_n "checking whether $CC supports computed gotos... " >&6; } if ${ac_cv_computed_gotos+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +ac_cv_computed_gotos=yes +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +ac_cv_computed_gotos=yes +AXEOF + + cat < $ax_run_ifelse_var/FALSE +ac_cv_computed_gotos=no +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +if test "${with_computed_gotos+set}" = set; then + ac_cv_computed_gotos="$with_computed_gotos -- configured --with(out)-computed-gotos" + else + ac_cv_computed_gotos=no + fi +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int main(int argc, char **argv) +{ + static void *targets[1] = { &&LABEL1 }; + goto LABEL2; +LABEL1: + return 0; +LABEL2: + goto *targets[0]; + return 1; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : if test "${with_computed_gotos+set}" = set; then ac_cv_computed_gotos="$with_computed_gotos -- configured --with(out)-computed-gotos" else @@ -16518,6 +18282,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_computed_gotos" >&5 @@ -16591,7 +18356,73 @@ CFLAGS="-O2 -D_FORTIFY_SOURCE=2" if test "$have_O2" = no; then CFLAGS="" fi -if test "$cross_compiling" = yes; then : +if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +have_glibc_memmove_bug=no +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +have_glibc_memmove_bug=no +AXEOF + + cat < $ax_run_ifelse_var/FALSE +have_glibc_memmove_bug=yes +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +have_glibc_memmove_bug=undefined +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +void foo(void *p, void *q) { memmove(p, q, 19); } +int main() { + char a[32] = "123456789000000000"; + foo(&a[9], a); + if (strcmp(a, "123456789123456789000000000") != 0) + return 1; + foo(a, &a[9]); + if (strcmp(a, "123456789000000000") != 0) + return 1; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : have_glibc_memmove_bug=undefined else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -16622,6 +18453,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + CFLAGS="$saved_cflags" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_glibc_memmove_bug" >&5 $as_echo "$have_glibc_memmove_bug" >&6; } @@ -16641,7 +18473,74 @@ if test "$have_gcc_asm_for_x87" = yes; then $as_echo_n "checking for gcc ipa-pure-const bug... " >&6; } saved_cflags="$CFLAGS" CFLAGS="-O2" - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes -a -z "$CONFIG_SITE"; then : + # Create a (secure) tmp directory for tmp files. +: "${TMPDIR:=/tmp}" +{ + tmp=`(umask 077 && mktemp -d "$TMPDIR/ac_rXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=$TMPDIR/ac_r$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in $TMPDIR" "$LINENO" 5 + cat < $tmp/ACTION-IF-TRUE +have_ipa_pure_const_bug=no +AXEOF + + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^[ \t\n]*$/d' \ + -e 's/^[ \t\n]*\([_a-zA-Z][_0-9a-zA-Z]*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + if test -n "$ax_run_ifelse_var"; then : + ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + as_dir=$ax_run_ifelse_var; as_fn_mkdir_p + cat < $ax_run_ifelse_var/TRUE +have_ipa_pure_const_bug=no +AXEOF + + cat < $ax_run_ifelse_var/FALSE +have_ipa_pure_const_bug=yes +AXEOF + + cat < $ax_run_ifelse_var/CROSS-COMPILING +have_ipa_pure_const_bug=undefined +AXEOF + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + __attribute__((noinline)) int + foo(int *p) { + int r; + asm ( "movl \$6, (%1)\n\t" + "xorl %0, %0\n\t" + : "=r" (r) : "r" (p) : "memory" + ); + return r; + } + int main() { + int p = 8; + if ((foo(&p) ? : p) != 6) + return 1; + return 0; + } + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out +else + cat conftest.c > $ax_run_ifelse_var/conftest.c +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +fi + if test "$cross_compiling" = yes; then : have_ipa_pure_const_bug=undefined else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -16673,6 +18572,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + CFLAGS="$saved_cflags" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ipa_pure_const_bug" >&5 $as_echo "$have_ipa_pure_const_bug" >&6; } diff --git a/m4/ac_run_ifelse.m4 b/m4/ac_run_ifelse.m4 new file mode 100644 index 000000000000000..c33c898181a7202 --- /dev/null +++ b/m4/ac_run_ifelse.m4 @@ -0,0 +1,53 @@ +m4_rename([AC_RUN_IFELSE], [_AX_RUN_IFELSE]) + +# AC_RUN_IFELSE(PROGRAM, +# [ACTION-IF-TRUE], [ACTION-IF-FALSE], +# [ACTION-IF-CROSS-COMPILING = RUNTIME-ERROR]) +# ---------------------------------------------------------- +# Compile, link, and run. +# If cross-compiling and ACTION-IF-TRUE begins by setting the value of a +# variable, create a directory after the name of this variable in +# build/run_ifelse_cvs with the following files: +# 'TRUE' contains ACTION-IF-TRUE +# 'FALSE' contains ACTION-IF-FALSE +# 'CROSS-COMPILING' contains ACTION-IF-CROSS-COMPILING +# 'a.out' executable, product of AC_LINK_IFELSE +# 'conftest.c' source code if the link failed + +dnl Quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output. +dnl Unfortunately, we must resort to using those quadrigraphs as AC_RUN_IFELSE +dnl macros are not all quoted in configure.ac (as they should). +AC_DEFUN([AC_RUN_IFELSE], + [AS_IF([test "$cross_compiling" = yes -a -z "$CONFIG_SITE"], + [AS_TMPDIR([ac_r]) + _AX_VAR_CAT([$2], [$tmp/ACTION-IF-TRUE]) + ax_run_ifelse_var=`cat $tmp/ACTION-IF-TRUE | LC_ALL=C sed -n \ + -e '/^@<:@ \t\n@:>@*$/d' \ + -e 's/^@<:@ \t\n@:>@*\(@<:@_a-zA-Z@:>@@<:@_0-9a-zA-Z@:>@*\)=.*/\1/p' \ + -e 'q'` + rm -r $tmp + AS_IF([test -n "$ax_run_ifelse_var"], + [ax_run_ifelse_var=build/run_ifelse_cvs/$ax_run_ifelse_var + AS_MKDIR_P([$ax_run_ifelse_var]) + _AX_VAR_CAT([$2], [$ax_run_ifelse_var/TRUE]) + _AX_VAR_CAT([$3], [$ax_run_ifelse_var/FALSE]) + _AX_VAR_CAT([$4], [$ax_run_ifelse_var/CROSS-COMPILING]) + AC_LINK_IFELSE([$1], + [cat conftest$EXEEXT > $ax_run_ifelse_var/a.out + chmod a+x $ax_run_ifelse_var/a.out], + [cat conftest.c > $ax_run_ifelse_var/conftest.c]) + ]) + ]) + _AX_RUN_IFELSE($@) +])# AC_RUN_IFELSE + + +# _AX_VAR_CAT(CONTENT, FILE-NAME) +# -------------------------------------- +# Copy CONTENT to FILE-NAME. + +AC_DEFUN([_AX_VAR_CAT], + [cat < $2 +$1 +AXEOF +])# _AX_VAR_CAT