67 lines
2.5 KiB
Text
67 lines
2.5 KiB
Text
--- lib/autoconf/c.m4.orig Sun Apr 6 01:04:48 2008
|
|
+++ lib/autoconf/c.m4 Fri Jun 12 15:28:06 2009
|
|
@@ -1399,25 +1399,33 @@ fi
|
|
AC_DEFUN([AC_C_BIGENDIAN],
|
|
[AH_VERBATIM([WORDS_BIGENDIAN],
|
|
[/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
|
- significant byte first (like Motorola and SPARC, unlike Intel and VAX). */
|
|
-#if defined __BIG_ENDIAN__
|
|
-# define WORDS_BIGENDIAN 1
|
|
-#elif ! defined __LITTLE_ENDIAN__
|
|
-# undef WORDS_BIGENDIAN
|
|
+ significant byte first (like Motorola and SPARC, unlike Intel). */
|
|
+#if defined AC_APPLE_UNIVERSAL_BUILD
|
|
+# if defined __BIG_ENDIAN__
|
|
+# define WORDS_BIGENDIAN 1
|
|
+# endif
|
|
+#else
|
|
+# ifndef WORDS_BIGENDIAN
|
|
+# undef WORDS_BIGENDIAN
|
|
+# endif
|
|
#endif])dnl
|
|
AC_CACHE_CHECK([whether byte ordering is bigendian], [ac_cv_c_bigendian],
|
|
[ac_cv_c_bigendian=unknown
|
|
- m4_ifval(m4_ifdef([AH_HEADER], 1)[$4],
|
|
- [# See if __BIG_ENDIAN__ or __LITTLE_ENDIAN__ is defined.
|
|
- AC_COMPILE_IFELSE(
|
|
+ # See if we're dealing with a universal compiler.
|
|
+ AC_COMPILE_IFELSE(
|
|
[AC_LANG_SOURCE(
|
|
- [[#if ! (defined __BIG_ENDIAN__ || defined __LITTLE_ENDIAN__)
|
|
- neither is defined;
|
|
+ [[#ifndef __APPLE_CC__
|
|
+ not a universal capable compiler
|
|
#endif
|
|
typedef int dummy;
|
|
]])],
|
|
- [ac_cv_c_bigendian=universal])],
|
|
- [AC_DIAGNOSE([obsolete], [AC_C_BIGENDIAN suggests AC_CONFIG_HEADERS])])
|
|
+ [
|
|
+ # Check for potential -arch flags. It is not universal unless
|
|
+ # there are some -arch flags. Note that *ppc* also matches
|
|
+ # ppc64. This check is also rather less than ideal.
|
|
+ case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in #(
|
|
+ *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;;
|
|
+ esac])
|
|
if test $ac_cv_c_bigendian = unknown; then
|
|
# See if sys/param.h defines the BYTE_ORDER macro.
|
|
AC_COMPILE_IFELSE(
|
|
@@ -1521,7 +1529,17 @@ AC_DEFUN([AC_C_BIGENDIAN],
|
|
no)
|
|
$2 ;; #(
|
|
universal)
|
|
- $4 ;; #(
|
|
+dnl Note that AC_APPLE_UNIVERSAL_BUILD sorts less than WORDS_BIGENDIAN;
|
|
+dnl this is a necessity for proper config header operation. Warn if
|
|
+dnl the user did not specify a config header but is relying on the
|
|
+dnl default behavior for universal builds.
|
|
+ m4_default([$4],
|
|
+ [AC_CONFIG_COMMANDS_PRE([m4_ifset([AH_HEADER], [],
|
|
+ [AC_DIAGNOSE([obsolete],
|
|
+ [AC_C_BIGENDIAN should be used with AC_CONFIG_HEADERS])])])dnl
|
|
+ AC_DEFINE([AC_APPLE_UNIVERSAL_BUILD],1,
|
|
+ [Define if building universal (internal helper macro)])])
|
|
+ ;; #(
|
|
*)
|
|
m4_default([$3],
|
|
[AC_MSG_ERROR([unknown endianness
|