aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--include/libc-symbols.h29
-rw-r--r--include/unistd.h2
3 files changed, 21 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index e0b55e8522..918eb09f82 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2002-09-17 Ulrich Drepper <drepper@redhat.com>
+ * include/libc-symbols.h: Change *hidden_proto macros to accept
+ option parameters and pass those to the attribute definition.
+ * include/unistd.h (_exit): Add __noreturn__ to libc_hidden_proto call.
+
* include/unistd.h: Declare __libc_pause.
* include/sys/socket.h: Declare __libc_send, __libc_recv,
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index 42521565d4..0c219514b1 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -473,16 +473,19 @@
#if defined SHARED && defined DO_VERSIONING \
&& !defined HAVE_BROKEN_ALIAS_ATTRIBUTE
# ifndef __ASSEMBLER__
-# ifdef HAVE_BROKEN_VISIBILITY_ATTRIBUTE
-# define __hidden_proto_hiddenattr
+# if !defined HAVE_VISIBILITY_ATTRIBUTE \
+ || defined HAVE_BROKEN_VISIBILITY_ATTRIBUTE
+# define __hidden_proto_hiddenattr(attrs...)
# else
-# define __hidden_proto_hiddenattr attribute_hidden
+# define __hidden_proto_hiddenattr(attrs...) \
+ __attribute__ ((visibility ("hidden"), ##attrs))
# endif
-# define hidden_proto(name) __hidden_proto (name, __GI_##name)
-# define __hidden_proto(name, internal) \
+# define hidden_proto(name, attrs...) \
+ __hidden_proto (name, __GI_##name, ##attrs)
+# define __hidden_proto(name, internal, attrs...) \
extern __typeof (name) internal; \
extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
- __hidden_proto_hiddenattr;
+ __hidden_proto_hiddenattr (attrs);
# define __hidden_asmname(name) \
__hidden_asmname1 (__USER_LABEL_PREFIX__, name)
# define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name)
@@ -549,7 +552,7 @@
# endif
#else
# ifndef __ASSEMBLER__
-# define hidden_proto(name)
+# define hidden_proto(name, attrs...)
# else
# define HIDDEN_JUMPTARGET(name) JUMPTARGET(name)
# endif /* Not __ASSEMBLER__ */
@@ -559,36 +562,36 @@
#endif
#if !defined NOT_IN_libc
-# define libc_hidden_proto(name) hidden_proto (name)
+# define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
# define libc_hidden_def(name) hidden_def (name)
# define libc_hidden_weak(name) hidden_weak (name)
# define libc_hidden_ver(local, name) hidden_ver (local, name)
#else
-# define libc_hidden_proto(name)
+# define libc_hidden_proto(name, attrs...)
# define libc_hidden_def(name)
# define libc_hidden_weak(name)
# define libc_hidden_ver(local, name)
#endif
#if defined NOT_IN_libc && defined IS_IN_rtld
-# define rtld_hidden_proto(name) hidden_proto (name)
+# define rtld_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
# define rtld_hidden_def(name) hidden_def (name)
# define rtld_hidden_weak(name) hidden_weak (name)
# define rtld_hidden_ver(local, name) hidden_ver (local, name)
#else
-# define rtld_hidden_proto(name)
+# define rtld_hidden_proto(name, attrs...)
# define rtld_hidden_def(name)
# define rtld_hidden_weak(name)
# define rtld_hidden_ver(local, name)
#endif
#if defined NOT_IN_libc && defined IS_IN_libm
-# define libm_hidden_proto(name) hidden_proto (name)
+# define libm_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
# define libm_hidden_def(name) hidden_def (name)
# define libm_hidden_weak(name) hidden_weak (name)
# define libm_hidden_ver(local, name) hidden_ver (local, name)
#else
-# define libm_hidden_proto(name)
+# define libm_hidden_proto(name, attrs...)
# define libm_hidden_def(name)
# define libm_hidden_weak(name)
# define libm_hidden_ver(local, name)
diff --git a/include/unistd.h b/include/unistd.h
index cc5cfcc518..a5d15aaf37 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -1,7 +1,7 @@
#ifndef _UNISTD_H
# include <posix/unistd.h>
-libc_hidden_proto (_exit)
+libc_hidden_proto (_exit, __noreturn__)
libc_hidden_proto (alarm)
libc_hidden_proto (confstr)
libc_hidden_proto (execl)