Browse Source

Add internal hidden_weak support for asm

Peter S. Mazinger 19 years ago
parent
commit
7f4d6efd2f
1 changed files with 13 additions and 2 deletions
  1. 13 2
      include/libc-symbols.h

+ 13 - 2
include/libc-symbols.h

@@ -438,6 +438,17 @@
 #  endif
 #  endif
 # endif
 # endif
 
 
+#  ifdef HAVE_ASM_GLOBAL_DOT_NAME
+#   define _hidden_weak_alias(original, alias)				\
+     .hidden C_SYMBOL_NAME (alias) ASM_LINE_SEP				\
+     .hidden C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP			\
+     weak_alias(original, alias)
+#  else
+#   define _hidden_weak_alias(original, alias)				\
+     .hidden C_SYMBOL_NAME (alias) ASM_LINE_SEP				\
+     weak_alias(original, alias)
+#  endif
+
 /* For assembly, we need to do the opposite of what we do in C:
 /* For assembly, we need to do the opposite of what we do in C:
    in assembly gcc __REDIRECT stuff is not in place, so functions
    in assembly gcc __REDIRECT stuff is not in place, so functions
    are defined by its normal name and we need to create the
    are defined by its normal name and we need to create the
@@ -449,8 +460,8 @@
    is to call via the HIDDEN_JUMPTARGET macro instead of JUMPTARGET.  */
    is to call via the HIDDEN_JUMPTARGET macro instead of JUMPTARGET.  */
 #  define hidden_def(name)	_hidden_strong_alias (name, __GI_##name)
 #  define hidden_def(name)	_hidden_strong_alias (name, __GI_##name)
 #  define hidden_data_def(name)	_hidden_strong_alias (name, __GI_##name)
 #  define hidden_data_def(name)	_hidden_strong_alias (name, __GI_##name)
-#  define hidden_weak(name)	hidden_def (name)
+#  define hidden_weak(name)	_hidden_weak_alias (name, __GI_##name)
-#  define hidden_data_weak(name)	hidden_data_def (name)
+#  define hidden_data_weak(name)	_hidden_weak_alias (name, __GI_##name)
 #  define HIDDEN_JUMPTARGET(name) __GI_##name
 #  define HIDDEN_JUMPTARGET(name) __GI_##name
 # endif /* __ASSEMBLER__ */
 # endif /* __ASSEMBLER__ */
 #else /* SHARED */
 #else /* SHARED */