diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2018-03-05 03:44:46 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2018-03-05 03:45:03 -0800 |
commit | 0e70b27ba900581df8e23cbbd4612176f869d796 (patch) | |
tree | 173a562711a6b01e802b7713eaa4c29700f09f0d /binutils/ChangeLog | |
parent | 3dea1ef72c646d808e5b287e98253f3b8670c450 (diff) | |
download | gdb-0e70b27ba900581df8e23cbbd4612176f869d796.zip gdb-0e70b27ba900581df8e23cbbd4612176f869d796.tar.gz gdb-0e70b27ba900581df8e23cbbd4612176f869d796.tar.bz2 |
Use binary search on dynamic relocations
Replace linear search with binary search on dynamic relocations. After
finding a match, scan backward to the first matching relocation, then
scan forward for a matching relocation with non-absolute symbol.
On Fedora 27 x86-64, time for "objdump -d" on libxul.so from RHEL 7.4
x86-64 went from
134.46user 0.12system 2:15.03elapsed
to
8.49user 0.14system 0:08.64elapsed
PR binutils/22911
* objdump.c (is_significant_symbol_name): Return TRUE for all
.plt* sections.
(find_symbol_for_address): Replace linear search with binary
search on dynamic relocations.
Diffstat (limited to 'binutils/ChangeLog')
-rw-r--r-- | binutils/ChangeLog | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 067dd95..8af7344 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,11 @@ +2018-03-05 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/22911 + * objdump.c (is_significant_symbol_name): Return TRUE for all + .plt* sections. + (find_symbol_for_address): Replace linear search with binary + search on dynamic relocations. + 2018-03-01 Nick Clifton <nickc@redhat.com> PR 22905 |