One of the tests for POSIX-compliant printf has a result that differs between 32-bit mode and 64-bit mode. Since the same code should be compiled in both modes - it would be too complex to store a mode dependent result in config.status - this requires special casing.
2008-12-25 Bruno Haible <br...@clisp.org> Add support for universal builds to vasnprintf. * m4/printf.m4 (gl_PRINTF_ENOMEM): Require gl_MULTIARCH. In Apple universal builds, guess no. * modules/vasnprintf-posix (Depends-on): Add multiarch. * modules/vasprintf-posix (Depends-on): Likewise. * modules/fprintf-posix (Depends-on): Likewise. * modules/vfprintf-posix (Depends-on): Likewise. * modules/snprintf-posix (Depends-on): Likewise. * modules/vsnprintf-posix (Depends-on): Likewise. * modules/sprintf-posix (Depends-on): Likewise. * modules/vsprintf-posix (Depends-on): Likewise. * modules/unistdio/u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/ulc-vasnprintf (Depends-on): Likewise. --- m4/printf.m4.orig 2008-12-25 20:11:10.000000000 +0100 +++ m4/printf.m4 2008-12-25 19:08:57.000000000 +0100 @@ -1,4 +1,4 @@ -# printf.m4 serial 24 +# printf.m4 serial 25 dnl Copyright (C) 2003, 2007-2008 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -811,13 +811,15 @@ AC_DEFUN([gl_PRINTF_ENOMEM], [ AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([gl_MULTIARCH]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf survives out-of-memory conditions], [gl_cv_func_printf_enomem], [ gl_cv_func_printf_enomem="guessing no" if test "$cross_compiling" = no; then - AC_LANG_CONFTEST([AC_LANG_SOURCE([ + if test $APPLE_UNIVERSAL_BUILD = 0; then + AC_LANG_CONFTEST([AC_LANG_SOURCE([ ]GL_NOCRASH[ changequote(,)dnl #include <stdio.h> @@ -866,21 +868,27 @@ } changequote([,])dnl ])]) - if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then - (./conftest - result=$? - if test $result != 0 && test $result != 77; then result=1; fi - exit $result - ) >/dev/null 2>/dev/null - case $? in - 0) gl_cv_func_printf_enomem="yes" ;; - 77) gl_cv_func_printf_enomem="guessing no" ;; - *) gl_cv_func_printf_enomem="no" ;; - esac + if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then + (./conftest + result=$? + if test $result != 0 && test $result != 77; then result=1; fi + exit $result + ) >/dev/null 2>/dev/null + case $? in + 0) gl_cv_func_printf_enomem="yes" ;; + 77) gl_cv_func_printf_enomem="guessing no" ;; + *) gl_cv_func_printf_enomem="no" ;; + esac + else + gl_cv_func_printf_enomem="guessing no" + fi + rm -fr conftest* else + dnl A universal build on Apple MacOS X platforms. + dnl The result would be 'no' in 32-bit mode and 'yes' in 64-bit mode. + dnl But we need a configuration result that is valid in both modes. gl_cv_func_printf_enomem="guessing no" fi - rm -fr conftest* fi if test "$gl_cv_func_printf_enomem" = "guessing no"; then changequote(,)dnl --- modules/fprintf-posix.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/fprintf-posix 2008-12-25 19:04:04.000000000 +0100 @@ -21,6 +21,7 @@ nocrash printf-safe errno +multiarch configure.ac: gl_FUNC_FPRINTF_POSIX --- modules/snprintf-posix.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/snprintf-posix 2008-12-25 19:06:07.000000000 +0100 @@ -19,6 +19,7 @@ fpucw nocrash printf-safe +multiarch configure.ac: gl_FUNC_SNPRINTF_POSIX --- modules/sprintf-posix.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/sprintf-posix 2008-12-25 19:06:28.000000000 +0100 @@ -21,6 +21,7 @@ printf-safe stdint errno +multiarch configure.ac: gl_FUNC_SPRINTF_POSIX --- modules/unistdio/u16-u16-vasnprintf.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/unistdio/u16-u16-vasnprintf 2008-12-25 19:04:16.000000000 +0100 @@ -42,6 +42,7 @@ localcharset xsize errno +multiarch configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS --- modules/unistdio/u16-vasnprintf.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/unistdio/u16-vasnprintf 2008-12-25 19:04:43.000000000 +0100 @@ -42,6 +42,7 @@ localcharset xsize errno +multiarch configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS --- modules/unistdio/u32-u32-vasnprintf.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/unistdio/u32-u32-vasnprintf 2008-12-25 19:05:02.000000000 +0100 @@ -42,6 +42,7 @@ localcharset xsize errno +multiarch configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS --- modules/unistdio/u32-vasnprintf.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/unistdio/u32-vasnprintf 2008-12-25 19:04:28.000000000 +0100 @@ -42,6 +42,7 @@ localcharset xsize errno +multiarch configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS --- modules/unistdio/u8-u8-vasnprintf.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/unistdio/u8-u8-vasnprintf 2008-12-25 19:04:53.000000000 +0100 @@ -42,6 +42,7 @@ localcharset xsize errno +multiarch configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS --- modules/unistdio/u8-vasnprintf.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/unistdio/u8-vasnprintf 2008-12-25 19:05:27.000000000 +0100 @@ -42,6 +42,7 @@ localcharset xsize errno +multiarch configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS --- modules/unistdio/ulc-vasnprintf.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/unistdio/ulc-vasnprintf 2008-12-25 19:05:13.000000000 +0100 @@ -40,6 +40,7 @@ localcharset xsize errno +multiarch configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS --- modules/vasnprintf-posix.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/vasnprintf-posix 2008-12-25 19:03:54.000000000 +0100 @@ -18,6 +18,7 @@ fpucw nocrash printf-safe +multiarch configure.ac: gl_FUNC_VASNPRINTF_POSIX --- modules/vasprintf-posix.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/vasprintf-posix 2008-12-25 19:03:32.000000000 +0100 @@ -18,6 +18,7 @@ fpucw nocrash printf-safe +multiarch configure.ac: gl_FUNC_VASPRINTF_POSIX --- modules/vfprintf-posix.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/vfprintf-posix 2008-12-25 19:03:45.000000000 +0100 @@ -21,6 +21,7 @@ nocrash printf-safe errno +multiarch configure.ac: gl_FUNC_VFPRINTF_POSIX --- modules/vsnprintf-posix.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/vsnprintf-posix 2008-12-25 19:05:42.000000000 +0100 @@ -19,6 +19,7 @@ fpucw nocrash printf-safe +multiarch configure.ac: gl_FUNC_VSNPRINTF_POSIX --- modules/vsprintf-posix.orig 2008-12-25 20:11:10.000000000 +0100 +++ modules/vsprintf-posix 2008-12-25 19:06:16.000000000 +0100 @@ -21,6 +21,7 @@ printf-safe stdint errno +multiarch configure.ac: gl_FUNC_VSPRINTF_POSIX