This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH][gdb/testsuite] Fix compare-sections.exp with -fPIE/-pie
- From: Tom de Vries <tdevries at suse dot de>
- To: gdb-patches at sourceware dot org
- Date: Wed, 14 Aug 2019 17:14:07 +0200
- Subject: [PATCH][gdb/testsuite] Fix compare-sections.exp with -fPIE/-pie
Hi,
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.
OK for trunk?
Thanks,
- Tom
[gdb/testsuite] Fix compare-sections.exp with -fPIE/-pie
gdb/testsuite/ChangeLog:
2019-08-14 Tom de Vries <tdevries@suse.de>
* gdb.base/compare-sections.exp ("after run to main"): Allow
mismatched read-only sections for PIE executables.
---
gdb/testsuite/gdb.base/compare-sections.exp | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/gdb/testsuite/gdb.base/compare-sections.exp b/gdb/testsuite/gdb.base/compare-sections.exp
index 7dbae5b2c2..75667ee25c 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