summaryrefslogtreecommitdiff
path: root/include/libc-symbols.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-04-30 04:18:12 +0000
committerRoland McGrath <roland@gnu.org>2003-04-30 04:18:12 +0000
commit20792f9946b2ef0c9e6b75f4243d4404850ecd38 (patch)
tree56f10d817758d626bf23ade6071db5c74a6d736b /include/libc-symbols.h
parent476e7d78f4db291606903b9616515d47598dc791 (diff)
* configure.in: Search for AUTOCONF unconditionally.
Just don't complain about missing it under --without-cvs. * configure: Regenerated. * include/libc-symbols.h (__symbol_set_attribute): New macro, give hidden for [SHARED] and weak for [! SHARED]. (symbol_set_declare): Use that. Never need weak_extern these days. * Makerules ($(common-objpfx)shlib.lds): Go back to using PROVIDE. Depend on $(..)Makerules.
Diffstat (limited to 'include/libc-symbols.h')
-rw-r--r--include/libc-symbols.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index c4bd02835e..79add73307 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -345,11 +345,18 @@
be able to use the set's contents. */
# define symbol_set_define(set) symbol_set_declare(set)
-/* Declare SET for use in this module, if defined in another module. */
+/* Declare SET for use in this module, if defined in another module.
+ In a shared library, this is always local to that shared object.
+ For static linking, the set might be wholly absent and so we use
+ weak references. */
# define symbol_set_declare(set) \
- extern void *const __start_##set __attribute__ ((__weak__)); \
- extern void *const __stop_##set __attribute__ ((__weak__)); \
- weak_extern (__start_##set) weak_extern (__stop_##set)
+ extern void *const __start_##set __symbol_set_attribute; \
+ extern void *const __stop_##set __symbol_set_attribute;
+# ifdef SHARED
+# define __symbol_set_attribute attribute_hidden
+# else
+# define __symbol_set_attribute __attribute__ ((weak))
+# endif
/* Return a pointer (void *const *) to the first element of SET. */
# define symbol_set_first_element(set) (&__start_##set)