svn commit: trunk/uClibc/include
vapier at uclibc.org
vapier at uclibc.org
Fri Jan 20 22:46:31 UTC 2006
Author: vapier
Date: 2006-01-20 14:46:29 -0800 (Fri, 20 Jan 2006)
New Revision: 13461
Log:
grab some macros for internal ldso usage and fix strong_alias/hidden_strong_alias when .set support is disabled
Modified:
trunk/uClibc/include/libc-symbols.h
Changeset:
Modified: trunk/uClibc/include/libc-symbols.h
===================================================================
--- trunk/uClibc/include/libc-symbols.h 2006-01-20 21:48:06 UTC (rev 13460)
+++ trunk/uClibc/include/libc-symbols.h 2006-01-20 22:46:29 UTC (rev 13461)
@@ -273,6 +273,31 @@
link_warning (name, \
"warning: " #name " is not implemented and will always fail")
+/* Handling on non-exported internal names. We have to do this only
+ for shared code. */
+#ifdef SHARED
+# define INTUSE(name) name##_internal
+# define INTDEF(name) strong_alias (name, name##_internal)
+# define INTVARDEF(name) \
+ _INTVARDEF (name, name##_internal)
+# if defined HAVE_VISIBILITY_ATTRIBUTE
+# define _INTVARDEF(name, aliasname) \
+ extern __typeof (name) aliasname __attribute__ ((alias (#name), \
+ visibility ("hidden")));
+# else
+# define _INTVARDEF(name, aliasname) \
+ extern __typeof (name) aliasname __attribute__ ((alias (#name)));
+# endif
+# define INTDEF2(name, newname) strong_alias (name, newname##_internal)
+# define INTVARDEF2(name, newname) _INTVARDEF (name, newname##_internal)
+#else
+# define INTUSE(name) name
+# define INTDEF(name)
+# define INTVARDEF(name)
+# define INTDEF2(name, newname)
+# define INTVARDEF2(name, newname)
+#endif
+
/* The following macros are used for PLT bypassing within libc.so
(and if needed other libraries similarly).
First of all, you need to have the function prototyped somewhere,
@@ -416,7 +441,7 @@
.hidden C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
# else
-# define strong_alias(original, alias) \
+# define hidden_strong_alias(original, alias) \
ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
.hidden C_SYMBOL_NAME (alias) ASM_LINE_SEP \
C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
More information about the uClibc-cvs
mailing list