From 3e776b3f5c8d53bde56f6b6c8ea555e474a83c0e Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 21 Jul 2021 16:22:08 +0200 Subject: [PATCH] 3.17.0-9 - Add valgrind-3.17.0-clone3.patch Resolves: #1984076 glibc 2.34 usage of clone3 breaks thread using programs under valgrind --- valgrind-3.17.0-clone3.patch | 141 +++++++++++++++++++++++++++++++++++ valgrind.spec | 9 ++- 2 files changed, 149 insertions(+), 1 deletion(-) create mode 100644 valgrind-3.17.0-clone3.patch diff --git a/valgrind-3.17.0-clone3.patch b/valgrind-3.17.0-clone3.patch new file mode 100644 index 0000000..bd7a32a --- /dev/null +++ b/valgrind-3.17.0-clone3.patch @@ -0,0 +1,141 @@ +diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c +index 45e1f3d1b..3b2dcb8e3 100644 +--- a/coregrind/m_syswrap/syswrap-amd64-linux.c ++++ b/coregrind/m_syswrap/syswrap-amd64-linux.c +@@ -874,6 +874,8 @@ static SyscallTableEntry syscall_table[] = { + LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426 + LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 + ++ GENX_(__NR_clone3, sys_ni_syscall), // 435 ++ + LINX_(__NR_faccessat2, sys_faccessat2), // 439 + }; + +diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c +index 428cb7c6f..7f41b0749 100644 +--- a/coregrind/m_syswrap/syswrap-arm-linux.c ++++ b/coregrind/m_syswrap/syswrap-arm-linux.c +@@ -1051,6 +1051,8 @@ static SyscallTableEntry syscall_main_table[] = { + LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426 + LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 + ++ GENX_(__NR_clone3, sys_ni_syscall), // 435 ++ + LINX_(__NR_faccessat2, sys_faccessat2), // 439 + }; + +diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c +index 024ece27f..0d717f44b 100644 +--- a/coregrind/m_syswrap/syswrap-arm64-linux.c ++++ b/coregrind/m_syswrap/syswrap-arm64-linux.c +@@ -830,6 +830,8 @@ static SyscallTableEntry syscall_main_table[] = { + LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426 + LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 + ++ GENX_(__NR_clone3, sys_ni_syscall), // 435 ++ + LINX_(__NR_faccessat2, sys_faccessat2), // 439 + }; + +diff --git a/coregrind/m_syswrap/syswrap-mips32-linux.c b/coregrind/m_syswrap/syswrap-mips32-linux.c +index 62b085ea2..b62129111 100644 +--- a/coregrind/m_syswrap/syswrap-mips32-linux.c ++++ b/coregrind/m_syswrap/syswrap-mips32-linux.c +@@ -1136,6 +1136,8 @@ static SyscallTableEntry syscall_main_table[] = { + LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426 + LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 + ++ GENX_(__NR_clone3, sys_ni_syscall), // 435 ++ + LINX_ (__NR_faccessat2, sys_faccessat2), // 439 + }; + +diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c +index b73c03da1..94f38366f 100644 +--- a/coregrind/m_syswrap/syswrap-mips64-linux.c ++++ b/coregrind/m_syswrap/syswrap-mips64-linux.c +@@ -815,6 +815,7 @@ static SyscallTableEntry syscall_main_table[] = { + LINXY (__NR_io_uring_setup, sys_io_uring_setup), + LINXY (__NR_io_uring_enter, sys_io_uring_enter), + LINXY (__NR_io_uring_register, sys_io_uring_register), ++ GENX_ (__NR_clone3, sys_ni_syscall), + LINX_ (__NR_faccessat2, sys_faccessat2), + }; + +diff --git a/coregrind/m_syswrap/syswrap-nanomips-linux.c b/coregrind/m_syswrap/syswrap-nanomips-linux.c +index 14127b181..102c15550 100644 +--- a/coregrind/m_syswrap/syswrap-nanomips-linux.c ++++ b/coregrind/m_syswrap/syswrap-nanomips-linux.c +@@ -824,6 +824,7 @@ static SyscallTableEntry syscall_main_table[] = { + LINXY (__NR_io_uring_setup, sys_io_uring_setup), + LINXY (__NR_io_uring_enter, sys_io_uring_enter), + LINXY (__NR_io_uring_register, sys_io_uring_register), ++ GENX_ (__NR_clone3, sys_ni_syscall), + LINX_ (__NR_faccessat2, sys_faccessat2), + }; + +diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c +index aad14f8ba..1e2efc677 100644 +--- a/coregrind/m_syswrap/syswrap-ppc32-linux.c ++++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c +@@ -1054,6 +1054,8 @@ static SyscallTableEntry syscall_table[] = { + LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426 + LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 + ++ GENX_(__NR_clone3, sys_ni_syscall), // 435 ++ + LINX_(__NR_faccessat2, sys_faccessat2), // 439 + }; + +diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c +index c0e3f5549..76610e142 100644 +--- a/coregrind/m_syswrap/syswrap-ppc64-linux.c ++++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c +@@ -1023,6 +1023,8 @@ static SyscallTableEntry syscall_table[] = { + LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426 + LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 + ++ GENX_(__NR_clone3, sys_ni_syscall), // 435 ++ + LINX_(__NR_faccessat2, sys_faccessat2), // 439 + }; + +diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c +index af6c4eb21..5283c19fe 100644 +--- a/coregrind/m_syswrap/syswrap-s390x-linux.c ++++ b/coregrind/m_syswrap/syswrap-s390x-linux.c +@@ -864,6 +864,8 @@ static SyscallTableEntry syscall_table[] = { + LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426 + LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 + ++ GENX_(__NR_clone3, sys_ni_syscall), // 435 ++ + LINX_(__NR_faccessat2, sys_faccessat2), // 439 + }; + +diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c +index 67d866497..418c76975 100644 +--- a/coregrind/m_syswrap/syswrap-x86-linux.c ++++ b/coregrind/m_syswrap/syswrap-x86-linux.c +@@ -1645,6 +1645,8 @@ static SyscallTableEntry syscall_table[] = { + LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426 + LINXY(__NR_io_uring_register, sys_io_uring_register),// 427 + ++ GENX_(__NR_clone3, sys_ni_syscall), // 435 ++ + LINX_(__NR_faccessat2, sys_faccessat2), // 439 + }; + +diff --git a/include/vki/vki-scnums-shared-linux.h b/include/vki/vki-scnums-shared-linux.h +index c8bc31b4b..6c70c9981 100644 +--- a/include/vki/vki-scnums-shared-linux.h ++++ b/include/vki/vki-scnums-shared-linux.h +@@ -39,6 +39,8 @@ + #define __NR_fsmount 432 + #define __NR_fspick 433 + ++#define __NR_clone3 435 ++ + #define __NR_faccessat2 439 + + #endif diff --git a/valgrind.spec b/valgrind.spec index 101d681..fee5ccc 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.17.0 -Release: 8%{?dist} +Release: 9%{?dist} Epoch: 1 License: GPLv2+ URL: http://www.valgrind.org/ @@ -153,6 +153,9 @@ Patch14: gdbserver_tests-update-filters-for-newer-glibc-gdb.patch # KDE#439590 glibc-2.34 breaks suppressions against obj:*/lib*/libc-2.*so* Patch15: helgrind-and-drd-suppression-libc-and-libpthread.patch +# KDE#420906 missing syscall wrapper for clone3 (435) +Patch16: valgrind-3.17.0-clone3.patch + BuildRequires: make BuildRequires: glibc-devel @@ -307,6 +310,7 @@ touch memcheck/tests/s390x/vistr.stdout.exp %patch14 -p1 %patch15 -p1 +%patch16 -p1 %build # LTO triggers undefined symbols in valgrind. Valgrind has a --enable-lto @@ -532,6 +536,9 @@ fi %endif %changelog +* Wed Jul 21 2021 Mark Wielaard - 3.17.0-9 +- Add valgrind-3.17.0-clone3.patch + * Sat Jul 17 2021 Mark Wielaard - 3.17.0-8 - Add gdbserver_tests-update-filters-for-newer-glibc-gdb.patch - Add helgrind-and-drd-suppression-libc-and-libpthread.patch