Mercurial > hg > octave-shane > gnulib-hg
changeset 17497:e1987e37f658
extern-inline: do not always suppress extern inline on OS X
* m4/extern-inline.m4 (gl_EXTERN_INLINE): Suppress the use of
extern inline on Apple only if the particular compile-time
configuration is known to have the problem.
(_GL_EXTERN_INLINE_APPLE_BUG): New private macro, to implement this.
(_GL_EXTERN_LNLINE_IN_USE): New macro, intended for use by
other Gnulib modules.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Thu, 19 Sep 2013 13:21:39 -0700 |
parents | fc6f79af802f |
children | 0fa89f983d3a |
files | ChangeLog m4/extern-inline.m4 |
diffstat | 2 files changed, 21 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2013-09-19 Paul Eggert <eggert@cs.ucla.edu> + extern-inline: do not always suppress extern inline on OS X + * m4/extern-inline.m4 (gl_EXTERN_INLINE): Suppress the use of + extern inline on Apple only if the particular compile-time + configuration is known to have the problem. + (_GL_EXTERN_INLINE_APPLE_BUG): New private macro, to implement this. + (_GL_EXTERN_LNLINE_IN_USE): New macro, intended for use by + other Gnulib modules. + extern-inline: document fixes for ctype and wctype macros * doc/posix-functions/isalnum.texi, doc/posix-functions/isalpha.texi: * doc/posix-functions/isascii.texi, doc/posix-functions/isblank.texi:
--- a/m4/extern-inline.m4 +++ b/m4/extern-inline.m4 @@ -19,20 +19,28 @@ 'reference to static identifier "f" in extern inline function'. This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. - Suppress the use of extern inline on Apple's platforms, as Libc at least - through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g., + Suppress the use of extern inline on problematic Apple configurations, as + Libc at least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>. Perhaps Apple will fix this some day. */ +#if (defined __APPLE__ \ + && ((! defined _DONT_USE_CTYPE_INLINE_ \ + && (defined __GNUC__ || defined __cplusplus)) \ + || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ + && defined __GNUC__ && ! defined __cplusplus))) +# define _GL_EXTERN_INLINE_APPLE_BUG +#endif #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : (199901L <= __STDC_VERSION__ \ && !defined __HP_cc \ && !(defined __SUNPRO_C && __STDC__))) \ - && !defined __APPLE__) + && !defined _GL_EXTERN_INLINE_APPLE_BUG) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline +# define _GL_EXTERN_INLINE_IN_USE #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ - && !defined __APPLE__) + && !defined _GL_EXTERN_INLINE_APPLE_BUG) # if __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) @@ -40,6 +48,7 @@ # define _GL_INLINE extern inline # endif # define _GL_EXTERN_INLINE extern +# define _GL_EXTERN_INLINE_IN_USE #else # define _GL_INLINE static _GL_UNUSED # define _GL_EXTERN_INLINE static _GL_UNUSED