This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.17-588-g0695940


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  0695940b8ab4b7e69492e8ea071d19fc17dda092 (commit)
      from  10de07f5fdd9eaf3a808d4461401f5b661095614 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0695940b8ab4b7e69492e8ea071d19fc17dda092

commit 0695940b8ab4b7e69492e8ea071d19fc17dda092
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Wed May 1 20:32:38 2013 +1000

    Use __gnu_inline__ for __extern_always_inline in g++-4.2
    
    Use the __gnu_inline__ attribute in _FORTIFY_SOURCE's __extern_always_inline
    macro whenever the compiler supports it. Previously this macro only included
    the __gnu_inline__ attribute in C++ mode for gcc >= 4.3. However,
    __gnu_inline__ semantics are always desired for the __extern_always_inline
    functions, and are available in g++ 4.2 (and some releases of g++ 4.1, and
    also in Clang, which claims to be g++ 4.2).
    
    This change stops g++-4.2 from emitting weak definitions for the fortify
    wrapper functions if they can't be inlined, and also improves Clang
    compatibility.

diff --git a/ChangeLog b/ChangeLog
index b584840..f9a9bdc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2013-05-01  Richard Smith  <richard@metafoo.co.uk>
+
+	* misc/sys/cdefs.h (__extern_inline, __extern_always_inline)
+	[__GNUC__ && (__GNUC_STDC_INLINE__ || __GNUC_GNU_INLINE__)]:
+	Use __attribute__ ((__gnu_inline__)).
+	[__GNUC__ && !(__GNUC_STDC_INLINE__ || __GNUC_GNU_INLINE__)]:
+	Don't use __attribute__ ((__gnu_inline__)).
+
 2013-05-01  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #15423]
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index f5f18e9..4aded9b 100644
--- a/misc/sys/cdefs.h
+++ b/misc/sys/cdefs.h
@@ -318,10 +318,12 @@
 # define __attribute_artificial__ /* Ignore */
 #endif
 
-/* 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)) && defined __GNUC__
-# if defined __GNUC_STDC_INLINE__ || defined __cplusplus
+#ifdef __GNUC__
+/* One of these will be defined if the __gnu_inline__ attribute is
+   available.  In C++, __GNUC_GNU_INLINE__ will be defined even though
+   __inline does not use the GNU inlining rules.  If neither macro is
+   defined, this version of GCC only supports GNU inline semantics. */
+# if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
 #  define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
 #  define __extern_always_inline \
   extern __always_inline __attribute__ ((__gnu_inline__))
@@ -329,10 +331,6 @@
 #  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 */

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog        |    8 ++++++++
 misc/sys/cdefs.h |   14 ++++++--------
 2 files changed, 14 insertions(+), 8 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]