diff options
author | Tom de Vries <tdevries@suse.de> | 2019-08-16 23:48:28 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2019-08-16 23:48:28 +0200 |
commit | 34dafe9f39e61de970c36ed636daa58e1caa386c (patch) | |
tree | 80d6af5acdb943692cfc34bc98c10eb3618d0492 /gdb | |
parent | 81e8046dc0daaf56fb10b11931fc77600a4b5920 (diff) | |
download | gdb-34dafe9f39e61de970c36ed636daa58e1caa386c.zip gdb-34dafe9f39e61de970c36ed636daa58e1caa386c.tar.gz gdb-34dafe9f39e61de970c36ed636daa58e1caa386c.tar.bz2 |
[gdb/testsuite] Fix compare-sections.exp with -fPIE/-pie
When running gdb.base/compare-sections.exp with target board -fPIE/-pie, we
get:
...
FAIL: gdb.base/compare-sections.exp: after run to main: compare-sections -r
...
The test expects the read-only sections to have the same contents as in the
file:
...
# Assume startup code doesn't change read-only sections.
compare_sections "-r"
...
but that's not the case for PIE executables.
Fix this by allowing mismatched read-only sections for PIE executables.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-08-16 Tom de Vries <tdevries@suse.de>
* gdb.base/compare-sections.exp ("after run to main"): Allow
mismatched read-only sections for PIE executables.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/compare-sections.exp | 11 |
2 files changed, 14 insertions, 2 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index b3c815f..edf7d17 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-08-16 Tom de Vries <tdevries@suse.de> + + * gdb.base/compare-sections.exp ("after run to main"): Allow + mismatched read-only sections for PIE executables. + 2019-08-16 Tom Tromey <tom@tromey.com> * lib/tuiterm.exp (_csi_Z): New proc. diff --git a/gdb/testsuite/gdb.base/compare-sections.exp b/gdb/testsuite/gdb.base/compare-sections.exp index 7dbae5b..75667ee 100644 --- a/gdb/testsuite/gdb.base/compare-sections.exp +++ b/gdb/testsuite/gdb.base/compare-sections.exp @@ -21,6 +21,8 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug}]} { return -1 } +set is_pie [exec_is_pie $binfile] + # Run the compare-sections command along with any options as specified # by OPTIONS, and check that no mismatch is found. proc compare_sections { {options ""} } { @@ -87,8 +89,13 @@ with_test_prefix "after run to main" { gdb_test "compare-sections" \ "MIS-MATCHED.*warning.*One or more sections.*does not match.*loaded file" - # Assume startup code doesn't change read-only sections. - compare_sections "-r" + if { $is_pie == 1 } { + gdb_test "compare-sections -r" \ + "MIS-MATCHED.*warning.*One or more sections.*does not match.*loaded file" + } else { + # Assume startup code doesn't change read-only sections. + compare_sections "-r" + } } # Now test that "compare-sections -r" works as expected. Look for an |