changeset 10973:e1a3422c4e90

Add support for universal builds to vasnprintf.
author Bruno Haible <bruno@clisp.org>
date Thu, 25 Dec 2008 20:18:10 +0100
parents cf1b1ca0bb08
children 1aa0d3273940
files ChangeLog m4/printf.m4 modules/fprintf-posix modules/snprintf-posix modules/sprintf-posix modules/unistdio/u16-u16-vasnprintf modules/unistdio/u16-vasnprintf modules/unistdio/u32-u32-vasnprintf modules/unistdio/u32-vasnprintf modules/unistdio/u8-u8-vasnprintf modules/unistdio/u8-vasnprintf modules/unistdio/ulc-vasnprintf modules/vasnprintf-posix modules/vasprintf-posix modules/vfprintf-posix modules/vsnprintf-posix modules/vsprintf-posix
diffstat 17 files changed, 56 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,24 @@
 2008-12-25  Bruno Haible  <bruno@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.
+
 	Add support for universal builds to <inttypes.h>.
 	* lib/inttypes.in.h (_PRI64_PREFIX, _PRIu64_PREFIX, _SCN64_PREFIX,
 	_SCNu64_PREFIX): In Apple
--- a/m4/printf.m4
+++ b/m4/printf.m4
@@ -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
--- a/modules/fprintf-posix
+++ b/modules/fprintf-posix
@@ -21,6 +21,7 @@
 nocrash
 printf-safe
 errno
+multiarch
 
 configure.ac:
 gl_FUNC_FPRINTF_POSIX
--- a/modules/snprintf-posix
+++ b/modules/snprintf-posix
@@ -19,6 +19,7 @@
 fpucw
 nocrash
 printf-safe
+multiarch
 
 configure.ac:
 gl_FUNC_SNPRINTF_POSIX
--- a/modules/sprintf-posix
+++ b/modules/sprintf-posix
@@ -21,6 +21,7 @@
 printf-safe
 stdint
 errno
+multiarch
 
 configure.ac:
 gl_FUNC_SPRINTF_POSIX
--- a/modules/unistdio/u16-u16-vasnprintf
+++ b/modules/unistdio/u16-u16-vasnprintf
@@ -42,6 +42,7 @@
 localcharset
 xsize
 errno
+multiarch
 
 configure.ac:
 gl_PREREQ_VASNPRINTF_WITH_EXTRAS
--- a/modules/unistdio/u16-vasnprintf
+++ b/modules/unistdio/u16-vasnprintf
@@ -42,6 +42,7 @@
 localcharset
 xsize
 errno
+multiarch
 
 configure.ac:
 gl_PREREQ_VASNPRINTF_WITH_EXTRAS
--- a/modules/unistdio/u32-u32-vasnprintf
+++ b/modules/unistdio/u32-u32-vasnprintf
@@ -42,6 +42,7 @@
 localcharset
 xsize
 errno
+multiarch
 
 configure.ac:
 gl_PREREQ_VASNPRINTF_WITH_EXTRAS
--- a/modules/unistdio/u32-vasnprintf
+++ b/modules/unistdio/u32-vasnprintf
@@ -42,6 +42,7 @@
 localcharset
 xsize
 errno
+multiarch
 
 configure.ac:
 gl_PREREQ_VASNPRINTF_WITH_EXTRAS
--- a/modules/unistdio/u8-u8-vasnprintf
+++ b/modules/unistdio/u8-u8-vasnprintf
@@ -42,6 +42,7 @@
 localcharset
 xsize
 errno
+multiarch
 
 configure.ac:
 gl_PREREQ_VASNPRINTF_WITH_EXTRAS
--- a/modules/unistdio/u8-vasnprintf
+++ b/modules/unistdio/u8-vasnprintf
@@ -42,6 +42,7 @@
 localcharset
 xsize
 errno
+multiarch
 
 configure.ac:
 gl_PREREQ_VASNPRINTF_WITH_EXTRAS
--- a/modules/unistdio/ulc-vasnprintf
+++ b/modules/unistdio/ulc-vasnprintf
@@ -40,6 +40,7 @@
 localcharset
 xsize
 errno
+multiarch
 
 configure.ac:
 gl_PREREQ_VASNPRINTF_WITH_EXTRAS
--- a/modules/vasnprintf-posix
+++ b/modules/vasnprintf-posix
@@ -18,6 +18,7 @@
 fpucw
 nocrash
 printf-safe
+multiarch
 
 configure.ac:
 gl_FUNC_VASNPRINTF_POSIX
--- a/modules/vasprintf-posix
+++ b/modules/vasprintf-posix
@@ -18,6 +18,7 @@
 fpucw
 nocrash
 printf-safe
+multiarch
 
 configure.ac:
 gl_FUNC_VASPRINTF_POSIX
--- a/modules/vfprintf-posix
+++ b/modules/vfprintf-posix
@@ -21,6 +21,7 @@
 nocrash
 printf-safe
 errno
+multiarch
 
 configure.ac:
 gl_FUNC_VFPRINTF_POSIX
--- a/modules/vsnprintf-posix
+++ b/modules/vsnprintf-posix
@@ -19,6 +19,7 @@
 fpucw
 nocrash
 printf-safe
+multiarch
 
 configure.ac:
 gl_FUNC_VSNPRINTF_POSIX
--- a/modules/vsprintf-posix
+++ b/modules/vsprintf-posix
@@ -21,6 +21,7 @@
 printf-safe
 stdint
 errno
+multiarch
 
 configure.ac:
 gl_FUNC_VSPRINTF_POSIX