aboutsummaryrefslogtreecommitdiff
path: root/bfd/ChangeLog
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@imgtec.com>2017-02-02 22:05:46 +0000
committerMaciej W. Rozycki <macro@imgtec.com>2017-02-02 22:38:23 +0000
commite17b0c351f0b22fb42edf34e5a6e486d72e9ee05 (patch)
treec2529cdc261f4d726942acaf85b86e049cd35646 /bfd/ChangeLog
parent55f8b9d243dbd879ffa585f7e0c7d8b6b819302d (diff)
downloadgdb-e17b0c351f0b22fb42edf34e5a6e486d72e9ee05.zip
gdb-e17b0c351f0b22fb42edf34e5a6e486d72e9ee05.tar.gz
gdb-e17b0c351f0b22fb42edf34e5a6e486d72e9ee05.tar.bz2
MIPS/BFD: Respect the ELF gABI dynamic symbol table sort requirement
Ensure all local symbols precede external symbols in the dynamic symbol table. No local symbols are expected to make it to the dynamic symbol table except for section symbols already taken care of, so this is really a safeguard only against a potential BFD bug otherwise not so harmful, which may become a grave one due to a symbol table sorting requirement violation (see PR ld/20828 for an example). This means however that no test suite coverage is possible for this change as code introduced here is not normally expected to trigger. Logically split then the part of the dynamic symbol table which is not global offset table mapped, into a local area at the beginning and an external area following. By the time `mips_elf_sort_hash_table' is called we have the number of local dynamic symbol table entries (section and non-section) already counted in `local_dynsymcount', so use it to offset the external area from the beginning. bfd/ * elfxx-mips.c (mips_elf_hash_sort_data): Add `max_local_dynindx'. (mips_elf_sort_hash_table): Handle it. (mips_elf_sort_hash_table_f) <GGA_NONE>: For forced local symbols bump up `max_local_dynindx' rather than `max_non_got_dynindx'.
Diffstat (limited to 'bfd/ChangeLog')
-rw-r--r--bfd/ChangeLog9
1 files changed, 9 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c351eb1..bbd1200 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,14 @@
2017-02-02 Maciej W. Rozycki <macro@imgtec.com>
+ * elfxx-mips.c (mips_elf_hash_sort_data): Add
+ `max_local_dynindx'.
+ (mips_elf_sort_hash_table): Handle it.
+ (mips_elf_sort_hash_table_f) <GGA_NONE>: For forced local
+ symbols bump up `max_local_dynindx' rather than
+ `max_non_got_dynindx'.
+
+2017-02-02 Maciej W. Rozycki <macro@imgtec.com>
+
* elfxx-mips.c (mips_elf_hash_sort_data): Convert the
`min_got_dynindx', `max_unref_got_dynindx' and
`max_non_got_dynindx' members to the `bfd_size_type' data type.