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