diff options
-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 |