about summary refs log tree commit diff
path: root/libc-symbols.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-07-26 07:10:58 +0000
committerRoland McGrath <roland@gnu.org>1995-07-26 07:10:58 +0000
commit958f803fc021993cc2ee1d4157d0092b830368aa (patch)
tree0e5939ccad4bb5a551b81f344843613455c12bb8 /libc-symbols.h
parent9f2233e81a0eb06e7278584654cfbdd313d8c228 (diff)
downloadglibc-958f803fc021993cc2ee1d4157d0092b830368aa.tar.gz
glibc-958f803fc021993cc2ee1d4157d0092b830368aa.tar.xz
glibc-958f803fc021993cc2ee1d4157d0092b830368aa.zip
Wed Jul 26 02:00:29 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> cvs/bind-493b24
	* malloc/memalign.c: Allocate (SIZE + ALIGNMENT - 1) and then trim
 	if possible.

	* mach/shortcut.awk: Emit decls for RPC.

	* libc-symbols.h [GCC >= 2.7 && !ASSEMBLER] (weak_symbol,
 	weak_alias, strong_alias): Define using GCC __attribute__ syntax.

	* Makerules ($(installed-libcs)): Depend on `lib' (only).
Diffstat (limited to 'libc-symbols.h')
-rw-r--r--libc-symbols.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/libc-symbols.h b/libc-symbols.h
index f4d82a6e72..951ea61ec2 100644
--- a/libc-symbols.h
+++ b/libc-symbols.h
@@ -134,6 +134,26 @@ Cambridge, MA 02139, USA.  */
 #endif
 
 
+#if (!defined (ASSEMBLER) && \
+     (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)))
+/* GCC 2.7 and later has special syntax for weak symbols and aliases.
+   Using that is better when possible, because the compiler and assembler
+   are better clued in to what we are doing.  */
+#undef	strong_alias
+#define strong_alias(name, aliasname) \
+  __typeof (name) aliasname __attribute__ ((alias (#name)));
+
+#ifdef HAVE_WEAK_SYMBOLS
+#undef	weak_symbol
+#define weak_symbol(name) \
+  __typeof (name) name __attribute__ ((weak));
+#undef	weak_alias
+#define weak_alias(name, aliasname) \
+  __typeof (name) aliasname __attribute__ ((weak, alias (#name)));
+#endif	/* HAVE_WEAK_SYMBOLS.  */
+#endif	/* Not ASSEMBLER, and GCC 2.7 or later.  */
+
+
 
 /* When the file using this macro is linked in, the linker
    will emit a warning message MSG.  */