diff options
| -rw-r--r-- | include/libc-symbols.h | 23 | 
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)  | 
