aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2019-08-16 23:48:28 +0200
committerTom de Vries <tdevries@suse.de>2019-08-16 23:48:28 +0200
commit34dafe9f39e61de970c36ed636daa58e1caa386c (patch)
tree80d6af5acdb943692cfc34bc98c10eb3618d0492 /gdb
parent81e8046dc0daaf56fb10b11931fc77600a4b5920 (diff)
downloadgdb-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/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.base/compare-sections.exp11
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