diff options
author | Chen Qi <Qi.Chen@windriver.com> | 2018-07-17 10:05:11 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-07-18 10:18:42 +0100 |
commit | ada8a5d9175b141b4fe532f542f5c1f7ffa26d88 (patch) | |
tree | 64af2142c781c13ee7669004b615d41cfb787f92 /meta/recipes-core/systemd/systemd/0032-memfd.patch | |
parent | 219eed186d32b01a7132233c5110c08055ed6e27 (diff) | |
download | poky-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.patch | 272 |
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 @@ | |||
1 | missing_syscall: when adding syscall replacements, use different names ( | ||
2 | |||
3 | #8229) | ||
4 | |||
5 | In meson.build we check that functions are available using: | ||
6 | meson.get_compiler('c').has_function('foo') | ||
7 | which 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 | |||
17 | So if __stub is defined, we know we don't want to use the glibc version, but | ||
18 | this doesn't tell us if the name itself is defined or not. If it _is_ defined, | ||
19 | and we define our replacement as an inline static function, we get an error: | ||
20 | |||
21 | In 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 | |||
32 | To avoid this problem, call our inline functions different than glibc, | ||
33 | and use a #define to map the official name to our replacement. | ||
34 | |||
35 | Fixes #8099. | ||
36 | |||
37 | v2: | ||
38 | - use "missing_" as the prefix instead of "_" | ||
39 | |||
40 | v3: | ||
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 | |||
46 | I checked that systemd compiles with current glibc | ||
47 | (glibc-devel-2.26-24.fc27.x86_64) if HAVE_MEMFD_CREATE, HAVE_GETTID, | ||
48 | HAVE_PIVOT_ROOT, HAVE_SETNS, HAVE_RENAMEAT2, HAVE_KCMP, HAVE_KEYCTL, | ||
49 | HAVE_COPY_FILE_RANGE, HAVE_BPF, HAVE_STATX are forced to 0. | ||
50 | |||
51 | Setting HAVE_NAME_TO_HANDLE_AT to 0 causes an issue, but it's not because of | ||
52 | the define, but because of struct file_handle. | ||
53 | |||
54 | |||
55 | backport https://github.com/systemd/systemd/commit/5187dd2c403caf92d09f3491e41f1ceb3f10491f | ||
56 | |||
57 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
58 | Upstream-Status: Backport [https://github.com/systemd/systemd/issues/8099] | ||
59 | Index: 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 | /* ======================================================================= */ | ||