diff options
| author | Khem Raj <khem.raj@oss.qualcomm.com> | 2026-04-15 16:55:45 -0700 |
|---|---|---|
| committer | Khem Raj <khem.raj@oss.qualcomm.com> | 2026-04-16 12:21:07 -0700 |
| commit | dd3221a5e730bc758a5b1f4d29f19bdeaeb9f205 (patch) | |
| tree | 450fe38c8359937219b2c06b01d64771091fea02 | |
| parent | ec5480d0686d83d6ada8fc819cef2e269e41376d (diff) | |
| download | meta-openembedded-dd3221a5e730bc758a5b1f4d29f19bdeaeb9f205.tar.gz | |
taisei: Fix build with glibc 2.43 + c23
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
3 files changed, 131 insertions, 1 deletions
diff --git a/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei/0001-misc-fix-discarded-const-qualifiers-in-char-pointer-.patch b/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei/0001-misc-fix-discarded-const-qualifiers-in-char-pointer-.patch new file mode 100644 index 0000000000..1b37633a36 --- /dev/null +++ b/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei/0001-misc-fix-discarded-const-qualifiers-in-char-pointer-.patch | |||
| @@ -0,0 +1,56 @@ | |||
| 1 | From d0326cd89b01600a6d8ba5e32e8e090f2ea29f2d Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <khem.raj@oss.qualcomm.com> | ||
| 3 | Date: Wed, 15 Apr 2026 16:28:28 -0700 | ||
| 4 | Subject: [PATCH] misc: fix discarded const qualifiers in char pointer | ||
| 5 | assignments | ||
| 6 | |||
| 7 | These show up with glibc 2.43 + clang-22, glibc-2.43 has C23 versions | ||
| 8 | of str* mem* functions | ||
| 9 | |||
| 10 | Upstream-Status: Backport [https://github.com/taisei-project/taisei/commit/1c8f773912cbbd72b4a4df271fda1bd6d2aeb27f] | ||
| 11 | Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com> | ||
| 12 | --- | ||
| 13 | src/log.c | 2 +- | ||
| 14 | src/pixmap/pixmap.c | 2 +- | ||
| 15 | src/vfs/pathutil.c | 2 +- | ||
| 16 | 3 files changed, 3 insertions(+), 3 deletions(-) | ||
| 17 | |||
| 18 | diff --git a/src/log.c b/src/log.c | ||
| 19 | index 8194535a..88f34386 100644 | ||
| 20 | --- a/src/log.c | ||
| 21 | +++ b/src/log.c | ||
| 22 | @@ -161,7 +161,7 @@ static void add_debug_info(StringBuffer *buf) { | ||
| 23 | static size_t modname(const char *filename, size_t filename_len, char *mod) { | ||
| 24 | size_t mlen = filename_len; | ||
| 25 | |||
| 26 | - char *dot = memchr(filename, '.', mlen); | ||
| 27 | + const char *dot = memchr(filename, '.', mlen); | ||
| 28 | if(dot) { | ||
| 29 | mlen = dot - filename; | ||
| 30 | } | ||
| 31 | diff --git a/src/pixmap/pixmap.c b/src/pixmap/pixmap.c | ||
| 32 | index 25105215..9717f22a 100644 | ||
| 33 | --- a/src/pixmap/pixmap.c | ||
| 34 | +++ b/src/pixmap/pixmap.c | ||
| 35 | @@ -49,7 +49,7 @@ void *pixmap_alloc_buffer_for_conversion(const Pixmap *src, PixmapFormat format, | ||
| 36 | } | ||
| 37 | |||
| 38 | static PixmapFileFormatHandler *pixmap_handler_for_filename(const char *file) { | ||
| 39 | - char *ext = strrchr(file, '.'); | ||
| 40 | + const char *ext = strrchr(file, '.'); | ||
| 41 | |||
| 42 | if(!ext || !*(++ext)) { | ||
| 43 | return NULL; | ||
| 44 | diff --git a/src/vfs/pathutil.c b/src/vfs/pathutil.c | ||
| 45 | index f6bd6a80..85ccf5ee 100644 | ||
| 46 | --- a/src/vfs/pathutil.c | ||
| 47 | +++ b/src/vfs/pathutil.c | ||
| 48 | @@ -14,7 +14,7 @@ char *vfs_path_normalize(const char *path, char *out) { | ||
| 49 | const char *p = path; | ||
| 50 | char *o = out; | ||
| 51 | char *last_sep = out - 1; | ||
| 52 | - char *path_end = strchr(path, 0); | ||
| 53 | + const char *path_end = strchr(path, 0); | ||
| 54 | |||
| 55 | #define IS_SEP_OR_NUL(chr) (VFS_IS_PATH_SEPARATOR(chr) || (chr == '\0')) | ||
| 56 | |||
diff --git a/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei/0001-vfs-avoid-unnecessary-recursion-in-vfs_mkparents.patch b/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei/0001-vfs-avoid-unnecessary-recursion-in-vfs_mkparents.patch new file mode 100644 index 0000000000..9f5d7a17d4 --- /dev/null +++ b/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei/0001-vfs-avoid-unnecessary-recursion-in-vfs_mkparents.patch | |||
| @@ -0,0 +1,71 @@ | |||
| 1 | From c9c00a88c10db4ce93ffcc043c661727d2ec9758 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: laochailan <239670+laochailan@users.noreply.github.com> | ||
| 3 | Date: Fri, 13 Feb 2026 20:21:44 -0500 | ||
| 4 | Subject: [PATCH] vfs: avoid unnecessary recursion in vfs_mkparents | ||
| 5 | |||
| 6 | Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com> | ||
| 7 | Upstream-Status: Backport [https://github.com/taisei-project/taisei/commit/f2e074f4a6aecf78b980014ed98f12fc6ddfd016] | ||
| 8 | --- | ||
| 9 | src/vfs/public.c | 43 +++++++++++++++++-------------------------- | ||
| 10 | 1 file changed, 17 insertions(+), 26 deletions(-) | ||
| 11 | |||
| 12 | diff --git a/src/vfs/public.c b/src/vfs/public.c | ||
| 13 | index abaa050f..cfeef83a 100644 | ||
| 14 | --- a/src/vfs/public.c | ||
| 15 | +++ b/src/vfs/public.c | ||
| 16 | @@ -146,38 +146,29 @@ void vfs_mkdir_required(const char *path) { | ||
| 17 | } | ||
| 18 | } | ||
| 19 | |||
| 20 | -static bool vfs_mkparents_recurse(const char *path) { | ||
| 21 | - // FIXME this has stupid space complexity and is probably silly in general; optimize if you care | ||
| 22 | - | ||
| 23 | - char *psep = strrchr(path, VFS_PATH_SEPARATOR); | ||
| 24 | - | ||
| 25 | - if(!psep) { | ||
| 26 | - // parent is root | ||
| 27 | - return true; | ||
| 28 | - } | ||
| 29 | +bool vfs_mkparents(const char *path) { | ||
| 30 | + char p[strlen(path)+1]; | ||
| 31 | + path = vfs_path_normalize(path, p); | ||
| 32 | |||
| 33 | - char p[strlen(path) + 1]; | ||
| 34 | - strcpy(p, path); | ||
| 35 | - psep += p - path; | ||
| 36 | - *psep = 0; | ||
| 37 | + // loop over all parent directories | ||
| 38 | + char *psep = p; | ||
| 39 | + while((psep = strchr(psep, VFS_PATH_SEPARATOR))) { | ||
| 40 | + *psep = 0; | ||
| 41 | |||
| 42 | - VFSInfo i = vfs_query(p); | ||
| 43 | + VFSInfo i = vfs_query(p); | ||
| 44 | + if(i.error) { | ||
| 45 | + return false; | ||
| 46 | + } | ||
| 47 | |||
| 48 | - if(i.error) { | ||
| 49 | - return false; | ||
| 50 | - } | ||
| 51 | + if(!i.exists || !i.is_dir) { | ||
| 52 | + vfs_mkdir(p); | ||
| 53 | + } | ||
| 54 | |||
| 55 | - if(i.exists) { | ||
| 56 | - return i.is_dir; | ||
| 57 | + *psep = VFS_PATH_SEPARATOR; | ||
| 58 | + psep++; | ||
| 59 | } | ||
| 60 | |||
| 61 | - return vfs_mkparents_recurse(p) && vfs_mkdir(p); | ||
| 62 | -} | ||
| 63 | - | ||
| 64 | -bool vfs_mkparents(const char *path) { | ||
| 65 | - char p[strlen(path)+1]; | ||
| 66 | - path = vfs_path_normalize(path, p); | ||
| 67 | - return vfs_mkparents_recurse(p); | ||
| 68 | + return true; | ||
| 69 | } | ||
| 70 | |||
| 71 | char* vfs_repr(const char *path, bool try_syspath) { | ||
diff --git a/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei_1.4.4.bb b/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei_1.4.4.bb index bb08ad4a1c..844e735b69 100644 --- a/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei_1.4.4.bb +++ b/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei_1.4.4.bb | |||
| @@ -20,7 +20,10 @@ DEPENDS = "\ | |||
| 20 | DEPENDS:append:libc-musl = " libucontext" | 20 | DEPENDS:append:libc-musl = " libucontext" |
| 21 | LDFLAGS:append:libc-musl = " -lucontext" | 21 | LDFLAGS:append:libc-musl = " -lucontext" |
| 22 | 22 | ||
| 23 | SRC_URI = "gitsm://github.com/taisei-project/taisei.git;branch=v1.4.x;protocol=https;tag=v${PV}" | 23 | SRC_URI = "gitsm://github.com/taisei-project/taisei.git;branch=v1.4.x;protocol=https;tag=v${PV} \ |
| 24 | file://0001-misc-fix-discarded-const-qualifiers-in-char-pointer-.patch \ | ||
| 25 | file://0001-vfs-avoid-unnecessary-recursion-in-vfs_mkparents.patch \ | ||
| 26 | " | ||
| 24 | SRCREV = "6a484e6e61cc51a22a9943762dc2ff6883914f38" | 27 | SRCREV = "6a484e6e61cc51a22a9943762dc2ff6883914f38" |
| 25 | 28 | ||
| 26 | inherit features_check meson mime mime-xdg pkgconfig | 29 | inherit features_check meson mime mime-xdg pkgconfig |
