From: Alan Modra Date: Fri, 3 Jun 2005 01:52:29 +0000 (+0000) Subject: * elf64-ppc.c (add_symbol_adjust): Set sym visibility to most X-Git-Tag: binutils-2_16_1~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=478160ca8c8f1acf09da12db84b007b26d14ffd8;p=thirdparty%2Fbinutils-gdb.git * elf64-ppc.c (add_symbol_adjust): Set sym visibility to most restrictive of func code and func descr for undefined syms as well as defined. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 718b8bf831c..bd81db1f8a5 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2005-06-02 Alan Modra + + * elf64-ppc.c (add_symbol_adjust): Set sym visibility to most + restrictive of func code and func descr for undefined syms as well + as defined. + 2005-05-29 Daniel Jacobowitz Backport from mainline: diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index 69afd3a65f7..70219b5436a 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -4111,9 +4111,7 @@ add_symbol_adjust (struct elf_link_hash_entry *h, void *inf) else fdh->elf.ref_regular = 1; } - else if (fdh != NULL - && (fdh->elf.root.type == bfd_link_hash_defined - || fdh->elf.root.type == bfd_link_hash_defweak)) + else if (fdh != NULL) { unsigned entry_vis = ELF_ST_VISIBILITY (eh->elf.other) - 1; unsigned descr_vis = ELF_ST_VISIBILITY (fdh->elf.other) - 1; @@ -4122,7 +4120,9 @@ add_symbol_adjust (struct elf_link_hash_entry *h, void *inf) else if (entry_vis > descr_vis) eh->elf.other += descr_vis - entry_vis; - if (eh->elf.root.type == bfd_link_hash_undefined) + if ((fdh->elf.root.type == bfd_link_hash_defined + || fdh->elf.root.type == bfd_link_hash_defweak) + && eh->elf.root.type == bfd_link_hash_undefined) { eh->elf.root.type = bfd_link_hash_undefweak; eh->was_undefined = 1;