bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

support for universal binaries on MacOS X (4/6)


From: Bruno Haible
Subject: support for universal binaries on MacOS X (4/6)
Date: Thu, 25 Dec 2008 20:18:26 +0100
User-agent: KMail/1.9.9

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  <address@hidden>

        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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]