diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | include/libc-symbols.h | 16 |
2 files changed, 22 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index e7ffb591b1..8ff2d90bae 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 d6a1c260f6..fe3571af52 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__ */ |