3.21.0-7 - Add valgrind-3.21.0-pgste.patch
Resolves: #2208819 [RHEL9.3][valgrind][s390x] valgrind cannot work as expected on qemu-kvm
This commit is contained in:
parent
ac7e769f87
commit
b49ceb2e0d
73
valgrind-3.21.0-pgste.patch
Normal file
73
valgrind-3.21.0-pgste.patch
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
From 56f1bd12c92806fd18337ba4cd3c0a8d714d0e94 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andreas Arnez <arnez@linux.ibm.com>
|
||||||
|
Date: Thu, 15 Jun 2023 17:24:53 +0200
|
||||||
|
Subject: [PATCH] Bug 470978 - s390x: Link the tools with -Wl,--s390-pgste
|
||||||
|
|
||||||
|
Programs that require the PGSTE mode to be enabled may currently fail
|
||||||
|
under Valgrind. In particular this affects qemu-kvm.
|
||||||
|
|
||||||
|
While it is also possible to enable the PGSTE mode globally with
|
||||||
|
|
||||||
|
sysctl vm.allocate_psgte=1
|
||||||
|
|
||||||
|
the problem can more easily be prevented by linking the Valgrind tools
|
||||||
|
with -Wl,--s390-pgste. Add a configure check if the linker supports this,
|
||||||
|
and activate the flag if it does.
|
||||||
|
|
||||||
|
To verify the intended result, the following shell command can be used to
|
||||||
|
list the executables having this flag set:
|
||||||
|
|
||||||
|
find . -type f -perm -u+x -execdir \
|
||||||
|
/bin/sh -c 'readelf -lW $0 2>/dev/null | grep PGSTE' {} \; -print
|
||||||
|
---
|
||||||
|
Makefile.tool.am | 2 +-
|
||||||
|
configure.ac | 20 ++++++++++++++++++++
|
||||||
|
2 files changed, 21 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile.tool.am b/Makefile.tool.am
|
||||||
|
index df9502913..4ce6d5ab0 100644
|
||||||
|
--- a/Makefile.tool.am
|
||||||
|
+++ b/Makefile.tool.am
|
||||||
|
@@ -78,7 +78,7 @@ TOOL_LDFLAGS_ARM64_LINUX = \
|
||||||
|
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
|
||||||
|
|
||||||
|
TOOL_LDFLAGS_S390X_LINUX = \
|
||||||
|
- $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
|
||||||
|
+ $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@ @FLAG_S390_PGSTE@
|
||||||
|
|
||||||
|
TOOL_LDFLAGS_X86_DARWIN = \
|
||||||
|
$(TOOL_LDFLAGS_COMMON_DARWIN) -arch i386
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 0cf84a1c0..1d4164a7d 100755
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -3096,6 +3096,26 @@ AC_SUBST([FLAG_NO_BUILD_ID], [""])
|
||||||
|
fi
|
||||||
|
CFLAGS=$safe_CFLAGS
|
||||||
|
|
||||||
|
+# On s390x, if the linker supports -Wl,--s390-pgste, then we build the
|
||||||
|
+# tools with that flag. This enables running programs that need it, such
|
||||||
|
+# as qemu-kvm.
|
||||||
|
+if test x$VGCONF_PLATFORM_PRI_CAPS = xS390X_LINUX; then
|
||||||
|
+AC_MSG_CHECKING([if the linker accepts -Wl,--s390-pgste])
|
||||||
|
+safe_CFLAGS=$CFLAGS
|
||||||
|
+CFLAGS="-Wl,--s390-pgste"
|
||||||
|
+
|
||||||
|
+AC_LINK_IFELSE(
|
||||||
|
+[AC_LANG_PROGRAM([ ], [return 0;])],
|
||||||
|
+[
|
||||||
|
+ AC_SUBST([FLAG_S390_PGSTE], ["-Wl,--s390-pgste"])
|
||||||
|
+ AC_MSG_RESULT([yes])
|
||||||
|
+], [
|
||||||
|
+ AC_SUBST([FLAG_S390_PGSTE], [""])
|
||||||
|
+ AC_MSG_RESULT([no])
|
||||||
|
+])
|
||||||
|
+CFLAGS=$safe_CFLAGS
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
# does the ppc assembler support "mtocrf" et al?
|
||||||
|
AC_MSG_CHECKING([if ppc32/64 as supports mtocrf/mfocrf])
|
||||||
|
|
||||||
|
--
|
||||||
|
2.40.1
|
||||||
|
|
@ -3,7 +3,7 @@
|
|||||||
Summary: Dynamic analysis tools to detect memory or thread bugs and profile
|
Summary: Dynamic analysis tools to detect memory or thread bugs and profile
|
||||||
Name: %{?scl_prefix}valgrind
|
Name: %{?scl_prefix}valgrind
|
||||||
Version: 3.21.0
|
Version: 3.21.0
|
||||||
Release: 3%{?dist}
|
Release: 7%{?dist}
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
URL: https://www.valgrind.org/
|
URL: https://www.valgrind.org/
|
||||||
@ -104,6 +104,10 @@ Patch9: valgrind-3.21.0-realloc-again.patch
|
|||||||
Patch10: valgrind-3.21.0-vgm.patch
|
Patch10: valgrind-3.21.0-vgm.patch
|
||||||
Patch11: valgrind-3.21.0-vgm-tests.patch
|
Patch11: valgrind-3.21.0-vgm-tests.patch
|
||||||
|
|
||||||
|
# s390x: Valgrind cannot start qemu-kvm when "sysctl vm.allocate_pgste=0"
|
||||||
|
# https://bugs.kde.org/show_bug.cgi?id=470978
|
||||||
|
Patch12: valgrind-3.21.0-pgste.patch
|
||||||
|
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
BuildRequires: glibc-devel
|
BuildRequires: glibc-devel
|
||||||
|
|
||||||
@ -248,6 +252,7 @@ Valgrind User Manual for details.
|
|||||||
%patch9 -p1
|
%patch9 -p1
|
||||||
%patch10 -p1
|
%patch10 -p1
|
||||||
%patch11 -p1
|
%patch11 -p1
|
||||||
|
%patch12 -p1
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -481,11 +486,12 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Fri Jun 23 2023 Mark Wielaard <mjw@redhat.com>
|
* Fri Jun 23 2023 Mark Wielaard <mjw@redhat.com> - 3.21.0-7
|
||||||
- Add valgrind-3.21.0-callgrind_control-no-strict.patch
|
- Add valgrind-3.21.0-callgrind_control-no-strict.patch
|
||||||
- Add valgrind-3.21.0-realloc-again.patch
|
- Add valgrind-3.21.0-realloc-again.patch
|
||||||
- Update valgrind-3.21.0-no-memcpy-replace-check.patch (memcpy_chk)
|
- Update valgrind-3.21.0-no-memcpy-replace-check.patch (memcpy_chk)
|
||||||
- Add valgrind-3.21.0-vgm.patch and valgrind-3.21.0-vgm-tests.patch
|
- Add valgrind-3.21.0-vgm.patch and valgrind-3.21.0-vgm-tests.patch
|
||||||
|
- Add valgrind-3.21.0-pgste.patch
|
||||||
|
|
||||||
* Tue May 16 2023 Alexandra Hájková <ahajkova@redhat.com> - 3.21.0-3
|
* Tue May 16 2023 Alexandra Hájková <ahajkova@redhat.com> - 3.21.0-3
|
||||||
- Add valgrind-3.21.0-Add-with-gdbscripts-dir.patch
|
- Add valgrind-3.21.0-Add-with-gdbscripts-dir.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user