Message ID | m3o9lr0zu7.fsf@oc1027705133.ibm.com |
---|---|
State | New |
Headers | show |
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
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 210c078..c3fc9c3 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -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 diff --git a/gdb/testsuite/gdb.arch/s390-tdbregs.exp b/gdb/testsuite/gdb.arch/s390-tdbregs.exp index 53d6c50..47d9d38 100644 --- a/gdb/testsuite/gdb.arch/s390-tdbregs.exp +++ b/gdb/testsuite/gdb.arch/s390-tdbregs.exp @@ -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 }