about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--NEWS10
-rw-r--r--misc/sys/cdefs.h9
3 files changed, 20 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index a477ba2dc4..123f3397d2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-09-26  Marek Polacek  <polacek@redhat.com>
+
+	[BZ #14530]
+	[BZ #13741]
+	* misc/sys/cdefs.h: Define __extern_inline and __extern_always_inline
+	for C++ and GCC <4.3 as well as for non GCC compilers.
+
 2012-09-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
 
 	* sysdeps/x86_64/fpu/libm-test-ulps: Update.
diff --git a/NEWS b/NEWS
index 1612b6fb58..cd0c579ea2 100644
--- a/NEWS
+++ b/NEWS
@@ -10,11 +10,11 @@ Version 2.17
 * The following bugs are resolved with this release:
 
   1349, 3479, 5044, 5400, 6778, 6808, 9685, 9914, 10014, 10038, 11607,
-  13412, 13542, 13629, 13679, 13696, 13717, 13939, 13966, 14042, 14090,
-  14150, 14151, 14154, 14157, 14166, 14173, 14195, 14237, 14252, 14283,
-  14298, 14303, 14307, 14328, 14331, 14336, 14337, 14347, 14349, 14459,
-  14476, 14505, 14510, 14516, 14518, 14519, 14532, 14538, 14544, 14545,
-  14562, 14576, 14579, 14583, 14587, 14621.
+  13412, 13542, 13629, 13679, 13696, 13717, 13741, 13939, 13966, 14042,
+  14090, 14150, 14151, 14154, 14157, 14166, 14173, 14195, 14237, 14252,
+  14283, 14298, 14303, 14307, 14328, 14331, 14336, 14337, 14347, 14349,
+  14459, 14476, 14505, 14510, 14516, 14518, 14519, 14530, 14532, 14538,
+  14544, 14545, 14562, 14576, 14579, 14583, 14587, 14621.
 
 * Support for STT_GNU_IFUNC symbols added for s390 and s390x.
   Optimized versions of memcpy, memset, and memcmp added for System z10 and
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index b94147efe8..fb6c959d90 100644
--- a/misc/sys/cdefs.h
+++ b/misc/sys/cdefs.h
@@ -320,7 +320,7 @@
 
 /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
    inline semantics, unless -fgnu89-inline is used.  */
-#if !defined __cplusplus || __GNUC_PREREQ (4,3)
+#if (!defined __cplusplus || __GNUC_PREREQ (4,3)) && defined __GNUC__
 # if defined __GNUC_STDC_INLINE__ || defined __cplusplus
 #  define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
 #  define __extern_always_inline \
@@ -329,6 +329,13 @@
 #  define __extern_inline extern __inline
 #  define __extern_always_inline extern __always_inline
 # endif
+#elif defined __GNUC__ /* C++ and GCC <4.3.  */
+# define __extern_inline extern __inline
+# define __extern_always_inline \
+  extern __always_inline
+#else /* Not GCC.  */
+# define __extern_inline  /* Ignore */
+# define __extern_always_inline /* Ignore */
 #endif
 
 /* GCC 4.3 and above allow passing all anonymous arguments of an