2000-02-22 H.J. Lu <hjl@gnu.org>
authorIan Lance Taylor <ian@airs.com>
Tue, 22 Feb 2000 08:06:01 +0000 (08:06 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 22 Feb 2000 08:06:01 +0000 (08:06 +0000)
* elflink.h (elf_link_add_object_symbols): If a version symbol is
not defined, don't add a second ELF_VER_CHR.

bfd/ChangeLog
bfd/elflink.h

index da0d94da03b73633e57fd95cbc1e50761f3c1968..5d4d4a2fe64c7e537516e0ddd76f13a8c3aea3aa 100644 (file)
@@ -5,6 +5,9 @@
 
 2000-02-22  H.J. Lu  <hjl@gnu.org>
 
+       * elflink.h (elf_link_add_object_symbols): If a version symbol is
+       not defined, don't add a second ELF_VER_CHR.
+
         * elflink.h (elf_bfd_final_link): Call output_extsym for global
        symbols converted to local symbols even when stripping all
        symbols.
index 00037b38a985779f1c58111b97f8f4ca45e7e2f5..6acb790196b72b25e47c8be81970f541f31a792e 100644 (file)
@@ -1444,7 +1444,11 @@ elf_link_add_object_symbols (abfd, info)
                  strcpy (newname, name);
                  p = newname + namelen;
                  *p++ = ELF_VER_CHR;
-                 if ((iver.vs_vers & VERSYM_HIDDEN) == 0)
+                 /* If this is a defined non-hidden version symbol,
+                    we add another @ to the name.  This indicates the
+                    default version of the symbol.  */
+                 if ((iver.vs_vers & VERSYM_HIDDEN) == 0
+                     && sym.st_shndx != SHN_UNDEF)
                    *p++ = ELF_VER_CHR;
                  strcpy (p, verstr);