|
@@ -382,7 +382,7 @@
|
|
* by libc_hidden_proto). The reasoning to have it after the header w/ foo's prototype is
|
|
* by libc_hidden_proto). The reasoning to have it after the header w/ foo's prototype is
|
|
* to get first the __REDIRECT from original header and then create the __GI_foo alias
|
|
* to get first the __REDIRECT from original header and then create the __GI_foo alias
|
|
* c. no versioning support, hidden[_data]_ver are noop
|
|
* c. no versioning support, hidden[_data]_ver are noop
|
|
- * d. hidden_strong_alias() added, and hidden_def() in asm is hidden_strong_alias (not strong_alias) */
|
|
+ * d. hidden_def() in asm is _hidden_strong_alias (not strong_alias) */
|
|
|
|
|
|
/* Arrange to hide uClibc internals */
|
|
/* Arrange to hide uClibc internals */
|
|
#if defined __GNUC__ && defined __GNUC_MINOR__ && \
|
|
#if defined __GNUC__ && defined __GNUC_MINOR__ && \
|
|
@@ -396,10 +396,6 @@
|
|
|
|
|
|
#if 1 /* SHARED */
|
|
#if 1 /* SHARED */
|
|
# ifndef __ASSEMBLER__
|
|
# ifndef __ASSEMBLER__
|
|
-# define hidden_strong_alias(name, aliasname) _hidden_strong_alias(name, aliasname)
|
|
|
|
-# define _hidden_strong_alias(name, aliasname) \
|
|
|
|
- extern __typeof (name) aliasname __attribute__ ((alias (#name))) attribute_hidden;
|
|
|
|
-
|
|
|
|
# define hidden_proto(name, attrs...) __hidden_proto (name, __GI_##name, ##attrs)
|
|
# define hidden_proto(name, attrs...) __hidden_proto (name, __GI_##name, ##attrs)
|
|
# define __hidden_proto(name, internal, attrs...) \
|
|
# define __hidden_proto(name, internal, attrs...) \
|
|
extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
|
|
extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
|
|
@@ -418,7 +414,7 @@
|
|
# else /* __ASSEMBLER__ */
|
|
# else /* __ASSEMBLER__ */
|
|
# ifdef HAVE_ASM_SET_DIRECTIVE
|
|
# ifdef HAVE_ASM_SET_DIRECTIVE
|
|
# ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
|
# ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
|
-# define hidden_strong_alias(original, alias) \
|
|
+# define _hidden_strong_alias(original, alias) \
|
|
ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
.hidden C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
.hidden C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
.set C_SYMBOL_NAME (alias),C_SYMBOL_NAME (original) ASM_LINE_SEP \
|
|
.set C_SYMBOL_NAME (alias),C_SYMBOL_NAME (original) ASM_LINE_SEP \
|
|
@@ -426,14 +422,14 @@
|
|
.hidden C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
|
|
.hidden C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
|
|
.set C_SYMBOL_DOT_NAME (alias),C_SYMBOL_DOT_NAME (original)
|
|
.set C_SYMBOL_DOT_NAME (alias),C_SYMBOL_DOT_NAME (original)
|
|
# else
|
|
# else
|
|
-# define hidden_strong_alias(original, alias) \
|
|
+# define _hidden_strong_alias(original, alias) \
|
|
ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
.hidden C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
.hidden C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
.set C_SYMBOL_NAME (alias),C_SYMBOL_NAME (original)
|
|
.set C_SYMBOL_NAME (alias),C_SYMBOL_NAME (original)
|
|
# endif
|
|
# endif
|
|
# else
|
|
# else
|
|
# ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
|
# ifdef HAVE_ASM_GLOBAL_DOT_NAME
|
|
-# define hidden_strong_alias(original, alias) \
|
|
+# define _hidden_strong_alias(original, alias) \
|
|
ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
.hidden C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
.hidden C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original) ASM_LINE_SEP \
|
|
C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original) ASM_LINE_SEP \
|
|
@@ -441,7 +437,7 @@
|
|
.hidden C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
|
|
.hidden C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
|
|
C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
|
|
C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
|
|
# else
|
|
# else
|
|
-# define hidden_strong_alias(original, alias) \
|
|
+# define _hidden_strong_alias(original, alias) \
|
|
ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
.hidden C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
.hidden C_SYMBOL_NAME (alias) ASM_LINE_SEP \
|
|
C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
|
|
C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
|
|
@@ -457,15 +453,13 @@
|
|
but we provide it for consistency with the C usage.
|
|
but we provide it for consistency with the C usage.
|
|
hidden_proto doesn't make sense for assembly but the equivalent
|
|
hidden_proto doesn't make sense for assembly but the equivalent
|
|
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_def (name)
|
|
# define hidden_data_weak(name) hidden_data_def (name)
|
|
# define hidden_data_weak(name) hidden_data_def (name)
|
|
# define HIDDEN_JUMPTARGET(name) __GI_##name
|
|
# define HIDDEN_JUMPTARGET(name) __GI_##name
|
|
# endif /* __ASSEMBLER__ */
|
|
# endif /* __ASSEMBLER__ */
|
|
#else /* SHARED */
|
|
#else /* SHARED */
|
|
-# define hidden_strong_alias(name, aliasname)
|
|
|
|
-
|
|
|
|
# ifndef __ASSEMBLER__
|
|
# ifndef __ASSEMBLER__
|
|
# define hidden_proto(name, attrs...)
|
|
# define hidden_proto(name, attrs...)
|
|
# else
|
|
# else
|