diff --git a/config/ChangeLog b/config/ChangeLog index f3d9fe98d70..67763a20ea6 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,7 @@ +2007-10-02 Richard Sandiford + + * no-executables.m4 (GCC_TRY_COMPILE_OR_LINK): New function. + 2007-09-21 Richard Sandiford * mt-sde (CFLAGS_FOR_TARGET): Replace -fno-optimize-sibling-calls diff --git a/config/no-executables.m4 b/config/no-executables.m4 index 54e5a024288..c4d0b70c375 100644 --- a/config/no-executables.m4 +++ b/config/no-executables.m4 @@ -59,3 +59,11 @@ fi) m4_divert_pop()dnl ])# GCC_NO_EXECUTABLES + +# Use the strongest available test out of AC_TRY_COMPILE and AC_TRY_LINK. +AC_DEFUN([GCC_TRY_COMPILE_OR_LINK], +[if test x$gcc_no_link = xyes; then + AC_TRY_COMPILE([$1], [$2], [$3], [$4]) +else + AC_TRY_LINK([$1], [$2], [$3], [$4]) +fi]) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 2022ff85a0c..a87645a9979 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2007-10-02 Richard Sandiford + + * acinclude.m4 (GLIBCXX_ENABLE_C99): Temporarily add + -fno-exceptions to CXXFLAGS. Use GCC_TRY_COMPILE_OR_LINK. + Make the tests assign results to volatile variables. + * configure: Regenerate. + 2007-10-02 Benjamin Kosnik * testsuite/25_algorithms/binary_search/2.cc: Split into... diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index c26225ee27c..b0263ab99e5 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -763,24 +763,32 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [ AC_LANG_SAVE AC_LANG_CPLUSPLUS + # Use -fno-exceptions so that the C driver can link these tests without + # hitting undefined references to personality routines. + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fno-exceptions" + # Check for the existence of functions used if C99 is enabled. AC_MSG_CHECKING([for ISO C99 support in ]) AC_CACHE_VAL(ac_c99_math, [ - AC_TRY_COMPILE([#include ], - [fpclassify(0.0); - isfinite(0.0); - isinf(0.0); - isnan(0.0); - isnormal(0.0); - signbit(0.0); - isgreater(0.0,0.0); - isgreaterequal(0.0,0.0); - isless(0.0,0.0); - islessequal(0.0,0.0); - islessgreater(0.0,0.0); - islessgreater(0.0,0.0); - isunordered(0.0,0.0); - ],[ac_c99_math=yes], [ac_c99_math=no]) + GCC_TRY_COMPILE_OR_LINK( + [#include + volatile double d1, d2; + volatile int i;], + [i = fpclassify(d1); + i = isfinite(d1); + i = isinf(d1); + i = isnan(d1); + i = isnormal(d1); + i = signbit(d1); + i = isgreater(d1, d2); + i = isgreaterequal(d1, d2); + i = isless(d1, d2); + i = islessequal(d1, d2); + i = islessgreater(d1, d2); + i = islessgreater(d1, d2); + i = isunordered(d1, d2); + ],[ac_c99_math=yes], [ac_c99_math=no]) ]) AC_MSG_RESULT($ac_c99_math) if test x"$ac_c99_math" = x"yes"; then @@ -798,47 +806,54 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [ ac_c99_complex=no; if test x"$ac_has_complex_h" = x"yes"; then AC_MSG_CHECKING([for ISO C99 support in ]) - AC_TRY_COMPILE([#include ], - [typedef __complex__ float float_type; float_type tmpf; - cabsf(tmpf); - cargf(tmpf); - ccosf(tmpf); - ccoshf(tmpf); - cexpf(tmpf); - clogf(tmpf); - csinf(tmpf); - csinhf(tmpf); - csqrtf(tmpf); - ctanf(tmpf); - ctanhf(tmpf); - cpowf(tmpf, tmpf); - typedef __complex__ double double_type; double_type tmpd; - cabs(tmpd); - carg(tmpd); - ccos(tmpd); - ccosh(tmpd); - cexp(tmpd); - clog(tmpd); - csin(tmpd); - csinh(tmpd); - csqrt(tmpd); - ctan(tmpd); - ctanh(tmpd); - cpow(tmpd, tmpd); - typedef __complex__ long double ld_type; ld_type tmpld; - cabsl(tmpld); - cargl(tmpld); - ccosl(tmpld); - ccoshl(tmpld); - cexpl(tmpld); - clogl(tmpld); - csinl(tmpld); - csinhl(tmpld); - csqrtl(tmpld); - ctanl(tmpld); - ctanhl(tmpld); - cpowl(tmpld, tmpld); - ],[ac_c99_complex=yes], [ac_c99_complex=no]) + GCC_TRY_COMPILE_OR_LINK( + [#include + typedef __complex__ float float_type; + typedef __complex__ double double_type; + typedef __complex__ long double ld_type; + volatile float_type tmpf; + volatile double_type tmpd; + volatile ld_type tmpld; + volatile float f; + volatile double d; + volatile long double ld;], + [f = cabsf(tmpf); + f = cargf(tmpf); + tmpf = ccosf(tmpf); + tmpf = ccoshf(tmpf); + tmpf = cexpf(tmpf); + tmpf = clogf(tmpf); + tmpf = csinf(tmpf); + tmpf = csinhf(tmpf); + tmpf = csqrtf(tmpf); + tmpf = ctanf(tmpf); + tmpf = ctanhf(tmpf); + tmpf = cpowf(tmpf, tmpf); + d = cabs(tmpd); + d = carg(tmpd); + tmpd = ccos(tmpd); + tmpd = ccosh(tmpd); + tmpd = cexp(tmpd); + tmpd = clog(tmpd); + tmpd = csin(tmpd); + tmpd = csinh(tmpd); + tmpd = csqrt(tmpd); + tmpd = ctan(tmpd); + tmpd = ctanh(tmpd); + tmpd = cpow(tmpd, tmpd); + ld = cabsl(tmpld); + ld = cargl(tmpld); + tmpld = ccosl(tmpld); + tmpld = ccoshl(tmpld); + tmpld = cexpl(tmpld); + tmpld = clogl(tmpld); + tmpld = csinl(tmpld); + tmpld = csinhl(tmpld); + tmpld = csqrtl(tmpld); + tmpld = ctanl(tmpld); + tmpld = ctanhl(tmpld); + tmpld = cpowl(tmpld, tmpld); + ],[ac_c99_complex=yes], [ac_c99_complex=no]) fi AC_MSG_RESULT($ac_c99_complex) if test x"$ac_c99_complex" = x"yes"; then @@ -851,35 +866,43 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [ # Check for the existence in of vscanf, et. al. AC_MSG_CHECKING([for ISO C99 support in ]) AC_CACHE_VAL(ac_c99_stdio, [ - AC_TRY_COMPILE([#include - #include - void foo(char* fmt, ...) - { - va_list args; va_start(args, fmt); - vfscanf(stderr, "%i", args); - vscanf("%i", args); - vsnprintf(fmt, 0, "%i", args); - vsscanf(fmt, "%i", args); - }], - [snprintf("12", 0, "%i");], - [ac_c99_stdio=yes], [ac_c99_stdio=no]) + GCC_TRY_COMPILE_OR_LINK( + [#include + #include + void foo(char* fmt, ...) + { + va_list args; va_start(args, fmt); + vfscanf(stderr, "%i", args); + vscanf("%i", args); + vsnprintf(fmt, 0, "%i", args); + vsscanf(fmt, "%i", args); + }], + [snprintf("12", 0, "%i");], + [ac_c99_stdio=yes], [ac_c99_stdio=no]) ]) AC_MSG_RESULT($ac_c99_stdio) # Check for the existence in of lldiv_t, et. al. AC_MSG_CHECKING([for ISO C99 support in ]) AC_CACHE_VAL(ac_c99_stdlib, [ - AC_TRY_COMPILE([#include ], - [char* tmp; - strtof("gnu", &tmp); - strtold("gnu", &tmp); - strtoll("gnu", &tmp, 10); - strtoull("gnu", &tmp, 10); - llabs(10); - lldiv(10,1); - atoll("10"); - _Exit(0); - lldiv_t mydivt;],[ac_c99_stdlib=yes], [ac_c99_stdlib=no]) + GCC_TRY_COMPILE_OR_LINK( + [#include + volatile float f; + volatile long double ld; + volatile unsigned long long ll; + lldiv_t mydivt;], + [char* tmp; + f = strtof("gnu", &tmp); + ld = strtold("gnu", &tmp); + ll = strtoll("gnu", &tmp, 10); + ll = strtoull("gnu", &tmp, 10); + ll = llabs(10); + mydivt = lldiv(10,1); + ll = mydivt.quot; + ll = mydivt.rem; + ll = atoll("10"); + _Exit(0); + ],[ac_c99_stdlib=yes], [ac_c99_stdlib=no]) ]) AC_MSG_RESULT($ac_c99_stdlib) @@ -940,6 +963,7 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [ , , and can be used or exposed.]) fi + CXXFLAGS="$ac_save_CXXFLAGS" AC_LANG_RESTORE fi diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index e42e1bbaf4f..772e6de3c7e 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -15436,6 +15436,11 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + # Use -fno-exceptions so that the C driver can link these tests without + # hitting undefined references to personality routines. + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fno-exceptions" + # Check for the existence of functions used if C99 is enabled. echo "$as_me:$LINENO: checking for ISO C99 support in " >&5 echo $ECHO_N "checking for ISO C99 support in ... $ECHO_C" >&6 @@ -15443,6 +15448,7 @@ echo $ECHO_N "checking for ISO C99 support in ... $ECHO_C" >&6 echo $ECHO_N "(cached) $ECHO_C" >&6 else + if test x$gcc_no_link = xyes; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -15450,22 +15456,24 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include + volatile double d1, d2; + volatile int i; int main () { -fpclassify(0.0); - isfinite(0.0); - isinf(0.0); - isnan(0.0); - isnormal(0.0); - signbit(0.0); - isgreater(0.0,0.0); - isgreaterequal(0.0,0.0); - isless(0.0,0.0); - islessequal(0.0,0.0); - islessgreater(0.0,0.0); - islessgreater(0.0,0.0); - isunordered(0.0,0.0); +i = fpclassify(d1); + i = isfinite(d1); + i = isinf(d1); + i = isnan(d1); + i = isnormal(d1); + i = signbit(d1); + i = isgreater(d1, d2); + i = isgreaterequal(d1, d2); + i = isless(d1, d2); + i = islessequal(d1, d2); + i = islessgreater(d1, d2); + i = islessgreater(d1, d2); + i = isunordered(d1, d2); ; return 0; @@ -15501,6 +15509,74 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_c99_math=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +else + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + volatile double d1, d2; + volatile int i; +int +main () +{ +i = fpclassify(d1); + i = isfinite(d1); + i = isinf(d1); + i = isnan(d1); + i = isnormal(d1); + i = signbit(d1); + i = isgreater(d1, d2); + i = isgreaterequal(d1, d2); + i = isless(d1, d2); + i = islessequal(d1, d2); + i = islessgreater(d1, d2); + i = islessgreater(d1, d2); + i = isunordered(d1, d2); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_c99_math=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_c99_math=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi fi @@ -15826,55 +15902,62 @@ done if test x"$ac_has_complex_h" = x"yes"; then echo "$as_me:$LINENO: checking for ISO C99 support in " >&5 echo $ECHO_N "checking for ISO C99 support in ... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include + typedef __complex__ float float_type; + typedef __complex__ double double_type; + typedef __complex__ long double ld_type; + volatile float_type tmpf; + volatile double_type tmpd; + volatile ld_type tmpld; + volatile float f; + volatile double d; + volatile long double ld; int main () { -typedef __complex__ float float_type; float_type tmpf; - cabsf(tmpf); - cargf(tmpf); - ccosf(tmpf); - ccoshf(tmpf); - cexpf(tmpf); - clogf(tmpf); - csinf(tmpf); - csinhf(tmpf); - csqrtf(tmpf); - ctanf(tmpf); - ctanhf(tmpf); - cpowf(tmpf, tmpf); - typedef __complex__ double double_type; double_type tmpd; - cabs(tmpd); - carg(tmpd); - ccos(tmpd); - ccosh(tmpd); - cexp(tmpd); - clog(tmpd); - csin(tmpd); - csinh(tmpd); - csqrt(tmpd); - ctan(tmpd); - ctanh(tmpd); - cpow(tmpd, tmpd); - typedef __complex__ long double ld_type; ld_type tmpld; - cabsl(tmpld); - cargl(tmpld); - ccosl(tmpld); - ccoshl(tmpld); - cexpl(tmpld); - clogl(tmpld); - csinl(tmpld); - csinhl(tmpld); - csqrtl(tmpld); - ctanl(tmpld); - ctanhl(tmpld); - cpowl(tmpld, tmpld); +f = cabsf(tmpf); + f = cargf(tmpf); + tmpf = ccosf(tmpf); + tmpf = ccoshf(tmpf); + tmpf = cexpf(tmpf); + tmpf = clogf(tmpf); + tmpf = csinf(tmpf); + tmpf = csinhf(tmpf); + tmpf = csqrtf(tmpf); + tmpf = ctanf(tmpf); + tmpf = ctanhf(tmpf); + tmpf = cpowf(tmpf, tmpf); + d = cabs(tmpd); + d = carg(tmpd); + tmpd = ccos(tmpd); + tmpd = ccosh(tmpd); + tmpd = cexp(tmpd); + tmpd = clog(tmpd); + tmpd = csin(tmpd); + tmpd = csinh(tmpd); + tmpd = csqrt(tmpd); + tmpd = ctan(tmpd); + tmpd = ctanh(tmpd); + tmpd = cpow(tmpd, tmpd); + ld = cabsl(tmpld); + ld = cargl(tmpld); + tmpld = ccosl(tmpld); + tmpld = ccoshl(tmpld); + tmpld = cexpl(tmpld); + tmpld = clogl(tmpld); + tmpld = csinl(tmpld); + tmpld = csinhl(tmpld); + tmpld = csqrtl(tmpld); + tmpld = ctanl(tmpld); + tmpld = ctanhl(tmpld); + tmpld = cpowl(tmpld, tmpld); ; return 0; @@ -15910,6 +15993,104 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_c99_complex=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +else + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + typedef __complex__ float float_type; + typedef __complex__ double double_type; + typedef __complex__ long double ld_type; + volatile float_type tmpf; + volatile double_type tmpd; + volatile ld_type tmpld; + volatile float f; + volatile double d; + volatile long double ld; +int +main () +{ +f = cabsf(tmpf); + f = cargf(tmpf); + tmpf = ccosf(tmpf); + tmpf = ccoshf(tmpf); + tmpf = cexpf(tmpf); + tmpf = clogf(tmpf); + tmpf = csinf(tmpf); + tmpf = csinhf(tmpf); + tmpf = csqrtf(tmpf); + tmpf = ctanf(tmpf); + tmpf = ctanhf(tmpf); + tmpf = cpowf(tmpf, tmpf); + d = cabs(tmpd); + d = carg(tmpd); + tmpd = ccos(tmpd); + tmpd = ccosh(tmpd); + tmpd = cexp(tmpd); + tmpd = clog(tmpd); + tmpd = csin(tmpd); + tmpd = csinh(tmpd); + tmpd = csqrt(tmpd); + tmpd = ctan(tmpd); + tmpd = ctanh(tmpd); + tmpd = cpow(tmpd, tmpd); + ld = cabsl(tmpld); + ld = cargl(tmpld); + tmpld = ccosl(tmpld); + tmpld = ccoshl(tmpld); + tmpld = cexpl(tmpld); + tmpld = clogl(tmpld); + tmpld = csinl(tmpld); + tmpld = csinhl(tmpld); + tmpld = csqrtl(tmpld); + tmpld = ctanl(tmpld); + tmpld = ctanhl(tmpld); + tmpld = cpowl(tmpld, tmpld); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_c99_complex=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_c99_complex=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi fi echo "$as_me:$LINENO: result: $ac_c99_complex" >&5 echo "${ECHO_T}$ac_c99_complex" >&6 @@ -15928,6 +16109,7 @@ echo $ECHO_N "checking for ISO C99 support in ... $ECHO_C" >&6 echo $ECHO_N "(cached) $ECHO_C" >&6 else + if test x$gcc_no_link = xyes; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -15935,15 +16117,15 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include - #include - void foo(char* fmt, ...) - { - va_list args; va_start(args, fmt); - vfscanf(stderr, "%i", args); - vscanf("%i", args); - vsnprintf(fmt, 0, "%i", args); - vsscanf(fmt, "%i", args); - } + #include + void foo(char* fmt, ...) + { + va_list args; va_start(args, fmt); + vfscanf(stderr, "%i", args); + vscanf("%i", args); + vsnprintf(fmt, 0, "%i", args); + vsscanf(fmt, "%i", args); + } int main () { @@ -15982,6 +16164,68 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_c99_stdio=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +else + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + #include + void foo(char* fmt, ...) + { + va_list args; va_start(args, fmt); + vfscanf(stderr, "%i", args); + vscanf("%i", args); + vsnprintf(fmt, 0, "%i", args); + vsscanf(fmt, "%i", args); + } +int +main () +{ +snprintf("12", 0, "%i"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_c99_stdio=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_c99_stdio=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi fi @@ -15995,6 +16239,7 @@ echo $ECHO_N "checking for ISO C99 support in ... $ECHO_C" >&6 echo $ECHO_N "(cached) $ECHO_C" >&6 else + if test x$gcc_no_link = xyes; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -16002,19 +16247,25 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include + volatile float f; + volatile long double ld; + volatile unsigned long long ll; + lldiv_t mydivt; int main () { char* tmp; - strtof("gnu", &tmp); - strtold("gnu", &tmp); - strtoll("gnu", &tmp, 10); - strtoull("gnu", &tmp, 10); - llabs(10); - lldiv(10,1); - atoll("10"); - _Exit(0); - lldiv_t mydivt; + f = strtof("gnu", &tmp); + ld = strtold("gnu", &tmp); + ll = strtoll("gnu", &tmp, 10); + ll = strtoull("gnu", &tmp, 10); + ll = llabs(10); + mydivt = lldiv(10,1); + ll = mydivt.quot; + ll = mydivt.rem; + ll = atoll("10"); + _Exit(0); + ; return 0; } @@ -16049,6 +16300,74 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_c99_stdlib=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +else + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + volatile float f; + volatile long double ld; + volatile unsigned long long ll; + lldiv_t mydivt; +int +main () +{ +char* tmp; + f = strtof("gnu", &tmp); + ld = strtold("gnu", &tmp); + ll = strtoll("gnu", &tmp, 10); + ll = strtoull("gnu", &tmp, 10); + ll = llabs(10); + mydivt = lldiv(10,1); + ll = mydivt.quot; + ll = mydivt.rem; + ll = atoll("10"); + _Exit(0); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_c99_stdlib=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_c99_stdlib=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi fi @@ -16386,6 +16705,7 @@ _ACEOF fi + CXXFLAGS="$ac_save_CXXFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -17305,7 +17625,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. cat > conftest.$ac_ext << EOF -#line 17308 "configure" +#line 17628 "configure" int main() { // NB: _Atomic_word not necessarily int.