From 06ef44fd1a914bcea8a0a2e281c9163c4e0be993 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Nov 21 2018 15:37:14 +0000 Subject: 3.14.0-3 - Add valgrind-3.14.0-s390z-more-z13-fixes.patch. --- diff --git a/valgrind-3.14.0-s390z-more-z13-fixes.patch b/valgrind-3.14.0-s390z-more-z13-fixes.patch new file mode 100644 index 0000000..82441b9 --- /dev/null +++ b/valgrind-3.14.0-s390z-more-z13-fixes.patch @@ -0,0 +1,51 @@ +From d10cd86ee32bf76495f79c02df62fc242adbcbe3 Mon Sep 17 00:00:00 2001 +From: Andreas Arnez +Date: Thu, 26 Jul 2018 16:35:24 +0200 +Subject: [PATCH] s390x: More fixes for z13 support + +This patch addresses the following: + +* Fix the implementation of LOCGHI. Previously Valgrind performed 32-bit + sign extension instead of 64-bit sign extension on the immediate value. + +* Advertise VXRS in HWCAP. If no VXRS are advertised, but the program + uses vector registers, this could cause problems with a glibc built with + "-march=z13". +--- + VEX/priv/guest_s390_toIR.c | 2 +- + coregrind/m_initimg/initimg-linux.c | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/VEX/priv/guest_s390_toIR.c b/VEX/priv/guest_s390_toIR.c +index 9c4d79b87..50a5a4177 100644 +--- a/VEX/priv/guest_s390_toIR.c ++++ b/VEX/priv/guest_s390_toIR.c +@@ -16325,7 +16325,7 @@ static const HChar * + s390_irgen_LOCGHI(UChar r1, UChar m3, UShort i2, UChar unused) + { + next_insn_if(binop(Iop_CmpEQ32, s390_call_calculate_cond(m3), mkU32(0))); +- put_gpr_dw0(r1, mkU64((UInt)(Int)(Short)i2)); ++ put_gpr_dw0(r1, mkU64((ULong)(Long)(Short)i2)); + + return "locghi"; + } +diff --git a/coregrind/m_initimg/initimg-linux.c b/coregrind/m_initimg/initimg-linux.c +index 61cc458bc..8a7f0d024 100644 +--- a/coregrind/m_initimg/initimg-linux.c ++++ b/coregrind/m_initimg/initimg-linux.c +@@ -699,9 +699,9 @@ Addr setup_client_stack( void* init_sp, + } + # elif defined(VGP_s390x_linux) + { +- /* Advertise hardware features "below" TE only. TE and VXRS +- (and anything above) are not supported by Valgrind. */ +- auxv->u.a_val &= VKI_HWCAP_S390_TE - 1; ++ /* Advertise hardware features "below" TE and VXRS. TE itself ++ and anything above VXRS is not supported by Valgrind. */ ++ auxv->u.a_val &= (VKI_HWCAP_S390_TE - 1) | VKI_HWCAP_S390_VXRS; + } + # elif defined(VGP_arm64_linux) + { +-- +2.17.0 + diff --git a/valgrind.spec b/valgrind.spec index e543e47..30013ba 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -3,7 +3,7 @@ Summary: Tool for finding memory management bugs in programs Name: %{?scl_prefix}valgrind Version: 3.14.0 -Release: 2%{?dist} +Release: 3%{?dist} Epoch: 1 License: GPLv2+ URL: http://www.valgrind.org/ @@ -116,6 +116,9 @@ Patch6: valgrind-3.14.0-s390x-vec-reg-vgdb.patch Patch7: valgrind-3.14.0-s390x-vec-float-point-code.patch Patch8: valgrind-3.14.0-s390x-vec-float-point-tests.patch +# KDE#401277 More bugs in z13 support +Patch9: valgrind-3.14.0-s390z-more-z13-fixes.patch + %if %{build_multilib} # Ensure glibc{,-devel} is installed for both multilib arches BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so @@ -256,6 +259,7 @@ Valgrind User Manual for details. %patch6 -p1 %patch7 -p1 %patch8 -p1 +%patch9 -p1 %build CC=gcc @@ -490,6 +494,9 @@ fi %endif %changelog +* Wed Nov 21 2018 Mark Wielaard - 3.14.0-3 +- Add valgrind-3.14.0-s390z-more-z13-fixes.patch. + * Tue Nov 20 2018 Mark Wielaard - 3.14.0-2 - Add valgrind-3.14.0-s390x-fix-reg-alloc-vr-vs-fpr.patch. - Add valgrind-3.14.0-s390x-sign-extend-lochi.patch.