diff options
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/prelink.exp | 12 |
2 files changed, 15 insertions, 2 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 669384e..e353733 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-03-24 Jan Kratochvil <jan.kratochvil@redhat.com> + + Fix random false FAILs on i386. + * gdb.base/prelink.exp: Use `--no-exec-shield' for prelink. + 2008-03-23 Daniel Jacobowitz <dan@codesourcery.com> PR gdb/544 diff --git a/gdb/testsuite/gdb.base/prelink.exp b/gdb/testsuite/gdb.base/prelink.exp index abdf927..4f6779f 100644 --- a/gdb/testsuite/gdb.base/prelink.exp +++ b/gdb/testsuite/gdb.base/prelink.exp @@ -47,7 +47,15 @@ if { [gdb_compile "${srcdir}/${subdir}/${libsrcfile}" "${libfile}" executable [l return -1 } -if {[catch "system \"prelink -qNR ${libfile}\""] != 0} { +# `--no-exec-shield' is for i386 where prelink in the exec-shield mode is +# forced to push all the libraries tight together to fit into the first two +# memory areas (either the ASCII Shield area or at least below the executable). +# In this case its -R option cannot be applied and we falsely FAIL here as if +# the system is already prelinked prelink has no choice how to randomize the +# single new unprelinked library address without wasting the first one/two +# memory areas. We do not care of the efficiency of loading such resulting +# exec-shield unfriendly prelinked library. +if {[catch "system \"prelink -qNR --no-exec-shield ${libfile}\""] != 0} { # Maybe we don't have prelink. return -1 } @@ -92,7 +100,7 @@ if {[catch "system \"prelink -uN ${libfile}\""] != 0} { untested "${testfile}.so was not prelinked, maybe system libraries are not prelinked?" return 0 } -catch "system \"prelink -qNR ${libfile}\"" +catch "system \"prelink -qNR --no-exec-shield ${libfile}\"" # Start with a fresh gdb |