aboutsummaryrefslogtreecommitdiff
path: root/binutils/testsuite
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2020-04-29 16:01:40 +0100
committerNick Clifton <nickc@redhat.com>2020-04-29 16:01:40 +0100
commit1b513401599fc5c35a3a8ad0321e0b00a0bdb0f8 (patch)
tree60828bb944219b8162057ef6b1a843982045cce5 /binutils/testsuite
parentfc49bc72378b4402ca60baa5ff65f1392c92c279 (diff)
downloadgdb-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.exp11
-rw-r--r--binutils/testsuite/binutils-all/zero-sec.r3
-rw-r--r--binutils/testsuite/binutils-all/zero-sec.s1
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