aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--include/libc-symbols.h16
2 files changed, 22 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 7532578..53fdcb4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2017-08-22 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-22 Florian Weimer <fweimer@redhat.com>
math: Statically link tests of internal functionality.
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__ */