aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@imgtec.com>2016-05-03 23:47:55 +0100
committerMaciej W. Rozycki <macro@imgtec.com>2016-05-03 23:51:33 +0100
commit6d6a648c0789fb227ee2adfb089fe0ce8174708d (patch)
treecd55f69021edc1c4d06235742541b9fbd473bcd1 /bfd
parent99d1b2682145c2b154a8a0d91787e55321f2b269 (diff)
downloadgdb-6d6a648c0789fb227ee2adfb089fe0ce8174708d.zip
gdb-6d6a648c0789fb227ee2adfb089fe0ce8174708d.tar.gz
gdb-6d6a648c0789fb227ee2adfb089fe0ce8174708d.tar.bz2
PR 10549: MIPS/LD: Handle OSABI setting for STB_GNU_UNIQUE
Add missing OSABI handling for MIPS/LD, complementing: commit f64b2e8d60f277b705c96d4b4e585f5f7c847cc4 Author: Nick Clifton <nickc@redhat.com> Date: Mon Apr 11 08:13:22 2011 +0000 Adjust test coverage accordingly. bfd/ PR 10549 * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Handle STB_GNU_UNIQUE. ld/ PR 10549 * testsuite/ld-unique/unique.exp: Also run for `mips*-*-*'.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elfxx-mips.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 432ec91..41feb85 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2016-05-03 Maciej W. Rozycki <macro@imgtec.com>
+
+ PR 10549
+ * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Handle
+ STB_GNU_UNIQUE.
+
2016-05-03 Jiong Wang <jiong.wang@arm.com>
* bfd-in.h (bfd_elf64_aarch64_set_options): Update prototype.
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index a46b2f5..3c2de4e 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -7526,6 +7526,11 @@ _bfd_mips_elf_add_symbol_hook (bfd *abfd, struct bfd_link_info *info,
mips_elf_hash_table (info)->rld_symbol = h;
}
+ if (ELF_ST_BIND (sym->st_info) == STB_GNU_UNIQUE
+ && (abfd->flags & DYNAMIC) == 0
+ && bfd_get_flavour (info->output_bfd) == bfd_target_elf_flavour)
+ elf_tdata (info->output_bfd)->has_gnu_symbols |= elf_gnu_symbol_unique;
+
/* If this is a mips16 text symbol, add 1 to the value to make it
odd. This will cause something like .word SYM to come up with
the right value when it is loaded into the PC. */