aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf32-sh64.c4
-rw-r--r--bfd/elf64-sh64.c4
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;