[pushed] S390: Use soft float in s390-tdbregs test case
Commit Message
The GDB test case s390-tdbregs.exp verifies GDB's handling of the
"transaction diagnostic block". For simplicity, the test case uses the
"transaction begin" (TBEGIN) instruction with the "allow floating-point
operation" flag set to zero. But some GCC versions may indeed emit
floating point or vector instructions for this test case. If this happens
in the transaction, it aborts, and an endless loop results.
This change tells the compiler to produce a soft-float binary, so no
floating-point or vector registers are touched.
gdb/testsuite/ChangeLog:
* gdb.arch/s390-tdbregs.exp: Add the compile option -msoft-float.
---
gdb/testsuite/ChangeLog | 4 ++++
gdb/testsuite/gdb.arch/s390-tdbregs.exp | 5 ++++-
2 files changed, 8 insertions(+), 1 deletion(-)
Comments
On 01/18/2018 06:46 PM, Andreas Arnez wrote:
> The GDB test case s390-tdbregs.exp verifies GDB's handling of the
> "transaction diagnostic block". For simplicity, the test case uses the
> "transaction begin" (TBEGIN) instruction with the "allow floating-point
> operation" flag set to zero. But some GCC versions may indeed emit
> floating point or vector instructions for this test case. If this happens
> in the transaction, it aborts, and an endless loop results.
>
> This change tells the compiler to produce a soft-float binary, so no
> floating-point or vector registers are touched.
I found the rationale above quite instructive. How about
putting it in the exp file directly?
>
> -if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
> +# Use soft float, so the compiler doesn't use floating-point or vector
> +# instructions.
> +if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
> + [list "debug" "additional_flags=-msoft-float"]] } {
> return -1
I mean, the comment here alone as is doesn't explain why we'd rather
the compiler not use float-point/vector insns, which I think is a
question people reading the testcase will tend to ask themselves,
and the answer isn't obvious. At least to me.
Thanks,
Pedro Alves
@@ -1,3 +1,7 @@
+2018-01-18 Andreas Arnez <arnez@linux.vnet.ibm.com>
+
+ * gdb.arch/s390-tdbregs.exp: Add the compile option -msoft-float.
+
2018-01-17 Mike Gulick <mgulick@mathworks.com>
PR gdb/16577
@@ -26,7 +26,10 @@ if { ![istarget s390-*-*] && ![istarget s390x-*-* ] } {
standard_testfile .c
-if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
+# Use soft float, so the compiler doesn't use floating-point or vector
+# instructions.
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
+ [list "debug" "additional_flags=-msoft-float"]] } {
return -1
}