aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2000-02-22 08:06:01 +0000
committerIan Lance Taylor <ian@airs.com>2000-02-22 08:06:01 +0000
commit1287d1cc37aca000234065fd0472a3a9846f4017 (patch)
tree1aa19e84008f6a4742dbc242daa90eb7c3c31703 /bfd
parentb985eaa8396e3febe527b165dc54c9d3bd045ff7 (diff)
downloadgdb-1287d1cc37aca000234065fd0472a3a9846f4017.zip
gdb-1287d1cc37aca000234065fd0472a3a9846f4017.tar.gz
gdb-1287d1cc37aca000234065fd0472a3a9846f4017.tar.bz2
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.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog3
-rw-r--r--bfd/elflink.h6
2 files changed, 8 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index da0d94d..5d4d4a2 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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.
diff --git a/bfd/elflink.h b/bfd/elflink.h
index 00037b3..6acb790 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -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);