qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: branch-relative-long fails on s390x host (was: [PATCH] tests/tcg/s39


From: Thomas Huth
Subject: Re: branch-relative-long fails on s390x host (was: [PATCH] tests/tcg/s390x: Use a different PCRel32 notation in branch-relative-long.c)
Date: Wed, 4 May 2022 12:46:58 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0

On 04/05/2022 11.37, Ilya Leoshkevich wrote:
On Wed, 2022-05-04 at 11:14 +0200, Thomas Huth wrote:
On 04/05/2022 11.07, Ilya Leoshkevich wrote:
On Wed, 2022-05-04 at 09:01 +0200, Thomas Huth wrote:
On 04/05/2022 00.46, Ilya Leoshkevich wrote:
On Tue, 2022-05-03 at 21:26 +0200, Thomas Huth wrote:
On 03/05/2022 11.02, Thomas Huth wrote:
On 02/05/2022 18.48, Ilya Leoshkevich wrote:
Binutils >=2.37 and Clang do not accept (. - 0x100000000)
PCRel32
constants. While this looks like a bug that needs fixing,
use
a
different notation (-0x100000000) as a workaround.

Reported-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
     tests/tcg/s390x/branch-relative-long.c | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/tcg/s390x/branch-relative-long.c
b/tests/tcg/s390x/branch-relative-long.c
index 94219afcad..8ce9f1c2e5 100644
--- a/tests/tcg/s390x/branch-relative-long.c
+++ b/tests/tcg/s390x/branch-relative-long.c
@@ -13,8 +13,8 @@
             #_name "_end:\n");
     DEFINE_ASM(br_r14, "br %r14");
-DEFINE_ASM(brasl_r0, "brasl %r0,.-0x100000000");
-DEFINE_ASM(brcl_0xf, "brcl 0xf,.-0x100000000");
+DEFINE_ASM(brasl_r0, "brasl %r0,-0x100000000");
+DEFINE_ASM(brcl_0xf, "brcl 0xf,-0x100000000");

Works for me, thanks!

Sorry, I spoke too soon - it compiles fine, and also runs
fine
when I
run it
natively, but when I run it through "qemu-s390x", it
crashes...
does
that
work for you?

Hi, yes, I just double-checked - it works fine for me.
Could you please share the resulting test binary?


Sure, here it is:

https://people.redhat.com/~thuth/data/branch-relative-long

    Thomas

Your binary worked fine for me.

QEMU commit 2e3408b3cc7de4e87a9adafc8c19bfce3abec947,
x86_64 host,

Oh, well, now that you've mentioned it: I was running "make check-
tcg" on a
s390x host. It works fine on a x86, indeed. So the new problem is
likely in
the s390x TCG host backend... Richard, could you maybe have a look?

   Thomas

It worked fine on a s390x host for me as well.

Weird ... Did you compile qemu-s390x itself with Clang or with GCC? I just discovered that the crash also only happens if I compile qemu-s390x with Clang - there is no crash when I compile it with GCC.

Can this be related to the large mmap() that the test performs?

It works when I compile the test with GCC instead of Clang - so I assume that the problem is somewhere else...

 Thomas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]