summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-stdint.h-Fix-build-with-newer-clang.patch99
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0002-mount_opts-Fix-the-mount_opts-str-length.patch41
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.14.bb (renamed from meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.13.bb)0
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.14.bb (renamed from meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.13.bb)0
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.14.bb (renamed from meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.13.bb)0
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc.inc4
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc_2.0.14.bb (renamed from meta-initramfs/recipes-devtools/klibc/klibc_2.0.13.bb)0
7 files changed, 143 insertions, 1 deletions
diff --git a/meta-initramfs/recipes-devtools/klibc/files/0001-stdint.h-Fix-build-with-newer-clang.patch b/meta-initramfs/recipes-devtools/klibc/files/0001-stdint.h-Fix-build-with-newer-clang.patch
new file mode 100644
index 0000000000..82d02f9fb3
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-stdint.h-Fix-build-with-newer-clang.patch
@@ -0,0 +1,99 @@
1From 84bfb7a85900446e3cc96a103601052781627043 Mon Sep 17 00:00:00 2001
2From: Florent Revest <revest@chromium.org>
3Date: Mon, 14 Jul 2025 19:25:04 +0200
4Subject: [PATCH 1/2] stdint.h: Fix build with newer clang
5
6Recent versions of Clang introduced definitions for __*INT64_C:
7https://github.com/llvm/llvm-project/commit/33ad474c45e6d7a0de7bc75e15e27cf6cb9ff895
8
9This results in these build errors:
10
11usr/include/bits64/bitsize/stdint.h:27:9: error: '__INT64_C' macro redefined [-Werror,-Wmacro-redefined]
12 27 | #define __INT64_C(c) c ## L
13 | ^
14<built-in>:194:9: note: previous definition is here
15 194 | #define __INT64_C(c) c##L
16 | ^
17
18Renaming these macros to something more unique avoids the errors.
19
20Upstream-Status: Backport [https://git.kernel.org/pub/scm/libs/klibc/klibc.git/commit/?id=1d27e1732f1326eaf98f4624100f83232d843616]
21Signed-off-by: Florent Revest <revest@chromium.org>
22Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
23Signed-off-by: Khem Raj <raj.khem@gmail.com>
24---
25 usr/include/bits32/bitsize/stdint.h | 4 ++--
26 usr/include/bits64/bitsize/stdint.h | 4 ++--
27 usr/include/stdint.h | 10 +++++-----
28 3 files changed, 9 insertions(+), 9 deletions(-)
29
30diff --git a/usr/include/bits32/bitsize/stdint.h b/usr/include/bits32/bitsize/stdint.h
31index 8e444b6..147090b 100644
32--- a/usr/include/bits32/bitsize/stdint.h
33+++ b/usr/include/bits32/bitsize/stdint.h
34@@ -24,8 +24,8 @@ typedef unsigned int uint_fast32_t;
35 typedef int intptr_t;
36 typedef unsigned int uintptr_t;
37
38-#define __INT64_C(c) c ## LL
39-#define __UINT64_C(c) c ## ULL
40+#define __KLIBC_INT64_C(c) c ## LL
41+#define __KLIBC_UINT64_C(c) c ## ULL
42
43 #define __PRI64_RANK "ll"
44 #define __PRIFAST_RANK ""
45diff --git a/usr/include/bits64/bitsize/stdint.h b/usr/include/bits64/bitsize/stdint.h
46index 988e639..5bc64bf 100644
47--- a/usr/include/bits64/bitsize/stdint.h
48+++ b/usr/include/bits64/bitsize/stdint.h
49@@ -24,8 +24,8 @@ typedef unsigned long int uint_fast32_t;
50 typedef long int intptr_t;
51 typedef unsigned long int uintptr_t;
52
53-#define __INT64_C(c) c ## L
54-#define __UINT64_C(c) c ## UL
55+#define __KLIBC_INT64_C(c) c ## L
56+#define __KLIBC_UINT64_C(c) c ## UL
57
58 #define __PRI64_RANK "l"
59 #define __PRIFAST_RANK "l"
60diff --git a/usr/include/stdint.h b/usr/include/stdint.h
61index f64f027..6cda583 100644
62--- a/usr/include/stdint.h
63+++ b/usr/include/stdint.h
64@@ -31,17 +31,17 @@ typedef uint64_t uintmax_t;
65 #define INT8_MIN (-128)
66 #define INT16_MIN (-32768)
67 #define INT32_MIN (-2147483647-1)
68-#define INT64_MIN (__INT64_C(-9223372036854775807)-1)
69+#define INT64_MIN (__KLIBC_INT64_C(-9223372036854775807)-1)
70
71 #define INT8_MAX (127)
72 #define INT16_MAX (32767)
73 #define INT32_MAX (2147483647)
74-#define INT64_MAX (__INT64_C(9223372036854775807))
75+#define INT64_MAX (__KLIBC_INT64_C(9223372036854775807))
76
77 #define UINT8_MAX (255U)
78 #define UINT16_MAX (65535U)
79 #define UINT32_MAX (4294967295U)
80-#define UINT64_MAX (__UINT64_C(18446744073709551615))
81+#define UINT64_MAX (__KLIBC_UINT64_C(18446744073709551615))
82
83 #define INT_LEAST8_MIN INT8_MIN
84 #define INT_LEAST16_MIN INT16_MIN
85@@ -80,12 +80,12 @@ typedef uint64_t uintmax_t;
86 #define INT8_C(c) c
87 #define INT16_C(c) c
88 #define INT32_C(c) c
89-#define INT64_C(c) __INT64_C(c)
90+#define INT64_C(c) __KLIBC_INT64_C(c)
91
92 #define UINT8_C(c) c ## U
93 #define UINT16_C(c) c ## U
94 #define UINT32_C(c) c ## U
95-#define UINT64_C(c) __UINT64_C(c)
96+#define UINT64_C(c) __KLIBC_UINT64_C(c)
97
98 #define INT_LEAST8_C(c) INT8_C(c)
99 #define INT_LEAST16_C(c) INT16_C(c)
diff --git a/meta-initramfs/recipes-devtools/klibc/files/0002-mount_opts-Fix-the-mount_opts-str-length.patch b/meta-initramfs/recipes-devtools/klibc/files/0002-mount_opts-Fix-the-mount_opts-str-length.patch
new file mode 100644
index 0000000000..ad1f7f03a8
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/klibc/files/0002-mount_opts-Fix-the-mount_opts-str-length.patch
@@ -0,0 +1,41 @@
1From eaecc37c86fff0ff951e1930abdb9e51364c2d14 Mon Sep 17 00:00:00 2001
2From: Florent Revest <revest@chromium.org>
3Date: Thu, 10 Jul 2025 19:39:11 +0200
4Subject: [PATCH 2/2] mount_opts: Fix the mount_opts str length
5
6Newer versions of LLVM report:
7
8usr/utils/mount_opts.c:20:3: error: initializer-string for character array is too long, array size is 8 but initializer has size 9 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
9 20 | {"diratime", MS_NODIRATIME, 0, MS_NODIRATIME},
10 | ^~~~~~~~~~
11
12This is indeed a bit odd. "diratime" is 9 bytes long with the \0
13terminator but placed into a struct that uses a static length of 8 bytes
14for that buffer. I suppose this can cause all sorts of undefined
15behaviors in theory but that in practice this never caused anything bad
16because the next field is an unsigned long containing 2048 so the upper
17bytes are 0 and act as string terminators by chance.
18
19Anyway, fixing this helps unblock builds with newer toolchains.
20
21Upstream-Status: Backport [https://git.kernel.org/pub/scm/libs/klibc/klibc.git/commit/?id=f7d9399d1035d2a70067fa6995db7ea02ed0c311]
22Signed-off-by: Florent Revest <revest@chromium.org>
23Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
24Signed-off-by: Khem Raj <raj.khem@gmail.com>
25---
26 usr/utils/mount_opts.h | 2 +-
27 1 file changed, 1 insertion(+), 1 deletion(-)
28
29diff --git a/usr/utils/mount_opts.h b/usr/utils/mount_opts.h
30index cf47cae..5195c88 100644
31--- a/usr/utils/mount_opts.h
32+++ b/usr/utils/mount_opts.h
33@@ -2,7 +2,7 @@
34 #define UTILS_MOUNT_OPTS_H
35
36 struct mount_opts {
37- const char str[8];
38+ const char str[9];
39 unsigned long rwmask;
40 unsigned long rwset;
41 unsigned long rwnoset;
diff --git a/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.13.bb b/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.14.bb
index 4011aa231e..4011aa231e 100644
--- a/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.13.bb
+++ b/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.14.bb
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.13.bb b/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.14.bb
index 0de580781b..0de580781b 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.13.bb
+++ b/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.14.bb
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.13.bb b/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.14.bb
index 2f26093cbe..2f26093cbe 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.13.bb
+++ b/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.14.bb
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc.inc b/meta-initramfs/recipes-devtools/klibc/klibc.inc
index 2af53b18e3..26d4ebc72c 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc.inc
+++ b/meta-initramfs/recipes-devtools/klibc/klibc.inc
@@ -20,6 +20,8 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/libs/klibc/2.0/klibc-${PV}.tar.xz \
20 file://0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch \ 20 file://0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch \
21 file://cross-clang.patch \ 21 file://cross-clang.patch \
22 file://0001-workaround-for-overlapping-sections-in-binary.patch \ 22 file://0001-workaround-for-overlapping-sections-in-binary.patch \
23 file://0001-stdint.h-Fix-build-with-newer-clang.patch \
24 file://0002-mount_opts-Fix-the-mount_opts-str-length.patch \
23 " 25 "
24 26
25ARMPATCHES ?= "" 27ARMPATCHES ?= ""
@@ -27,7 +29,7 @@ ARMPATCHES ?= ""
27ARMPATCHES:arm = " \ 29ARMPATCHES:arm = " \
28 file://armv4-fix-v4bx.patch \ 30 file://armv4-fix-v4bx.patch \
29 " 31 "
30SRC_URI[sha256sum] = "d673a294f742d59368222ff5c38462d81098c55063799de6fb8a7ba3d4af0436" 32SRC_URI[sha256sum] = "281bfb683e196818412af70b8968b7726475a80ff1c4bd67119e6bf5059f9075"
31 33
32S = "${UNPACKDIR}/klibc-${PV}" 34S = "${UNPACKDIR}/klibc-${PV}"
33 35
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc_2.0.13.bb b/meta-initramfs/recipes-devtools/klibc/klibc_2.0.14.bb
index 8dda9a8cdc..8dda9a8cdc 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc_2.0.13.bb
+++ b/meta-initramfs/recipes-devtools/klibc/klibc_2.0.14.bb