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.26-147-g568ff42


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  568ff4296c72534e49c8d9c83c33f3a0069cccc7 (commit)
      from  7c41b4a1315fc4415e468bbac94f77ecdb74f4c8 (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=568ff4296c72534e49c8d9c83c33f3a0069cccc7

commit 568ff4296c72534e49c8d9c83c33f3a0069cccc7
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Aug 21 05:50:38 2017 -0700

    Add hidden visibility to internal function prototypes
    
    Add hidden visibility to internal function prototypes to allow direct
    access to internal functions within libc.a without using GOT when the
    compiler defaults to -fPIE.
    
    Size comparison of elf/ldconfig when the compiler defaults to -fPIE:
    
    On x86-64:
            text	   data	    bss	    dec	    hex
    Before: 619646	  20132	   5488	 645266	  9d892
    After : 619502	  20132	   5488	 645122	  9d802
    On i686:
            text	   data	    bss	    dec	    hex
    Before: 550333	  10748	   3060	 564141	  89bad
    After : 546453	  10732	   3060	 560245	  88c75
    
    	* include/libc-symbols.h (__hidden_proto_hiddenattr): New for
    	building libc.a.
    	(hidden_proto): Likewise.
    	(hidden_tls_proto): Likewise.
    	(__hidden_proto): Likewise.

diff --git a/ChangeLog b/ChangeLog
index e7ffb59..8ff2d90 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2017-08-21  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* include/libc-symbols.h (__hidden_proto_hiddenattr): New for
+	building libc.a.
+	(hidden_proto): Likewise.
+	(hidden_tls_proto): Likewise.
+	(__hidden_proto): Likewise.
+
+2017-08-21  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* include/libc-symbols.h (attribute_hidden): Enable hidden
 	visibility in libc.a compiled with PIE.
 
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index d6a1c26..fe3571a 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -513,8 +513,20 @@ for linking")
 # endif
 #else
 # ifndef __ASSEMBLER__
-#  define hidden_proto(name, attrs...)
-#  define hidden_tls_proto(name, attrs...)
+#  if !defined SHARED && IS_IN (libc) && !defined LIBC_NONSHARED \
+      && !defined NO_HIDDEN
+#   define __hidden_proto_hiddenattr(attrs...) \
+  __attribute__ ((visibility ("hidden"), ##attrs))
+#   define hidden_proto(name, attrs...) \
+  __hidden_proto (name, , name, ##attrs)
+#   define hidden_tls_proto(name, attrs...) \
+  __hidden_proto (name, __thread, name, ##attrs)
+#  define __hidden_proto(name, thread, internal, attrs...)	     \
+  extern thread __typeof (name) name __hidden_proto_hiddenattr (attrs);
+# else
+#   define hidden_proto(name, attrs...)
+#   define hidden_tls_proto(name, attrs...)
+# endif
 # else
 #  define HIDDEN_JUMPTARGET(name) JUMPTARGET(name)
 # endif /* Not  __ASSEMBLER__ */

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

Summary of changes:
 ChangeLog              |    8 ++++++++
 include/libc-symbols.h |   16 ++++++++++++++--
 2 files changed, 22 insertions(+), 2 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]