Bug ID: 22911
           Summary: Huge slowdown in objdump -d caused by scanning the
                    dynamic relocs
           Product: binutils
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: binutils
          Assignee: unassigned at sourceware dot org
          Reporter: mark at klomp dot org
                CC: jseward at acm dot org
  Target Milestone: ---

The following commit:

commit a24bb4f0cce83eea8b2ad1542316651143af6f90
Author: Nick Clifton <>
Date:   Tue Oct 11 13:50:10 2016 +0100

    Enhance objdump so that it will use .got, .plt and section symbols
when disassembling, and it will use dynamic relocs to interpret entries in the
PLT and GOT.

    binutils * objdump.c (is_significant_symbol_name): New function.
        (remove_useless_symbols): Do not remove significanr symbols.
        (find_symbol_for_address): If an exact match for the specified
        address has not been found, try scanning the dynamic relocs to see
        if one of these matches the address.  If so, use the symbol
        associated with the reloc.
        (objdump_print_addr_with_symbol): Do not print offsets to symbols
        with no value.
        (disassemble_section): Only use dynamic relocs if the user
        requested this.
        (disassemble_data): Always load dynamic relocs if they are

Caused a huge slowdown of disassembling some binaries.

Specifically reverting:;a=blobdiff_plain;f=binutils/objdump.c;h=59abc1189be5643a44405cc71cabb1397ae9f5d8;hp=2d2bddb03ce5fc9093befb61522e05371d783d66;hb=a24bb4f0cce83eea8b2ad1542316651143af6f90;hpb=199fa1b7089d7f7438b087fa30504ea5a590f561

Makes time ./binutils/objdump -d /usr/lib64/firefox/ > /dev/null go

real    2m48.616s
user    2m48.242s
sys     0m0.160s


real    0m11.781s
user    0m11.717s
sys     0m0.064s

You are receiving this mail because:
You are on the CC list for the bug.
bug-binutils mailing list

Reply via email to