summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2006-05-04 15:18:05 +0000
committerMike Frysinger <vapier@gentoo.org>2006-05-04 15:18:05 +0000
commite72492fd1a35ee6c2cb21ee88867b3a4e5bd4694 (patch)
treefa4dfd09eb30cfad859c722191150149a0b2e674
parent42c18467896fd908856f9ddbfe721ad7d726a9c4 (diff)
fix by Bernd Schmidt to support HAVE_ASM_SET_DIRECTIVE in weak_alias() macros
-rw-r--r--include/libc-symbols.h23
1 files changed, 18 insertions, 5 deletions
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index 9ef87ce47..ef1e21747 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -230,18 +230,31 @@
# else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
-# ifdef HAVE_ASM_GLOBAL_DOT_NAME
-# define weak_alias(original, alias) \
+# ifdef HAVE_ASM_SET_DIRECTIVE
+# ifdef HAVE_ASM_GLOBAL_DOT_NAME
+# define weak_alias(original, alias) \
+ .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP \
+ .set C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original) ASM_LINE_SEP \
+ .weak C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
+ .set C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
+# else
+# define weak_alias(original, alias) \
+ .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP \
+ .set C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
+# endif
+# else /* ! HAVE_ASM_SET_DIRECTIVE */
+# ifdef HAVE_ASM_GLOBAL_DOT_NAME
+# define weak_alias(original, alias) \
.weak C_SYMBOL_NAME (alias) ASM_LINE_SEP \
C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original) ASM_LINE_SEP \
.weak C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
-# else
-# define weak_alias(original, alias) \
+# else
+# define weak_alias(original, alias) \
.weak C_SYMBOL_NAME (alias) ASM_LINE_SEP \
C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
+# endif
# endif
-
# define weak_extern(symbol) \
.weak C_SYMBOL_NAME (symbol)