|
@@ -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)
|
|
|
|