diff mbox

Several regressions and we branch soon.

Message ID 87a8vnzmzy.fsf@br87z6lw.de.ibm.com
State New
Headers show

Commit Message

Andreas Arnez June 25, 2015, 6 p.m. UTC
On Thu, Jun 25 2015, Doug Evans wrote:

> On Thu, Jun 25, 2015 at 3:21 AM, Andreas Arnez <arnez@linux.vnet.ibm.com> wrote:
>> On Wed, Jun 24 2015, Yao Qi wrote:
>>
>>> Doug Evans <dje@google.com> writes:
>>>
>>>> FAIL: gdb.base/gnu_vector.exp: call add_singlevecs
>>>
>>> I see this fail too,
>>> print add_singlevecs((char1) {6}, (int1) {12}, (double1) {24})^M
>>> ^M
>>> Program received signal SIGSEGV, Segmentation fault.^M
>>> 0x00000000004008ec in add_singlevecs (a=..., b=..., c=...) at ../../../../../binutils-gdb/gdb/testsuite/gdb.base/gnu_vector.c:132^M
>>> 132       return (double1) {a[0] + b[0] + c[0]};^M
>>> The program being debugged was signaled while in a function called from GDB.^M
>>> GDB remains in the frame where the signal was received.^M
>>> To change this behavior use "set unwindonsignal on".^M
>>> Evaluation of the expression containing the function^M
>>> (add_singlevecs) will be abandoned.^M
>>> When the function is done executing, GDB will silently stop.^M
>>> (gdb) FAIL: gdb.base/gnu_vector.exp: call add_singlevecs
>>
>> This is not a regression in GDB, but a new test uncovering GDB's missing
>> vector ABI support on x86_64.  So for the branch I suggest to suppress
>> these new FAILs with gnu_vector.exp -- either in the test case or in the
>> test harness.
>
> Any reason to not mark them as K/XFAILs in the master branch?
> We should avoid adding new tests the we know are going to FAIL (*1).
> And indeed I see discussion in the submission about that.
> https://sourceware.org/ml/gdb-patches/2015-05/msg00319.html
> So we're good there.

Right, this was considered in the patch.  But only what I've actually
seen fail in my testing is marked as KFAIL.  Since more FAILs are
observed now, maybe we could mark them as KFAIL as well.  Or skip them
altogether, like in the patch below.  WDYT?

> The question remains though: why are these failing?

Good question.  Apparently there are various problems with inferior
function calls on x86_64 when vector arguments and/or vector return
values are involved.  I haven't analyzed this, and I'd rather leave that
to the x86_64 maintainers.


-- >8 --
Subject: [PATCH] gnu_vector.exp: Skip tests known to crash inferior on x86(_64)
From: Andreas Arnez <arnez@linux.vnet.ibm.com>

Comments

Yao Qi June 30, 2015, 3:20 p.m. UTC | #1
Andreas Arnez <arnez@linux.vnet.ibm.com> writes:

> Right, this was considered in the patch.  But only what I've actually
> seen fail in my testing is marked as KFAIL.  Since more FAILs are
> observed now, maybe we could mark them as KFAIL as well.  Or skip them
> altogether, like in the patch below.  WDYT?

I am inclined to skip them altogether, but I think we need skip more.
With your patch applied,  I still see them in gdb.sum

 KFAIL: gdb.base/gnu_vector.exp: call add_some_intvecs (PRMS: gdb/18537)
 KPASS: gdb.base/gnu_vector.exp: call add_many_charvecs (PRMS gdb/18537)
 KFAIL: gdb.base/gnu_vector.exp: call add_various_floatvecs (PRMS: gdb/18537)
 KFAIL: gdb.base/gnu_vector.exp: call add_structvecs (PRMS: gdb/18537)
 KFAIL: gdb.base/gnu_vector.exp: skip remaining vector ABI tests on this arch (PRMS: gdb/18537)

KPASS is confusing here.  I'd like to skip all of them on x86 and emit
UNSUPPORTED in gdb.sum, because we've already know that vector infcall
doesn't support on x86, UNSUPPORTED is better than KFAIL, IMO.
diff mbox

Patch

diff --git a/gdb/testsuite/gdb.base/gnu_vector.exp b/gdb/testsuite/gdb.base/gnu_vector.exp
index cf91fbb..885e2f2 100644
--- a/gdb/testsuite/gdb.base/gnu_vector.exp
+++ b/gdb/testsuite/gdb.base/gnu_vector.exp
@@ -189,13 +189,18 @@  gdb_test "print add_various_floatvecs(2, f4a, f4b)" "= \\{3, 6, 16, 20\\}" \
 setup_kfail gdb/18537 "i?86-*-*" "x86_64-*-*"
 gdb_test "print add_structvecs(i2, (struct just_int2)\{2*i2\}, (struct two_int2)\{3*i2, 4*i2\})" \
     "= \\{i = \\{10, 20\\}\\}" "call add_structvecs"
+if { [istarget "i?86-*-*"] || [istarget "x86_64-*-*" ] } {
+    # The next test has been seen to crash the inferior on x86_64, so
+    # just stop here.
+    kfail gdb/18537 "skip remaining vector ABI tests on this arch"
+    return
+}
 gdb_test "print add_singlevecs((char1) \{6\}, (int1) \{12\}, (double1) \{24\})" "= \\{42\\}" \
     "call add_singlevecs"
 
 # Test vector return value handling with "finish" and "return".
 gdb_breakpoint "add_some_intvecs"
 gdb_continue "add_some_intvecs"
-setup_kfail gdb/18537 "i?86-*-*" "x86_64-*-*"
 gdb_test "finish" "Value returned is .* = \\{10, 20, 48, 72\\}" \
     "finish shows vector return value"
 gdb_continue "add_some_intvecs"
@@ -203,5 +208,4 @@  gdb_test "return (int4) \{4, 2, 7, 6\}" \
     "#0 .* main .*" \
     "set vector return value" \
     "Make add_some_intvecs return now. .y or n.*" "y"
-setup_kfail gdb/18537 "i?86-*-*" "x86_64-*-*"
 gdb_test "continue" "4 2 7 6\r\n.*" "verify vector return value"