summaryrefslogtreecommitdiff
path: root/binutils/objdump.c
diff options
context:
space:
mode:
Diffstat (limited to 'binutils/objdump.c')
-rw-r--r--binutils/objdump.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/binutils/objdump.c b/binutils/objdump.c
index ee2f577cc3e..9e76684c071 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -3910,6 +3910,13 @@ disassemble_section (bfd *abfd, asection *section, void *inf)
{
do_print = true;
+ /* Skip over the relocs belonging to addresses below the
+ symbol address. */
+ const bfd_vma sym_offset = bfd_asymbol_value (sym) - section->vma;
+ while (rel_pp < rel_ppend &&
+ (*rel_pp)->address - rel_offset < sym_offset)
+ ++rel_pp;
+
if (sym->flags & BSF_FUNCTION)
{
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour