From cc86ff917dedaa5e0c473e9298b7238c0221282f Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Sat, 16 Jul 2005 15:08:14 +0000 Subject: [PATCH] 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. --- bfd/ChangeLog | 7 +++++++ bfd/elflink.c | 9 +++++---- 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 + + 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 * 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; -- 2.7.4