blob: 451a459ea756d5ea4d939ddba932f1581eeef306 [file] [log] [blame]
Patrick Williams213cb262021-08-07 19:21:33 -05001From 52ed51fc35f8a6148c2940eb46932b02dd3b9b23 Mon Sep 17 00:00:00 2001
2From: Mark Wielaard <mark@klomp.org>
3Date: Wed, 21 Jul 2021 19:53:13 +0200
4Subject: [PATCH] Generate a ENOSYS (sys_ni_syscall) for clone3 on all linux
5 arches
6
7glibc 2.34 will try to use clone3 first before falling back to
8the clone syscall. So implement clone3 as sys_ni_syscall which
9simply return ENOSYS without producing a warning.
10
11https://bugs.kde.org/show_bug.cgi?id=439590
12
13Upstream-Status: Backport
14---
15 coregrind/m_syswrap/syswrap-amd64-linux.c | 2 ++
16 coregrind/m_syswrap/syswrap-arm-linux.c | 2 ++
17 coregrind/m_syswrap/syswrap-arm64-linux.c | 2 ++
18 coregrind/m_syswrap/syswrap-mips32-linux.c | 2 ++
19 coregrind/m_syswrap/syswrap-mips64-linux.c | 1 +
20 coregrind/m_syswrap/syswrap-nanomips-linux.c | 1 +
21 coregrind/m_syswrap/syswrap-ppc32-linux.c | 2 ++
22 coregrind/m_syswrap/syswrap-ppc64-linux.c | 2 ++
23 coregrind/m_syswrap/syswrap-s390x-linux.c | 2 ++
24 coregrind/m_syswrap/syswrap-x86-linux.c | 2 ++
25 include/vki/vki-scnums-shared-linux.h | 2 ++
26 11 files changed, 20 insertions(+)
27
28diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c
29index 45e1f3d1bb..3b2dcb8e30 100644
30--- a/coregrind/m_syswrap/syswrap-amd64-linux.c
31+++ b/coregrind/m_syswrap/syswrap-amd64-linux.c
32@@ -874,6 +874,8 @@ static SyscallTableEntry syscall_table[] = {
33 LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
34 LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
35
36+ GENX_(__NR_clone3, sys_ni_syscall), // 435
37+
38 LINX_(__NR_faccessat2, sys_faccessat2), // 439
39 };
40
41diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c
42index 428cb7c6fc..7f41b07491 100644
43--- a/coregrind/m_syswrap/syswrap-arm-linux.c
44+++ b/coregrind/m_syswrap/syswrap-arm-linux.c
45@@ -1051,6 +1051,8 @@ static SyscallTableEntry syscall_main_table[] = {
46 LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
47 LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
48
49+ GENX_(__NR_clone3, sys_ni_syscall), // 435
50+
51 LINX_(__NR_faccessat2, sys_faccessat2), // 439
52 };
53
54diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
55index 024ece27f5..0d717f44be 100644
56--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
57+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
58@@ -830,6 +830,8 @@ static SyscallTableEntry syscall_main_table[] = {
59 LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
60 LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
61
62+ GENX_(__NR_clone3, sys_ni_syscall), // 435
63+
64 LINX_(__NR_faccessat2, sys_faccessat2), // 439
65 };
66
67diff --git a/coregrind/m_syswrap/syswrap-mips32-linux.c b/coregrind/m_syswrap/syswrap-mips32-linux.c
68index 62b085ea21..b62129111b 100644
69--- a/coregrind/m_syswrap/syswrap-mips32-linux.c
70+++ b/coregrind/m_syswrap/syswrap-mips32-linux.c
71@@ -1136,6 +1136,8 @@ static SyscallTableEntry syscall_main_table[] = {
72 LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
73 LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
74
75+ GENX_(__NR_clone3, sys_ni_syscall), // 435
76+
77 LINX_ (__NR_faccessat2, sys_faccessat2), // 439
78 };
79
80diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c
81index b73c03da16..94f38366f0 100644
82--- a/coregrind/m_syswrap/syswrap-mips64-linux.c
83+++ b/coregrind/m_syswrap/syswrap-mips64-linux.c
84@@ -815,6 +815,7 @@ static SyscallTableEntry syscall_main_table[] = {
85 LINXY (__NR_io_uring_setup, sys_io_uring_setup),
86 LINXY (__NR_io_uring_enter, sys_io_uring_enter),
87 LINXY (__NR_io_uring_register, sys_io_uring_register),
88+ GENX_ (__NR_clone3, sys_ni_syscall),
89 LINX_ (__NR_faccessat2, sys_faccessat2),
90 };
91
92diff --git a/coregrind/m_syswrap/syswrap-nanomips-linux.c b/coregrind/m_syswrap/syswrap-nanomips-linux.c
93index 14127b181a..102c155507 100644
94--- a/coregrind/m_syswrap/syswrap-nanomips-linux.c
95+++ b/coregrind/m_syswrap/syswrap-nanomips-linux.c
96@@ -824,6 +824,7 @@ static SyscallTableEntry syscall_main_table[] = {
97 LINXY (__NR_io_uring_setup, sys_io_uring_setup),
98 LINXY (__NR_io_uring_enter, sys_io_uring_enter),
99 LINXY (__NR_io_uring_register, sys_io_uring_register),
100+ GENX_ (__NR_clone3, sys_ni_syscall),
101 LINX_ (__NR_faccessat2, sys_faccessat2),
102 };
103
104diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c
105index aad14f8ba4..1e2efc6777 100644
106--- a/coregrind/m_syswrap/syswrap-ppc32-linux.c
107+++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c
108@@ -1054,6 +1054,8 @@ static SyscallTableEntry syscall_table[] = {
109 LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
110 LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
111
112+ GENX_(__NR_clone3, sys_ni_syscall), // 435
113+
114 LINX_(__NR_faccessat2, sys_faccessat2), // 439
115 };
116
117diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c
118index c0e3f55491..76610e1423 100644
119--- a/coregrind/m_syswrap/syswrap-ppc64-linux.c
120+++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c
121@@ -1023,6 +1023,8 @@ static SyscallTableEntry syscall_table[] = {
122 LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
123 LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
124
125+ GENX_(__NR_clone3, sys_ni_syscall), // 435
126+
127 LINX_(__NR_faccessat2, sys_faccessat2), // 439
128 };
129
130diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c
131index af6c4eb210..5283c19fe4 100644
132--- a/coregrind/m_syswrap/syswrap-s390x-linux.c
133+++ b/coregrind/m_syswrap/syswrap-s390x-linux.c
134@@ -864,6 +864,8 @@ static SyscallTableEntry syscall_table[] = {
135 LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
136 LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
137
138+ GENX_(__NR_clone3, sys_ni_syscall), // 435
139+
140 LINX_(__NR_faccessat2, sys_faccessat2), // 439
141 };
142
143diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c
144index 67d866497d..418c769750 100644
145--- a/coregrind/m_syswrap/syswrap-x86-linux.c
146+++ b/coregrind/m_syswrap/syswrap-x86-linux.c
147@@ -1645,6 +1645,8 @@ static SyscallTableEntry syscall_table[] = {
148 LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
149 LINXY(__NR_io_uring_register, sys_io_uring_register),// 427
150
151+ GENX_(__NR_clone3, sys_ni_syscall), // 435
152+
153 LINX_(__NR_faccessat2, sys_faccessat2), // 439
154 };
155
156diff --git a/include/vki/vki-scnums-shared-linux.h b/include/vki/vki-scnums-shared-linux.h
157index c8bc31b4b3..6c70c9981d 100644
158--- a/include/vki/vki-scnums-shared-linux.h
159+++ b/include/vki/vki-scnums-shared-linux.h
160@@ -39,6 +39,8 @@
161 #define __NR_fsmount 432
162 #define __NR_fspick 433
163
164+#define __NR_clone3 435
165+
166 #define __NR_faccessat2 439
167
168 #endif
169--
1702.27.0
171