90 lines
2.9 KiB
Diff
90 lines
2.9 KiB
Diff
|
http://sourceware.org/ml/gdb-cvs/2010-10/msg00065.html
|
||
|
|
||
|
### src/gdb/testsuite/ChangeLog 2010/10/08 18:28:46 1.2471
|
||
|
### src/gdb/testsuite/ChangeLog 2010/10/11 08:45:11 1.2472
|
||
|
## -1,3 +1,10 @@
|
||
|
+2010-10-11 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||
|
+
|
||
|
+ Fix results of prelinked PIEs on ppc*.
|
||
|
+ * gdb.base/break-interp.exp (reach, test_core, test_attach_gdb):
|
||
|
+ Accept also DISPLACEMENT "PRESENT".
|
||
|
+ (main): Replace "ZERO" displacements by "PRESENT".
|
||
|
+
|
||
|
2010-10-08 Sami Wagiaalla <swagiaal@redhat.com>
|
||
|
|
||
|
* gdb.cp/oranking.exp: New test.
|
||
|
--- src/gdb/testsuite/gdb.base/break-interp.exp 2010/09/10 20:29:25 1.20
|
||
|
+++ src/gdb/testsuite/gdb.base/break-interp.exp 2010/10/11 08:45:12 1.21
|
||
|
@@ -109,7 +109,9 @@
|
||
|
}
|
||
|
|
||
|
# `runto' does not check we stopped really at the function we specified.
|
||
|
-# DISPLACEMENT can be "NONE", "ZERO" or "NONZERO"
|
||
|
+# DISPLACEMENT can be "NONE" for no message to be present, "ZERO" for
|
||
|
+# displacement of 0 bytes to be present, "NONZERO" for displacement of non-0
|
||
|
+# bytes to be present and "PRESENT" if both "ZERO" and "NONZERO" are valid.
|
||
|
proc reach {func command displacement} {
|
||
|
global gdb_prompt expect_out
|
||
|
|
||
|
@@ -128,7 +130,7 @@
|
||
|
} else {
|
||
|
set case "NONZERO"
|
||
|
}
|
||
|
- if {$displacement == $case} {
|
||
|
+ if {$displacement == $case || $displacement == "PRESENT"} {
|
||
|
pass $test_displacement
|
||
|
set displacement "FOUND-$displacement"
|
||
|
} else {
|
||
|
@@ -184,7 +186,7 @@
|
||
|
} else {
|
||
|
set case "NONZERO"
|
||
|
}
|
||
|
- if {$displacement == $case} {
|
||
|
+ if {$displacement == $case || $displacement == "PRESENT"} {
|
||
|
pass $test_displacement
|
||
|
set displacement "FOUND-$displacement"
|
||
|
} else {
|
||
|
@@ -241,7 +243,7 @@
|
||
|
} else {
|
||
|
set case "NONZERO"
|
||
|
}
|
||
|
- if {$displacement == $case} {
|
||
|
+ if {$displacement == $case || $displacement == "PRESENT"} {
|
||
|
pass $test_displacement
|
||
|
set displacement "FOUND-$displacement"
|
||
|
} else {
|
||
|
@@ -428,7 +430,7 @@
|
||
|
} else {
|
||
|
set case "NONZERO"
|
||
|
}
|
||
|
- if {$displacement == $case} {
|
||
|
+ if {$displacement == $case || $displacement == "PRESENT"} {
|
||
|
pass $test_displacement
|
||
|
set displacement "FOUND-$displacement"
|
||
|
} else {
|
||
|
@@ -533,7 +535,10 @@
|
||
|
if {$ldprelink == "NO"} {
|
||
|
set displacement "NONZERO"
|
||
|
} else {
|
||
|
- set displacement "ZERO"
|
||
|
+ # x86* kernel loads prelinked PIE binary at its prelinked address
|
||
|
+ # but ppc* kernel loads it at a random address. prelink normally
|
||
|
+ # skips PIE binaries during the system scan.
|
||
|
+ set displacement "PRESENT"
|
||
|
}
|
||
|
test_ld $interp 0 [expr {$ldsepdebug == "NO"}] $displacement
|
||
|
|
||
|
@@ -582,7 +587,11 @@
|
||
|
} elseif {$binprelink == "NO"} {
|
||
|
set displacement "NONZERO"
|
||
|
} else {
|
||
|
- set displacement "ZERO"
|
||
|
+ # x86* kernel loads prelinked PIE binary at its
|
||
|
+ # prelinked address but ppc* kernel loads it at
|
||
|
+ # a random address. prelink normally skips PIE
|
||
|
+ # binaries during the system scan.
|
||
|
+ set displacement "PRESENT"
|
||
|
}
|
||
|
|
||
|
if {[prelink$binprelink $relink_args [file tail $exec]]
|