summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/systemd/systemd/0032-memfd.patch
diff options
context:
space:
mode:
authorChen Qi <Qi.Chen@windriver.com>2018-07-17 10:05:11 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-07-18 10:18:42 +0100
commitada8a5d9175b141b4fe532f542f5c1f7ffa26d88 (patch)
tree64af2142c781c13ee7669004b615d41cfb787f92 /meta/recipes-core/systemd/systemd/0032-memfd.patch
parent219eed186d32b01a7132233c5110c08055ed6e27 (diff)
downloadpoky-ada8a5d9175b141b4fe532f542f5c1f7ffa26d88.tar.gz
systemd: upgrade to 239
Upgrade systemd to 239. 1. Patch Changes * Rebased Patches 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch 0003-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch 0006-Make-root-s-home-directory-configurable.patch 0027-remove-nobody-user-group-checking.patch 0011-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch 0013-add-fallback-parse_printf_format-implementation.patch 0014-src-basic-missing.h-check-for-missing-strndupa.patch 0015-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch 0016-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch 0017-Include-netinet-if_ether.h.patch 0019-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch 0022-don-t-use-glibc-specific-qsort_r.patch 0024-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch 0026-Use-uintmax_t-for-handling-rlim_t.patch 0030-fix-missing-of-__register_atfork-for-non-glibc-build.patch 0031-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch 0001-core-device.c-Change-the-default-device-timeout-to-2.patch 0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch * Dropped Patches and Reasons 0001-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch This patch is dropped because the problem has been fixed by binutils upstream. And this workaround could be dropped. https://sourceware.org/bugzilla/show_bug.cgi?id=18548 0007-Revert-rules-remove-firmware-loading-rules.patch 0008-Revert-udev-remove-userspace-firmware-loading-suppor.patch These two patches are dropped because they are for kernel < 3.7. But the current minimal requirement of kernel to build systemd is as below. REQUIREMENTS: Linux kernel >= 3.13 Linux kernel >= 4.2 for unified cgroup hierarchy support So these two patches no long make any sense. Also remove non-exist firmware-path option 0009-remove-duplicate-include-uchar.h.patch 0010-check-for-uchar.h-in-meson.build.patch These two patches are dropped because musl has implemented uchar.h. See commit below from musl repo. """ ab9672ae73248f51e30f4553c4b8878525e46383 implement uchar.h (C11 UTF-16/32 conversion) interfaces """ 0018-check-for-missing-canonicalize_file_name.patch The above patch is dropped because current systemd does not need canonicalize_file_name. 0025-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch The above patch is dropped because utmp makes no sense in musl. Check code below from musl. include/utmp.h:#define _PATH_UTMP "/dev/null/utmp" And utmp PACKAGECONFIG has been explicitly disabled for musl. So we don't need this patch. 0032-memfd.patch 0033-basic-macros-rename-noreturn-into-_noreturn_-8456.patch libmount.patch 0034-Fix-format-truncation-compile-failure-by-typecasting.patch The above patches are dropped because they are backported patches. And current systemd has contained these patches. 0036-time-util-fix-build-with-gcc8-Werror-format-truncati.patch The above patch is dropped because it has been merged and is now in new version. * Newly Added Patch 0005-include-gshadow-only-if-ENABLE_GSHADOW-is-1.patch This patch is added to fix build for musl. 0019-Do-not-disable-buffering-when-writing-to-oom_score_a.patch This patch is added to fix the following error which caused system unable to boot up. systemd-udevd.service: Failed to adjust OOM setting: Invalid argument dbus.service: Failed to adjust OOM setting: Invalid argument 0020-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch This patch is added to fix segment fault error on musl systems. 0001-login-use-parse_uid-when-unmounting-user-runtime-dir.patch This patch is backported to solve a race condition between user-runtime-dir@xxx.service stop and user deletion. 2. PACKAGECONFIG and Dependency Changes * Add a new PACKAGECONFIG item 'gshadow'. Enable it by default for glibc but disable it by default for musl. This is because musl does not provide gshadow.h. * Add a new PACKAGECONFIG item 'portabled'. Default to disable it because it's still experimental, according to the announcement letter. """ Currently, the support is still experimental, but this is expected to change soon. Reflecting this experimental state, the "portablectl" binary is not installed into /usr/bin yet. """ * Change 'kmod' from a hard dependency to a PACKAGECONFIG item. Default to enable it. * Change 'acl' from a hard dependency to a PACKAGECONFIG item. Default to enable it. * Remove 'readline' from DEPENDS. systemd does not need it. * Remove 'libcgroup' from DEPENDS. The dependency on libcgroup has been removed from systemd a long time ago. We now remove this unnecessary dependency from DEPENDS. 3. update-alternatives changes The utilities like shutdown, poweroff, etc. are now created as symlinks at do_install. So there's no need to use update-alternatives mechanism anymore to create the symlinks now. In addtion, I don't think we now support multiple init systems at one running system, so there's really no need to use update-alternatives mechanism here. Also update the FILES_${PN} to include these files to avoid QA issue. (From OE-Core rev: 597f4645faf61486eb1d2ab73f3d974460ab9466) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/systemd/systemd/0032-memfd.patch')
-rw-r--r--meta/recipes-core/systemd/systemd/0032-memfd.patch272
1 files changed, 0 insertions, 272 deletions
diff --git a/meta/recipes-core/systemd/systemd/0032-memfd.patch b/meta/recipes-core/systemd/systemd/0032-memfd.patch
deleted file mode 100644
index f7cfd60a3f..0000000000
--- a/meta/recipes-core/systemd/systemd/0032-memfd.patch
+++ /dev/null
@@ -1,272 +0,0 @@
1missing_syscall: when adding syscall replacements, use different names (
2
3#8229)
4
5In meson.build we check that functions are available using:
6 meson.get_compiler('c').has_function('foo')
7which checks the following:
8- if __stub_foo or __stub___foo are defined, return false
9- if foo is declared (a pointer to the function can be taken), return true
10- otherwise check for __builtin_memfd_create
11
12_stub is documented by glibc as
13 It defines a symbol '__stub_FUNCTION' for each function
14 in the C library which is a stub, meaning it will fail
15 every time called, usually setting errno to ENOSYS.
16
17So if __stub is defined, we know we don't want to use the glibc version, but
18this doesn't tell us if the name itself is defined or not. If it _is_ defined,
19and we define our replacement as an inline static function, we get an error:
20
21In file included from ../src/basic/missing.h:1358:0,
22 from ../src/basic/util.h:47,
23 from ../src/basic/calendarspec.h:29,
24 from ../src/basic/calendarspec.c:34:
25../src/basic/missing_syscall.h:65:19: error: static declaration of 'memfd_create' follows non-static declaration
26 static inline int memfd_create(const char *name, unsigned int flags) {
27 ^~~~~~~~~~~~
28.../usr/include/bits/mman-shared.h:46:5: note: previous declaration of 'memfd_create' was here
29 int memfd_create (const char *__name, unsigned int __flags) __THROW;
30 ^~~~~~~~~~~~
31
32To avoid this problem, call our inline functions different than glibc,
33and use a #define to map the official name to our replacement.
34
35Fixes #8099.
36
37v2:
38- use "missing_" as the prefix instead of "_"
39
40v3:
41- rebase and update for statx()
42
43 Unfortunately "statx" is also present in "struct statx", so the define
44 causes issues. Work around this by using a typedef.
45
46I checked that systemd compiles with current glibc
47(glibc-devel-2.26-24.fc27.x86_64) if HAVE_MEMFD_CREATE, HAVE_GETTID,
48HAVE_PIVOT_ROOT, HAVE_SETNS, HAVE_RENAMEAT2, HAVE_KCMP, HAVE_KEYCTL,
49HAVE_COPY_FILE_RANGE, HAVE_BPF, HAVE_STATX are forced to 0.
50
51Setting HAVE_NAME_TO_HANDLE_AT to 0 causes an issue, but it's not because of
52the define, but because of struct file_handle.
53
54
55backport https://github.com/systemd/systemd/commit/5187dd2c403caf92d09f3491e41f1ceb3f10491f
56
57Signed-off-by: Khem Raj <raj.khem@gmail.com>
58Upstream-Status: Backport [https://github.com/systemd/systemd/issues/8099]
59Index: git/src/basic/missing_syscall.h
60===================================================================
61--- git.orig/src/basic/missing_syscall.h
62+++ git/src/basic/missing_syscall.h
63@@ -26,9 +26,11 @@
64 #include <sys/types.h>
65
66 #if !HAVE_PIVOT_ROOT
67-static inline int pivot_root(const char *new_root, const char *put_old) {
68+static inline int missing_pivot_root(const char *new_root, const char *put_old) {
69 return syscall(SYS_pivot_root, new_root, put_old);
70 }
71+
72+# define pivot_root missing_pivot_root
73 #endif
74
75 #if !HAVE_CANONICALIZE_FILE_NAME
76@@ -68,7 +70,7 @@ static inline char *canonicalize_file_na
77 # endif
78 # endif
79
80-static inline int memfd_create(const char *name, unsigned int flags) {
81+static inline int missing_memfd_create(const char *name, unsigned int flags) {
82 # ifdef __NR_memfd_create
83 return syscall(__NR_memfd_create, name, flags);
84 # else
85@@ -76,6 +78,8 @@ static inline int memfd_create(const cha
86 return -1;
87 # endif
88 }
89+
90+# define memfd_create missing_memfd_create
91 #endif
92
93 /* ======================================================================= */
94@@ -115,7 +119,7 @@ static inline int memfd_create(const cha
95 # endif
96 # endif
97
98-static inline int getrandom(void *buffer, size_t count, unsigned flags) {
99+static inline int missing_getrandom(void *buffer, size_t count, unsigned flags) {
100 # ifdef __NR_getrandom
101 return syscall(__NR_getrandom, buffer, count, flags);
102 # else
103@@ -123,14 +127,18 @@ static inline int getrandom(void *buffer
104 return -1;
105 # endif
106 }
107+
108+# define getrandom missing_getrandom
109 #endif
110
111 /* ======================================================================= */
112
113 #if !HAVE_GETTID
114-static inline pid_t gettid(void) {
115+static inline pid_t missing_gettid(void) {
116 return (pid_t) syscall(SYS_gettid);
117 }
118+
119+# define gettid missing_gettid
120 #endif
121
122 /* ======================================================================= */
123@@ -158,7 +166,7 @@ struct file_handle {
124 unsigned char f_handle[0];
125 };
126
127-static inline int name_to_handle_at(int fd, const char *name, struct file_handle *handle, int *mnt_id, int flags) {
128+static inline int missing_name_to_handle_at(int fd, const char *name, struct file_handle *handle, int *mnt_id, int flags) {
129 # ifdef __NR_name_to_handle_at
130 return syscall(__NR_name_to_handle_at, fd, name, handle, mnt_id, flags);
131 # else
132@@ -166,6 +174,8 @@ static inline int name_to_handle_at(int
133 return -1;
134 # endif
135 }
136+
137+# define name_to_handle_at missing_name_to_handle_at
138 #endif
139
140 /* ======================================================================= */
141@@ -183,7 +193,7 @@ static inline int name_to_handle_at(int
142 # endif
143 # endif
144
145-static inline int setns(int fd, int nstype) {
146+static inline int missing_setns(int fd, int nstype) {
147 # ifdef __NR_setns
148 return syscall(__NR_setns, fd, nstype);
149 # else
150@@ -191,6 +201,8 @@ static inline int setns(int fd, int nsty
151 return -1;
152 # endif
153 }
154+
155+# define setns missing_setns
156 #endif
157
158 /* ======================================================================= */
159@@ -236,7 +248,7 @@ static inline pid_t raw_getpid(void) {
160 # endif
161 # endif
162
163-static inline int renameat2(int oldfd, const char *oldname, int newfd, const char *newname, unsigned flags) {
164+static inline int missing_renameat2(int oldfd, const char *oldname, int newfd, const char *newname, unsigned flags) {
165 # ifdef __NR_renameat2
166 return syscall(__NR_renameat2, oldfd, oldname, newfd, newname, flags);
167 # else
168@@ -244,12 +256,14 @@ static inline int renameat2(int oldfd, c
169 return -1;
170 # endif
171 }
172+
173+# define renameat2 missing_renameat2
174 #endif
175
176 /* ======================================================================= */
177
178 #if !HAVE_KCMP
179-static inline int kcmp(pid_t pid1, pid_t pid2, int type, unsigned long idx1, unsigned long idx2) {
180+static inline int missing_kcmp(pid_t pid1, pid_t pid2, int type, unsigned long idx1, unsigned long idx2) {
181 # ifdef __NR_kcmp
182 return syscall(__NR_kcmp, pid1, pid2, type, idx1, idx2);
183 # else
184@@ -257,36 +271,44 @@ static inline int kcmp(pid_t pid1, pid_t
185 return -1;
186 # endif
187 }
188+
189+# define kcmp missing_kcmp
190 #endif
191
192 /* ======================================================================= */
193
194 #if !HAVE_KEYCTL
195-static inline long keyctl(int cmd, unsigned long arg2, unsigned long arg3, unsigned long arg4,unsigned long arg5) {
196+static inline long missing_keyctl(int cmd, unsigned long arg2, unsigned long arg3, unsigned long arg4,unsigned long arg5) {
197 # ifdef __NR_keyctl
198 return syscall(__NR_keyctl, cmd, arg2, arg3, arg4, arg5);
199 # else
200 errno = ENOSYS;
201 return -1;
202 # endif
203+
204+# define keyctl missing_keyctl
205 }
206
207-static inline key_serial_t add_key(const char *type, const char *description, const void *payload, size_t plen, key_serial_t ringid) {
208+static inline key_serial_t missing_add_key(const char *type, const char *description, const void *payload, size_t plen, key_serial_t ringid) {
209 # ifdef __NR_add_key
210 return syscall(__NR_add_key, type, description, payload, plen, ringid);
211 # else
212 errno = ENOSYS;
213 return -1;
214 # endif
215+
216+# define add_key missing_add_key
217 }
218
219-static inline key_serial_t request_key(const char *type, const char *description, const char * callout_info, key_serial_t destringid) {
220+static inline key_serial_t missing_request_key(const char *type, const char *description, const char * callout_info, key_serial_t destringid) {
221 # ifdef __NR_request_key
222 return syscall(__NR_request_key, type, description, callout_info, destringid);
223 # else
224 errno = ENOSYS;
225 return -1;
226 # endif
227+
228+# define request_key missing_request_key
229 }
230 #endif
231
232@@ -313,10 +335,10 @@ static inline key_serial_t request_key(c
233 # endif
234 # endif
235
236-static inline ssize_t copy_file_range(int fd_in, loff_t *off_in,
237- int fd_out, loff_t *off_out,
238- size_t len,
239- unsigned int flags) {
240+static inline ssize_t missing_copy_file_range(int fd_in, loff_t *off_in,
241+ int fd_out, loff_t *off_out,
242+ size_t len,
243+ unsigned int flags) {
244 # ifdef __NR_copy_file_range
245 return syscall(__NR_copy_file_range, fd_in, off_in, fd_out, off_out, len, flags);
246 # else
247@@ -324,6 +346,8 @@ static inline ssize_t copy_file_range(in
248 return -1;
249 # endif
250 }
251+
252+# define copy_file_range missing_copy_file_range
253 #endif
254
255 /* ======================================================================= */
256@@ -351,7 +375,7 @@ static inline ssize_t copy_file_range(in
257
258 union bpf_attr;
259
260-static inline int bpf(int cmd, union bpf_attr *attr, size_t size) {
261+static inline int missing_bpf(int cmd, union bpf_attr *attr, size_t size) {
262 #ifdef __NR_bpf
263 return (int) syscall(__NR_bpf, cmd, attr, size);
264 #else
265@@ -360,6 +384,7 @@ static inline int bpf(int cmd, union bpf
266 #endif
267 }
268
269+# define bpf missing_bpf
270 #endif
271
272 /* ======================================================================= */