Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
authorBruno Haible <bruno@clisp.org>
Fri, 11 Apr 2008 13:13:24 +0000 (15:13 +0200)
committerBruno Haible <bruno@clisp.org>
Fri, 11 Apr 2008 13:13:24 +0000 (15:13 +0200)
ChangeLog
gnulib-tool
m4/gnulib-common.m4

index eaad3d8..c935aea 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2008-04-11  Bruno Haible  <bruno@clisp.org>
 
+       Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
+       * gnulib-tool (func_emit_initmacro_start): Emit an invocation of
+       gl_COMMON.
+       * m4/gnulib-common.m4 (gl_COMMON, gl_COMMON_BODY): New macros.
+
+2008-04-11  Bruno Haible  <bruno@clisp.org>
+
        * modules/git-merge-changelog (git_merge_changelog_LDADD): Add LIBINTL.
 
 2008-04-11  Simon Josefsson  <simon@josefsson.org>
index 21a08b2..8e6fec4 100755 (executable)
@@ -2046,6 +2046,7 @@ func_emit_initmacro_start ()
   # We let automake know about the files to be distributed through the
   # EXTRA_lib_SOURCES variable.
   echo "  m4_pushdef([AC_LIBSOURCES], m4_defn([${macro_prefix_arg}_LIBSOURCES]))"
+  echo "  gl_COMMON"
 }
 
 # func_emit_initmacro_end macro_prefix
index 9336d72..3edfc12 100644 (file)
@@ -1,9 +1,28 @@
-# gnulib-common.m4 serial 3
-dnl Copyright (C) 2007 Free Software Foundation, Inc.
+# gnulib-common.m4 serial 4
+dnl Copyright (C) 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,
 dnl with or without modifications, as long as this notice is preserved.
 
+# gl_COMMON
+# is expanded unconditionally through gnulib-tool magic.
+AC_DEFUN([gl_COMMON], [
+  dnl Use AC_REQUIRE here, so that the code is expanded once only.
+  AC_REQUIRE([gl_COMMON_BODY])
+])
+AC_DEFUN([gl_COMMON_BODY], [
+  AH_VERBATIM([isoc99_inline],
+[/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
+   the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
+   earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
+   __APPLE__ && __MACH__ test for MacOS X.
+   __APPLE_CC__ tests for the Apple compiler and its version.
+   __STDC_VERSION__ tests for the C99 mode.  */
+#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
+# define __GNUC_STDC_INLINE__ 1
+#endif])
+])
+
 # gl_MODULE_INDICATOR([modulename])
 # defines a C macro indicating the presence of the given module.
 AC_DEFUN([gl_MODULE_INDICATOR],