aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@libertysurf.fr>2005-07-16 15:08:14 +0000
committerEric Botcazou <ebotcazou@libertysurf.fr>2005-07-16 15:08:14 +0000
commitcc86ff917dedaa5e0c473e9298b7238c0221282f (patch)
treea4f9c307130316d7039439612bc103365cc9f204 /bfd
parent42fa7765a27b1d9691a1ca141408279bd9c3cd4e (diff)
downloadgdb-cc86ff917dedaa5e0c473e9298b7238c0221282f.zip
gdb-cc86ff917dedaa5e0c473e9298b7238c0221282f.tar.gz
gdb-cc86ff917dedaa5e0c473e9298b7238c0221282f.tar.bz2
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.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elflink.c9
2 files changed, 12 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7870c60..334d42e 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 7307c15..d030b92 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -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;