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
This commit is contained in:
Mark Wielaard 2021-07-21 16:22:08 +02:00
parent 6c338d3ed9
commit 3e776b3f5c
2 changed files with 149 additions and 1 deletions

View File

@ -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

View File

@ -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 <mjw@redhat.com> - 3.17.0-9
- Add valgrind-3.17.0-clone3.patch
* Sat Jul 17 2021 Mark Wielaard <mjw@redhat.com> - 3.17.0-8
- Add gdbserver_tests-update-filters-for-newer-glibc-gdb.patch
- Add helgrind-and-drd-suppression-libc-and-libpthread.patch