objdump: Better objdump section headers in wide mode
authorAndrew Burgess <andrew.burgess@embecosm.com>
Wed, 28 Dec 2016 13:22:44 +0000 (13:22 +0000)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Fri, 20 Jan 2017 09:05:41 +0000 (09:05 +0000)
commit1737c64030af533c520dd1ed1ec2787302cdf830
tree0d53bbd08db4031d5a9d51d7d46a12111b7f9150
parent2132fe850322e10313d94d505f7ea268f9524ba0
objdump: Better objdump section headers in wide mode

When displaying the section headers table using objdump (-h), the column
containing the section header name is currently fixed at 13 characters.
A section name that is longer than 13 characters will overflow the
column causing the table to become miss-aligned.

In this commit I change the behaviour so that _in wide mode_ (-w -h) the
section name column is dynamically resized to fit the longest section
name we plan to display.  In wide mode the column still retains a
minimum width of 13 characters.

In non-wide more the behaviour is completely unchanged.

While I was changing the dump_headers function I have unified the two
printf lines that handled the different address widths into a single
printf, the address width is now passed into printf using the '*' field
width format character.

binutils/ChangeLog:

* objdump.c (dump_section_header): Extract max section name length
from data parameter, use this when formatting output.
(find_longest_section_name): New function.
(dump_headers): Calculate longest section name when in wide mode,
reformat to unify printing of header line.

ld/ChangeLog:

* testsuite/ld-elf/eh-frame-hdr.d: Update expected results.
binutils/ChangeLog
binutils/objdump.c
ld/ChangeLog
ld/testsuite/ld-elf/eh-frame-hdr.d