diff options
author | Khem Raj <raj.khem@gmail.com> | 2022-12-20 20:14:27 -0800 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2022-12-23 08:52:23 -0800 |
commit | e661eb0b3b4e8c77c4f25cfa4d6f67dfa11c142b (patch) | |
tree | 2db2d4b01a370dd131398b73b84cfb2b74c52a32 /meta-oe | |
parent | 562413e6863b6bab8563389b0ace91aa450ee50d (diff) | |
download | meta-openembedded-e661eb0b3b4e8c77c4f25cfa4d6f67dfa11c142b.tar.gz |
sdbus-c++-libsystemd: Upgrade to 250.9 systemd release
Fix build with latest musl
Drop upstreamed patches
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe')
-rw-r--r-- | meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-dirent-util-Remove-asserts-on-dirent64-dirent.patch | 38 | ||||
-rw-r--r-- | meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch | 74 | ||||
-rw-r--r-- | meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-pass-correct-parameters-to-getdents64.patch | 50 | ||||
-rw-r--r-- | meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.9.bb (renamed from meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.3.bb) | 5 |
4 files changed, 40 insertions, 127 deletions
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-dirent-util-Remove-asserts-on-dirent64-dirent.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-dirent-util-Remove-asserts-on-dirent64-dirent.patch new file mode 100644 index 000000000..517886c72 --- /dev/null +++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-dirent-util-Remove-asserts-on-dirent64-dirent.patch | |||
@@ -0,0 +1,38 @@ | |||
1 | From 19cc68d4a89b59889be442d2997ff030cdc3de73 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Tue, 20 Dec 2022 20:11:17 -0800 | ||
4 | Subject: [PATCH] dirent-util: Remove asserts on dirent64 == dirent | ||
5 | |||
6 | We already have assert_cc(_FILE_OFFSET_BITS == 64) which ensures that 64bit LFS functions are same as their original counterparts | ||
7 | |||
8 | Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/25809] | ||
9 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
10 | --- | ||
11 | src/basic/dirent-util.h | 11 ----------- | ||
12 | 1 file changed, 11 deletions(-) | ||
13 | |||
14 | diff --git a/src/basic/dirent-util.h b/src/basic/dirent-util.h | ||
15 | index 04bc53003f..4cb317184d 100644 | ||
16 | --- a/src/basic/dirent-util.h | ||
17 | +++ b/src/basic/dirent-util.h | ||
18 | @@ -35,17 +35,6 @@ struct dirent *readdir_no_dot(DIR *dirp); | ||
19 | /* Only if 64bit off_t is enabled struct dirent + struct dirent64 are actually the same. We require this, and | ||
20 | * we want them to be interchangeable to make getdents64() work, hence verify that. */ | ||
21 | assert_cc(_FILE_OFFSET_BITS == 64); | ||
22 | -assert_cc(sizeof(struct dirent) == sizeof(struct dirent64)); | ||
23 | -assert_cc(offsetof(struct dirent, d_ino) == offsetof(struct dirent64, d_ino)); | ||
24 | -assert_cc(sizeof_field(struct dirent, d_ino) == sizeof_field(struct dirent64, d_ino)); | ||
25 | -assert_cc(offsetof(struct dirent, d_off) == offsetof(struct dirent64, d_off)); | ||
26 | -assert_cc(sizeof_field(struct dirent, d_off) == sizeof_field(struct dirent64, d_off)); | ||
27 | -assert_cc(offsetof(struct dirent, d_reclen) == offsetof(struct dirent64, d_reclen)); | ||
28 | -assert_cc(sizeof_field(struct dirent, d_reclen) == sizeof_field(struct dirent64, d_reclen)); | ||
29 | -assert_cc(offsetof(struct dirent, d_type) == offsetof(struct dirent64, d_type)); | ||
30 | -assert_cc(sizeof_field(struct dirent, d_type) == sizeof_field(struct dirent64, d_type)); | ||
31 | -assert_cc(offsetof(struct dirent, d_name) == offsetof(struct dirent64, d_name)); | ||
32 | -assert_cc(sizeof_field(struct dirent, d_name) == sizeof_field(struct dirent64, d_name)); | ||
33 | |||
34 | #define FOREACH_DIRENT_IN_BUFFER(de, buf, sz) \ | ||
35 | for (void *_end = (uint8_t*) ({ (de) = (buf); }) + (sz); \ | ||
36 | -- | ||
37 | 2.39.0 | ||
38 | |||
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch deleted file mode 100644 index 01afd37a3..000000000 --- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch +++ /dev/null | |||
@@ -1,74 +0,0 @@ | |||
1 | From b0933e76c6f0594c10cf8a9a70b34e15b68066d1 Mon Sep 17 00:00:00 2001 | ||
2 | From: Rudi Heitbaum <rudi@heitbaum.com> | ||
3 | Date: Sat, 23 Jul 2022 10:38:49 +0000 | ||
4 | Subject: [PATCH] glibc: Remove #include <linux/fs.h> to resolve fsconfig_command/mount_attr conflict with glibc 2.36 | ||
5 | |||
6 | Upstream-Status: Backport [https://github.com/systemd/systemd/pull/23992/commits/21c03ad5e9d8d0350e30dae92a5e15da318a1539] | ||
7 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
8 | --- | ||
9 | meson.build | 13 ++++++++++++- | ||
10 | src/basic/fd-util.c | 2 ++ | ||
11 | src/core/namespace.c | 2 ++ | ||
12 | src/shared/mount-util.c | 2 ++ | ||
13 | 4 files changed, 18 insertions(+), 1 deletion(-) | ||
14 | |||
15 | --- a/meson.build | ||
16 | +++ b/meson.build | ||
17 | @@ -474,7 +474,6 @@ decl_headers = ''' | ||
18 | #include <uchar.h> | ||
19 | #include <sys/mount.h> | ||
20 | #include <sys/stat.h> | ||
21 | -#include <linux/fs.h> | ||
22 | ''' | ||
23 | |||
24 | foreach decl : ['char16_t', | ||
25 | @@ -486,6 +485,17 @@ foreach decl : ['char16_t', | ||
26 | # We get -1 if the size cannot be determined | ||
27 | have = cc.sizeof(decl, prefix : decl_headers, args : '-D_GNU_SOURCE') > 0 | ||
28 | |||
29 | + if decl == 'struct mount_attr' | ||
30 | + if have | ||
31 | + want_linux_fs_h = false | ||
32 | + else | ||
33 | + have = cc.sizeof(decl, | ||
34 | + prefix : decl_headers + '#include <linux/fs.h>', | ||
35 | + args : '-D_GNU_SOURCE') > 0 | ||
36 | + want_linux_fs_h = have | ||
37 | + endif | ||
38 | + endif | ||
39 | + | ||
40 | if decl == 'struct statx' | ||
41 | if have | ||
42 | want_linux_stat_h = false | ||
43 | @@ -501,6 +511,7 @@ foreach decl : ['char16_t', | ||
44 | endforeach | ||
45 | |||
46 | conf.set10('WANT_LINUX_STAT_H', want_linux_stat_h) | ||
47 | +conf.set10('WANT_LINUX_FS_H', want_linux_fs_h) | ||
48 | |||
49 | foreach ident : ['secure_getenv', '__secure_getenv'] | ||
50 | conf.set10('HAVE_' + ident.to_upper(), cc.has_function(ident)) | ||
51 | --- a/src/core/namespace.c | ||
52 | +++ b/src/core/namespace.c | ||
53 | @@ -6,7 +6,9 @@ | ||
54 | #include <stdio.h> | ||
55 | #include <sys/mount.h> | ||
56 | #include <unistd.h> | ||
57 | +#if WANT_LINUX_FS_H | ||
58 | #include <linux/fs.h> | ||
59 | +#endif | ||
60 | |||
61 | #include "alloc-util.h" | ||
62 | #include "base-filesystem.h" | ||
63 | --- a/src/shared/mount-util.c | ||
64 | +++ b/src/shared/mount-util.c | ||
65 | @@ -7,7 +7,9 @@ | ||
66 | #include <sys/statvfs.h> | ||
67 | #include <unistd.h> | ||
68 | #include <linux/loop.h> | ||
69 | +#if WANT_LINUX_FS_H | ||
70 | #include <linux/fs.h> | ||
71 | +#endif | ||
72 | |||
73 | #include "alloc-util.h" | ||
74 | #include "chase-symlinks.h" | ||
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-pass-correct-parameters-to-getdents64.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-pass-correct-parameters-to-getdents64.patch deleted file mode 100644 index 03a29b532..000000000 --- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-pass-correct-parameters-to-getdents64.patch +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | From fbc10748c7c59d82024a4d35146b8dfef8d52927 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Fri, 21 Jan 2022 15:15:11 -0800 | ||
4 | Subject: [PATCH 1/2] pass correct parameters to getdents64 | ||
5 | |||
6 | Fixes | ||
7 | ../git/src/basic/recurse-dir.c:57:40: error: incompatible pointer types passing 'uint8_t *' (aka 'unsigned char *') to parameter of type 'struct dirent *' [-Werror,-Wincompatible-pointer-types] | ||
8 | n = getdents64(dir_fd, (uint8_t*) de->buffer + de->buffer_size, bs - de->buffer_size); | ||
9 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
10 | |||
11 | ../git/src/basic/stat-util.c:102:28: error: incompatible pointer types passing 'union (unnamed union at ../git/src/basic/stat-util.c:78:9) *' to parameter of type 'struct dirent *' [-Werror,-Wincompatible-pointer-types] | ||
12 | n = getdents64(fd, &buffer, sizeof(buffer)); | ||
13 | ^~~~~~~ | ||
14 | |||
15 | Upstream-Status: Pending | ||
16 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
17 | --- | ||
18 | src/basic/recurse-dir.c | 2 +- | ||
19 | src/basic/stat-util.c | 2 +- | ||
20 | 2 files changed, 2 insertions(+), 2 deletions(-) | ||
21 | |||
22 | diff --git a/src/basic/recurse-dir.c b/src/basic/recurse-dir.c | ||
23 | index efa1797b7b..797285e3be 100644 | ||
24 | --- a/src/basic/recurse-dir.c | ||
25 | +++ b/src/basic/recurse-dir.c | ||
26 | @@ -54,7 +54,7 @@ int readdir_all(int dir_fd, | ||
27 | bs = MIN(MALLOC_SIZEOF_SAFE(de) - offsetof(DirectoryEntries, buffer), (size_t) SSIZE_MAX); | ||
28 | assert(bs > de->buffer_size); | ||
29 | |||
30 | - n = getdents64(dir_fd, (uint8_t*) de->buffer + de->buffer_size, bs - de->buffer_size); | ||
31 | + n = getdents64(dir_fd, de->buffer + de->buffer_size, bs - de->buffer_size); | ||
32 | if (n < 0) | ||
33 | return -errno; | ||
34 | if (n == 0) | ||
35 | diff --git a/src/basic/stat-util.c b/src/basic/stat-util.c | ||
36 | index efac7b002e..9e1fe7f5a0 100644 | ||
37 | --- a/src/basic/stat-util.c | ||
38 | +++ b/src/basic/stat-util.c | ||
39 | @@ -99,7 +99,7 @@ int dir_is_empty_at(int dir_fd, const char *path) { | ||
40 | return fd; | ||
41 | } | ||
42 | |||
43 | - n = getdents64(fd, &buffer, sizeof(buffer)); | ||
44 | + n = getdents64(fd, (struct dirent *)&buffer, sizeof(buffer)); | ||
45 | if (n < 0) | ||
46 | return -errno; | ||
47 | |||
48 | -- | ||
49 | 2.34.1 | ||
50 | |||
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.3.bb b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.9.bb index 853cc20b6..14e927d07 100644 --- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.3.bb +++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.9.bb | |||
@@ -10,11 +10,11 @@ inherit meson pkgconfig | |||
10 | 10 | ||
11 | DEPENDS += "gperf-native gettext-native util-linux libcap util-linux python3-jinja2-native" | 11 | DEPENDS += "gperf-native gettext-native util-linux libcap util-linux python3-jinja2-native" |
12 | 12 | ||
13 | SRCREV = "73be9643910c3f7f3ff84765d63060846c110016" | 13 | SRCREV = "1d5e0e9910500f3c3584485f77bfc35e601036e3" |
14 | SRCBRANCH = "v250-stable" | 14 | SRCBRANCH = "v250-stable" |
15 | SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \ | 15 | SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \ |
16 | file://static-libsystemd-pkgconfig.patch \ | 16 | file://static-libsystemd-pkgconfig.patch \ |
17 | file://0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch \ | 17 | file://0001-dirent-util-Remove-asserts-on-dirent64-dirent.patch \ |
18 | " | 18 | " |
19 | 19 | ||
20 | # patches needed by musl | 20 | # patches needed by musl |
@@ -44,7 +44,6 @@ SRC_URI_MUSL = "\ | |||
44 | file://0025-Handle-__cpu_mask-usage.patch \ | 44 | file://0025-Handle-__cpu_mask-usage.patch \ |
45 | file://0026-Handle-missing-gshadow.patch \ | 45 | file://0026-Handle-missing-gshadow.patch \ |
46 | file://0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch \ | 46 | file://0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch \ |
47 | file://0001-pass-correct-parameters-to-getdents64.patch \ | ||
48 | file://0002-Add-sys-stat.h-for-S_IFDIR.patch \ | 47 | file://0002-Add-sys-stat.h-for-S_IFDIR.patch \ |
49 | file://0001-Adjust-for-musl-headers.patch \ | 48 | file://0001-Adjust-for-musl-headers.patch \ |
50 | " | 49 | " |