Fix random false FAILs on i386.
authorJan Kratochvil <jan.kratochvil@redhat.com>
Mon, 24 Mar 2008 15:16:12 +0000 (15:16 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Mon, 24 Mar 2008 15:16:12 +0000 (15:16 +0000)
* gdb.base/prelink.exp: Use `--no-exec-shield' for prelink.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/prelink.exp

index 669384e98c30da6da78200a57a90e1edb687aec0..e35373305f333279bd8ffa66d86fbb4896b763e8 100644 (file)
@@ -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
index abdf927e9a7d1212758ab7cb6ec5678661f3153c..4f6779fea62600c42aae754d52df528cfb45d935 100644 (file)
@@ -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