Add a warning if an emtpty SHT_REL, SHT_RELA or SHT_PROGBITS section is detected...
authorNick Clifton <nickc@redhat.com>
Wed, 29 Apr 2020 15:01:40 +0000 (16:01 +0100)
committerNick Clifton <nickc@redhat.com>
Wed, 29 Apr 2020 15:01:40 +0000 (16:01 +0100)
commit1b513401599fc5c35a3a8ad0321e0b00a0bdb0f8
tree60828bb944219b8162057ef6b1a843982045cce5
parentfc49bc72378b4402ca60baa5ff65f1392c92c279
Add a warning if an emtpty SHT_REL, SHT_RELA or SHT_PROGBITS section is detected.  Disable all warnings unless the (new) lint mode is enabled.

* readelf.c (warn): New function - like elfcomm.c version but only
produces output if warnings are enabled.
(struct options): Add --lint and --enable-checks.
(usage): Add entry for --lint.
(parse_args): Handle -L.  If checks are enabled but no dumps have
been selected then enable all dumps.
(process_section_headers): Replace long if-then-else sequence with
a switch.  Add warning messages for empty SHT_REL, SHT_RELA and
SHT_PROGBITS sections.
(process_file): Do not complain if the file is an archive and lint
mode has been enabled.
* elfcomm.c (error): Make the function weak.
(warn): Likewise.
* NEWS: Mention the new feature.
* doc/binutils.texi: Document the new feature.
* dwarf.h (report_leb_status): Add file name and line number
parameters.  Include them in the diagnostic output.
(READ_ULEB): Pass file and line number to report_leb_status.
(READ_SLEB): Likewise.
* dwarf.c (read_and_print_leb128): Pass file and line number to
report_leb_status.
* testsuite/binutils-all/readelf.exp: Add test of new feature.
* testsuite/binutils-all/zero-sec.s: New test source file.
* testsuite/binutils-all/zero-sec.r: Expected output from new
test.
binutils/ChangeLog
binutils/NEWS
binutils/doc/binutils.texi
binutils/dwarf.c
binutils/dwarf.h
binutils/elfcomm.c
binutils/readelf.c
binutils/testsuite/binutils-all/readelf.exp
binutils/testsuite/binutils-all/zero-sec.r [new file with mode: 0644]
binutils/testsuite/binutils-all/zero-sec.s [new file with mode: 0644]