PR ld/1021
authorEric Botcazou <ebotcazou@libertysurf.fr>
Sat, 16 Jul 2005 15:08:14 +0000 (15:08 +0000)
committerEric Botcazou <ebotcazou@libertysurf.fr>
Sat, 16 Jul 2005 15:08:14 +0000 (15:08 +0000)
PR ld/1031
* elflink.c (elf_link_add_object_symbols): Also append the version
name to non-hidden absolute symbols that are functions.

bfd/ChangeLog
bfd/elflink.c

index 7870c6005f9d00285f28816016f18600818f5dad..334d42ebdce995d8652a3000bfa7ced6373823db 100644 (file)
@@ -1,3 +1,10 @@
+2005-05-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR ld/1021
+       PR ld/1031
+       * elflink.c (elf_link_add_object_symbols): Also append the version
+       name to non-hidden absolute symbols that are functions.
+
 2005-07-16  Alan Modra  <amodra@bigpond.net.au>
 
        * elf32-ppc.c (ppc_elf_set_sdata_syms): Return void.  Remove hack
index 7307c15a4f87461eaaf3bd70a63efa17ee023b30..d030b920f5418bd428cf62e54e0a46b3340dad70 100644 (file)
@@ -3687,11 +3687,12 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
 
          /* If this is a hidden symbol, or if it is not version
             1, we append the version name to the symbol name.
-            However, we do not modify a non-hidden absolute
-            symbol, because it might be the version symbol
-            itself.  FIXME: What if it isn't?  */
+            However, we do not modify a non-hidden absolute symbol
+            if it is not a function, because it might be the version
+            symbol itself.  FIXME: What if it isn't?  */
          if ((iver.vs_vers & VERSYM_HIDDEN) != 0
-             || (vernum > 1 && ! bfd_is_abs_section (sec)))
+             || (vernum > 1 && (! bfd_is_abs_section (sec)
+                                || ELF_ST_TYPE (isym->st_info) == STT_FUNC)))
            {
              const char *verstr;
              size_t namelen, verlen, newlen;