diff options
author | Matthias Klose <doko@ubuntu.com> | 2012-03-15 18:31:06 (GMT) |
---|---|---|
committer | Matthias Klose <doko@ubuntu.com> | 2012-03-15 18:31:06 (GMT) |
commit | 3b739b149b4bdb85ed593b0d0a0c9d2790dbd988 (patch) | |
tree | ba7edeb1738a7b634e5f1c54a2968d29400566ee | |
parent | 93a0ef16c939581fb366897d2f07c395601f8ddf (diff) | |
download | cpython-3b739b149b4bdb85ed593b0d0a0c9d2790dbd988.zip cpython-3b739b149b4bdb85ed593b0d0a0c9d2790dbd988.tar.gz cpython-3b739b149b4bdb85ed593b0d0a0c9d2790dbd988.tar.bz2 |
- Issue #14324: Fix configure tests for cross builds.
when using gcc, use a compilation test for the cross build check for long long format.
-rw-r--r-- | Misc/NEWS | 2 | ||||
-rwxr-xr-x | configure | 31 | ||||
-rw-r--r-- | configure.ac | 18 |
3 files changed, 49 insertions, 2 deletions
@@ -111,6 +111,8 @@ Build - Issue #14321: Do not run pgen during the build if files are up to date. +- Issue #14324: Fix configure tests for cross builds. + Extension Modules ----------------- @@ -13805,7 +13805,36 @@ $as_echo_n "checking for %lld and %llu printf() format support... " >&6; } $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : - ac_cv_have_long_long_format=no + ac_cv_have_long_long_format="cross -- assuming no" + if test x$GCC = xyes; then + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wformat" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <stdio.h> + #include <stddef.h> + +int +main () +{ + + char *buffer; + sprintf(buffer, "%lld", (long long)123); + sprintf(buffer, "%lld", (long long)-123); + sprintf(buffer, "%llu", (unsigned long long)123); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_have_long_long_format=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$save_CFLAGS + fi else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ diff --git a/configure.ac b/configure.ac index a38a5cc..2bcbedf 100644 --- a/configure.ac +++ b/configure.ac @@ -4128,7 +4128,23 @@ then ]]])], [ac_cv_have_long_long_format=yes], [ac_cv_have_long_long_format=no], - [ac_cv_have_long_long_format=no]) + [ac_cv_have_long_long_format="cross -- assuming no" + if test x$GCC = xyes; then + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wformat" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include <stdio.h> + #include <stddef.h> + ]], [[ + char *buffer; + sprintf(buffer, "%lld", (long long)123); + sprintf(buffer, "%lld", (long long)-123); + sprintf(buffer, "%llu", (unsigned long long)123); + ]])], + ac_cv_have_long_long_format=yes + ) + CFLAGS=$save_CFLAGS + fi]) ) AC_MSG_RESULT($ac_cv_have_long_long_format) fi |