Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 17 Dec 2003 08:36:34 +0000 (08:36 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 17 Dec 2003 08:36:34 +0000 (08:36 +0000)
2003-12-17  Ulrich Drepper  <drepper@redhat.com>

* elf/rtld.c: Don't use strong_alias to define _rtld_local.  This
removes the visibility attributes which might be defined earlier
for some gcc versions.  Instead spell out what strong_alias does
plus the visibility.

ChangeLog
elf/rtld.c

index 0dd06a5..4f641c8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2003-12-17  Ulrich Drepper  <drepper@redhat.com>
+
+       * elf/rtld.c: Don't use strong_alias to define _rtld_local.  This
+       removes the visibility attributes which might be defined earlier
+       for some gcc versions.  Instead spell out what strong_alias does
+       plus the visibility.
+
 2003-12-16  Petter Reinholdtsen  <pere@hungry.com>
 
        * posix/regex_internal.h: Make sure the regex code compile
index dcc617b..a0a50b1 100644 (file)
@@ -105,7 +105,12 @@ struct rtld_global _rtld_global =
     ._dl_load_lock = _RTLD_LOCK_RECURSIVE_INITIALIZER
 #endif
   };
-strong_alias (_rtld_global, _rtld_local);
+/* If we would use strong_alias here the compiler would see a
+   non-hidden definition.  This would undo the effect of the previous
+   declaration.  So spell out was strong_alias does plus add the
+   visibility attribute.  */
+extern struct rtld_global _rtld_local
+    __attribute__ ((alias ("_rtld_global"), visibility ("hidden")));
 
 static void dl_main (const ElfW(Phdr) *phdr, ElfW(Word) phnum,
                     ElfW(Addr) *user_entry);
@@ -140,7 +145,7 @@ DL_SYSINFO_IMPLEMENTATION
 /* Before ld.so is relocated we must not access variables which need
    relocations.  This means variables which are exported.  Variables
    declared as static are fine.  If we can mark a variable hidden this
-   is fine, too.  The latter is impotant here.  We can avoid setting
+   is fine, too.  The latter is important here.  We can avoid setting
    up a temporary link map for ld.so if we can mark _rtld_global as
    hidden.  */
 #if defined PI_STATIC_AND_HIDDEN && defined HAVE_HIDDEN \