diff options
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf32-sh64.c | 4 | ||||
-rw-r--r-- | bfd/elf64-sh64.c | 4 |
3 files changed, 10 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index d007593..b997450 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2006-10-21 Kaz Kojima <kkojima@rr.iij4u.or.jp> + + * elf32-sh64.c (sh64_elf_merge_symbol_attribute): Do merging + only when the non visibility part of st_other is non-zero. + * elf64-sh64.c (sh64_elf64_merge_symbol_attribute): Likewise. + 2006-10-20 Richard Sandiford <richard@codesourcery.com> * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Don't extend diff --git a/bfd/elf32-sh64.c b/bfd/elf32-sh64.c index 03d5e3e..9ad795e 100644 --- a/bfd/elf32-sh64.c +++ b/bfd/elf32-sh64.c @@ -742,9 +742,9 @@ static void sh64_elf_merge_symbol_attribute (struct elf_link_hash_entry *h, const Elf_Internal_Sym *isym, bfd_boolean definition, - bfd_boolean dynamic) + bfd_boolean dynamic ATTRIBUTE_UNUSED) { - if (isym->st_other != 0 && dynamic) + if ((isym->st_other & ~ELF_ST_VISIBILITY (-1)) != 0) { unsigned char other; diff --git a/bfd/elf64-sh64.c b/bfd/elf64-sh64.c index 5ebea96..731995f 100644 --- a/bfd/elf64-sh64.c +++ b/bfd/elf64-sh64.c @@ -4020,9 +4020,9 @@ static void sh64_elf64_merge_symbol_attribute (struct elf_link_hash_entry *h, const Elf_Internal_Sym *isym, bfd_boolean definition, - bfd_boolean dynamic) + bfd_boolean dynamic ATTRIBUTE_UNUSED) { - if (isym->st_other != 0 && dynamic) + if ((isym->st_other & ~ELF_ST_VISIBILITY (-1)) != 0) { unsigned char other; |