diff --git a/valgrind-3.16.1-ppc64-scv-hwcap.patch b/valgrind-3.16.1-ppc64-scv-hwcap.patch new file mode 100644 index 0000000..ef88bef --- /dev/null +++ b/valgrind-3.16.1-ppc64-scv-hwcap.patch @@ -0,0 +1,57 @@ +From a88c168b4dd607bca47d3a1ec08573d3e5fa889b Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 8 Jan 2021 15:08:50 +0100 +Subject: [PATCH] ppc64: Mask unrecognized AT_HWCAP2 values + +Also suppress printing a log message for scv instructions in the +instruction stream. + +These changes are required for running glibc 2.33 on kernels with scv +support under valgrind. +--- + VEX/priv/guest_ppc_toIR.c | 5 +++-- + coregrind/m_initimg/initimg-linux.c | 6 ++++++ + 2 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c +index e7b576fa2..99e96a577 100644 +--- a/VEX/priv/guest_ppc_toIR.c ++++ b/VEX/priv/guest_ppc_toIR.c +@@ -8739,8 +8739,9 @@ + { + IRType ty = mode64 ? Ity_I64 : Ity_I32; + +- if (theInstr != 0x44000002) { +- vex_printf("dis_syslink(ppc)(theInstr)\n"); ++ if (theInstr != 0x44000002) { // sc ++ if (theInstr != 0x44000001) // scv ++ vex_printf("dis_syslink(ppc)(theInstr)\n"); + return False; + } + +diff --git a/coregrind/m_initimg/initimg-linux.c b/coregrind/m_initimg/initimg-linux.c +index ba84fa6e9..fb68ae00b 100644 +--- a/coregrind/m_initimg/initimg-linux.c ++++ b/coregrind/m_initimg/initimg-linux.c +@@ -750,6 +750,7 @@ Addr setup_client_stack( void* init_sp, + PPC_FEATURE2_HAS_ISEL 0x08000000 + PPC_FEATURE2_HAS_TAR 0x04000000 + PPC_FEATURE2_HAS_VCRYPTO 0x02000000 ++ PPC_FEATURE2_HAS_IEEE128 0x00400000 + */ + auxv_2_07 = (auxv->u.a_val & 0x80000000ULL) == 0x80000000ULL; + hw_caps_2_07 = (vex_archinfo->hwcaps & VEX_HWCAPS_PPC64_ISA2_07) +@@ -757,6 +757,11 @@ + * matches the setting in VEX HWCAPS. + */ + vg_assert(auxv_2_07 == hw_caps_2_07); ++ ++ /* Mask unrecognized HWCAP bits. Only keep the bits that have ++ * been mentioned above. ++ */ ++ auxv->u.a_val &= 0xfec00000ULL; + } + + break; +--- valgrind-3.16.1/VEX/priv/guest_ppc_toIR.c 2021-01-08 16:43:45.947122866 +0100 ++++ guest_ppc_toIR.c.new 2021-01-08 16:43:40.238166866 +0100 diff --git a/valgrind.spec b/valgrind.spec index 50ffe12..20ed94f 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.16.1 -Release: 12%{?dist} +Release: 13%{?dist} Epoch: 1 License: GPLv2+ URL: http://www.valgrind.org/ @@ -137,6 +137,9 @@ Patch19: valgrind-3.16.1-ficlone.patch # upstream git commit 359b98828 Patch20: valgrind-3.16.1-arm64-expensive-cmp.patch +# KDE#431157 PPC_FEATURE2_SCV needs to be masked in AT_HWCAP2 +Patch21: valgrind-3.16.1-ppc64-scv-hwcap.patch + BuildRequires: glibc-devel %if %{build_openmpi} @@ -285,6 +288,7 @@ Valgrind User Manual for details. %patch18 -p1 %patch19 -p1 %patch20 -p1 +%patch21 -p1 %build # LTO triggers undefined symbols in valgrind. Valgrind has a --enable-lto @@ -509,6 +513,9 @@ fi %endif %changelog +* Fri Jan 8 2021 Mark Wielaard - 3.16.1-13 +- Add valgrind-3.16.1-ppc64-scv-hwcap.patch + * Sun Dec 20 2020 Mark Wielaard - 3.16.1-12 - Add valgrind-3.16.1-ficlone.patch - Add valgrind-3.16.1-arm64-expensive-cmp.patch