diff options
author | Nick Clifton <nickc@redhat.com> | 2020-04-29 16:01:40 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2020-04-29 16:01:40 +0100 |
commit | 1b513401599fc5c35a3a8ad0321e0b00a0bdb0f8 (patch) | |
tree | 60828bb944219b8162057ef6b1a843982045cce5 /binutils/testsuite | |
parent | fc49bc72378b4402ca60baa5ff65f1392c92c279 (diff) | |
download | gdb-1b513401599fc5c35a3a8ad0321e0b00a0bdb0f8.zip gdb-1b513401599fc5c35a3a8ad0321e0b00a0bdb0f8.tar.gz gdb-1b513401599fc5c35a3a8ad0321e0b00a0bdb0f8.tar.bz2 |
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.
Diffstat (limited to 'binutils/testsuite')
-rw-r--r-- | binutils/testsuite/binutils-all/readelf.exp | 11 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/zero-sec.r | 3 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/zero-sec.s | 1 |
3 files changed, 15 insertions, 0 deletions
diff --git a/binutils/testsuite/binutils-all/readelf.exp b/binutils/testsuite/binutils-all/readelf.exp index cc78e66..6b385fd 100644 --- a/binutils/testsuite/binutils-all/readelf.exp +++ b/binutils/testsuite/binutils-all/readelf.exp @@ -506,4 +506,15 @@ if {![binutils_assemble $srcdir/$subdir/dwo.s tmpdir/dwo.o]} then { readelf_test {--debug-dump=links} $tempfile readelf.k2 {} } +if {![binutils_assemble $srcdir/$subdir/zero-sec.s tmpdir/zero-sec.o]} then { + unresolved "readelf --enable-checks (failed to assemble zero-sec.s)" +} else { + if ![is_remote host] { + set tempfile tmpdir/zero-sec.o + } else { + set tempfile [remote_download host tmpdir/zero-sec.o] + } + + readelf_test {--enable-checks --sections --wide} $tempfile zero-sec.r {} +} diff --git a/binutils/testsuite/binutils-all/zero-sec.r b/binutils/testsuite/binutils-all/zero-sec.r new file mode 100644 index 0000000..98dfdc3 --- /dev/null +++ b/binutils/testsuite/binutils-all/zero-sec.r @@ -0,0 +1,3 @@ +#... +.*Warning: Section '.*': has a size of zero - is this intended.* +#... diff --git a/binutils/testsuite/binutils-all/zero-sec.s b/binutils/testsuite/binutils-all/zero-sec.s new file mode 100644 index 0000000..ba8de23 --- /dev/null +++ b/binutils/testsuite/binutils-all/zero-sec.s @@ -0,0 +1 @@ + .data |