* [whinlatter][PATCH 1/2] binutils: Fix build with GLIBC 2.43 on the host
@ 2026-04-07 13:15 Zoltán Böszörményi
2026-04-07 13:15 ` [whinlatter][PATCH 2/2] gcc: Backport a patch to fix " Zoltán Böszörményi
2026-04-07 13:31 ` Patchtest results for [whinlatter][PATCH 1/2] binutils: Fix " patchtest
0 siblings, 2 replies; 4+ messages in thread
From: Zoltán Böszörményi @ 2026-04-07 13:15 UTC (permalink / raw)
To: openembedded-core; +Cc: Martin Jansa, Zoltán Böszörményi
Added a patch to fix a build error in the CALL_UTIL() macro
when built against GLIBC 2.43 on Fedora 44. This fixes
binutils-native.
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
---
.../binutils/binutils-2.45.inc | 1 +
...tect-against-standard-library-macros.patch | 33 +++++++++++++++++++
2 files changed, 34 insertions(+)
create mode 100644 meta/recipes-devtools/binutils/binutils/0001-gprofng-protect-against-standard-library-macros.patch
diff --git a/meta/recipes-devtools/binutils/binutils-2.45.inc b/meta/recipes-devtools/binutils/binutils-2.45.inc
index 16a63cabc5..666b588062 100644
--- a/meta/recipes-devtools/binutils/binutils-2.45.inc
+++ b/meta/recipes-devtools/binutils/binutils-2.45.inc
@@ -46,4 +46,5 @@ SRC_URI = "\
file://0018-CVE-2025-11494.patch \
file://0019-CVE-2025-11839.patch \
file://0020-CVE-2025-11840.patch \
+ file://0001-gprofng-protect-against-standard-library-macros.patch \
"
diff --git a/meta/recipes-devtools/binutils/binutils/0001-gprofng-protect-against-standard-library-macros.patch b/meta/recipes-devtools/binutils/binutils/0001-gprofng-protect-against-standard-library-macros.patch
new file mode 100644
index 0000000000..034b252821
--- /dev/null
+++ b/meta/recipes-devtools/binutils/binutils/0001-gprofng-protect-against-standard-library-macros.patch
@@ -0,0 +1,33 @@
+From 5f66aee7f4bec7a2d8378034116f5e5c3dc50f41 Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@suse.de>
+Date: Sat, 22 Nov 2025 11:29:43 +0100
+Subject: [PATCH] gprofng: protect against standard library macros
+
+The CALL_UTIL macro can expand to an unparsable expression of the argument
+is a macro, like with the new const-preserving standard library macros in
+C23.
+
+ * gprofng/src/collector_module.h (CALL_UTIL): Add parens to not
+ expand its argument if it is a function-like macro.
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=5f66aee7f4bec7a2d8378034116f5e5c3dc50f41]
+---
+ gprofng/src/collector_module.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gprofng/src/collector_module.h b/gprofng/src/collector_module.h
+index b64d69c45ab..859a6dd1f7d 100644
+--- a/gprofng/src/collector_module.h
++++ b/gprofng/src/collector_module.h
+@@ -119,7 +119,7 @@ typedef struct CollectorUtilFuncs
+ extern CollectorUtilFuncs __collector_util_funcs;
+ extern int __collector_dlsym_guard;
+
+-#define CALL_UTIL(x) __collector_util_funcs.x
++#define CALL_UTIL(x) (__collector_util_funcs.x)
+
+ /* The following constants define the meaning of the "void *arg"
+ * argument of getFrameInfo().
+--
+2.53.0
+
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [whinlatter][PATCH 2/2] gcc: Backport a patch to fix build with GLIBC 2.43 on the host
2026-04-07 13:15 [whinlatter][PATCH 1/2] binutils: Fix build with GLIBC 2.43 on the host Zoltán Böszörményi
@ 2026-04-07 13:15 ` Zoltán Böszörményi
2026-04-07 13:31 ` Patchtest results for " patchtest
2026-04-07 13:31 ` Patchtest results for [whinlatter][PATCH 1/2] binutils: Fix " patchtest
1 sibling, 1 reply; 4+ messages in thread
From: Zoltán Böszörményi @ 2026-04-07 13:15 UTC (permalink / raw)
To: openembedded-core; +Cc: Martin Jansa, Zoltán Böszörményi
Added a patch to fix gcc-cross-<arch> built against GLIBC 2.43
on Fedora 44.
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
---
meta/recipes-devtools/gcc/gcc-15.2.inc | 1 +
...dy-Make-it-buildable-by-C-11-to-C-26.patch | 261 ++++++++++++++++++
2 files changed, 262 insertions(+)
create mode 100644 meta/recipes-devtools/gcc/gcc/0001-libcody-Make-it-buildable-by-C-11-to-C-26.patch
diff --git a/meta/recipes-devtools/gcc/gcc-15.2.inc b/meta/recipes-devtools/gcc/gcc-15.2.inc
index d178b25487..aef22f8347 100644
--- a/meta/recipes-devtools/gcc/gcc-15.2.inc
+++ b/meta/recipes-devtools/gcc/gcc-15.2.inc
@@ -73,6 +73,7 @@ SRC_URI = "${BASEURI} \
file://0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch \
file://0025-gcc-testsuite-tweaks-for-mips-OE.patch \
file://0026-fix-pr90579-testcases.patch \
+ file://0001-libcody-Make-it-buildable-by-C-11-to-C-26.patch \
"
UNPACKDIR = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/sources"
diff --git a/meta/recipes-devtools/gcc/gcc/0001-libcody-Make-it-buildable-by-C-11-to-C-26.patch b/meta/recipes-devtools/gcc/gcc/0001-libcody-Make-it-buildable-by-C-11-to-C-26.patch
new file mode 100644
index 0000000000..7ef72cae2e
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc/0001-libcody-Make-it-buildable-by-C-11-to-C-26.patch
@@ -0,0 +1,261 @@
+From 1f0224e8ddb3d3d0bf4c7a11769b193a4df5cc37 Mon Sep 17 00:00:00 2001
+From: Jakub Jelinek <jakub@redhat.com>
+Date: Fri, 21 Nov 2025 16:25:58 +0100
+Subject: [PATCH] libcody: Make it buildable by C++11 to C++26
+
+The following builds with -std=c++11 and c++14 and c++17 and c++20 and c++23
+and c++26.
+
+I see the u8 string literals are mixed e.g. with strerror, so in
+-fexec-charset=IBM1047 there will still be garbage, so am not 100% sure if
+the u8 literals everywhere are worth it either.
+
+2025-11-21 Jakub Jelinek <jakub@redhat.com>
+
+ * cody.hh (S2C): For __cpp_char8_t >= 201811 use char8_t instead of
+ char in argument type.
+ (MessageBuffer::Space): Revert 2025-11-15 change.
+ (MessageBuffer::Append): For __cpp_char8_t >= 201811 add overload
+ with char8_t const * type of first argument.
+ (Packet::Packet): Similarly for first argument.
+ * client.cc (CommunicationError, Client::ProcessResponse,
+ Client::Connect, ConnectResponse, PathnameResponse, OKResponse,
+ IncludeTranslateResponse): Cast u8 string literals to (const char *)
+ where needed.
+ * server.cc (Server::ProcessRequests, ConnectRequest): Likewise.
+
+(cherry picked from commit 07a767c7a50d1daae8ef7d4aba73fe53ad40c0b7)
+
+Upstream-Status: Backport
+---
+ libcody/client.cc | 36 +++++++++++++++++++-----------------
+ libcody/cody.hh | 22 ++++++++++++++++++++++
+ libcody/server.cc | 28 ++++++++++++++--------------
+ 3 files changed, 55 insertions(+), 31 deletions(-)
+
+diff --git a/libcody/client.cc b/libcody/client.cc
+index ae69d190cb7..147fecdbe50 100644
+--- a/libcody/client.cc
++++ b/libcody/client.cc
+@@ -97,7 +97,7 @@ int Client::CommunicateWithServer ()
+
+ static Packet CommunicationError (int err)
+ {
+- std::string e {u8"communication error:"};
++ std::string e {(const char *) u8"communication error:"};
+ e.append (strerror (err));
+
+ return Packet (Client::PC_ERROR, std::move (e));
+@@ -110,33 +110,34 @@ Packet Client::ProcessResponse (std::vector<std::string> &words,
+ {
+ if (e == EINVAL)
+ {
+- std::string msg (u8"malformed string '");
++ std::string msg ((const char *) u8"malformed string '");
+ msg.append (words[0]);
+- msg.append (u8"'");
++ msg.append ((const char *) u8"'");
+ return Packet (Client::PC_ERROR, std::move (msg));
+ }
+ else
+- return Packet (Client::PC_ERROR, u8"missing response");
++ return Packet (Client::PC_ERROR, (const char *) u8"missing response");
+ }
+
+ Assert (!words.empty ());
+- if (words[0] == u8"ERROR")
++ if (words[0] == (const char *) u8"ERROR")
+ return Packet (Client::PC_ERROR,
+- words.size () == 2 ? words[1]: u8"malformed error response");
++ words.size () == 2 ? words[1]
++ : (const char *) u8"malformed error response");
+
+ if (isLast && !read.IsAtEnd ())
+ return Packet (Client::PC_ERROR,
+- std::string (u8"unexpected extra response"));
++ std::string ((const char *) u8"unexpected extra response"));
+
+ Assert (code < Detail::RC_HWM);
+ Packet result (responseTable[code] (words));
+ result.SetRequest (code);
+ if (result.GetCode () == Client::PC_ERROR && result.GetString ().empty ())
+ {
+- std::string msg {u8"malformed response '"};
++ std::string msg {(const char *) u8"malformed response '"};
+
+ read.LexedLine (msg);
+- msg.append (u8"'");
++ msg.append ((const char *) u8"'");
+ result.GetString () = std::move (msg);
+ }
+ else if (result.GetCode () == Client::PC_CONNECT)
+@@ -199,7 +200,7 @@ Packet Client::Connect (char const *agent, char const *ident,
+ size_t alen, size_t ilen)
+ {
+ write.BeginLine ();
+- write.AppendWord (u8"HELLO");
++ write.AppendWord ((const char *) u8"HELLO");
+ write.AppendInteger (Version);
+ write.AppendWord (agent, true, alen);
+ write.AppendWord (ident, true, ilen);
+@@ -211,7 +212,8 @@ Packet Client::Connect (char const *agent, char const *ident,
+ // HELLO $version $agent [$flags]
+ Packet ConnectResponse (std::vector<std::string> &words)
+ {
+- if (words[0] == u8"HELLO" && (words.size () == 3 || words.size () == 4))
++ if (words[0] == (const char *) u8"HELLO"
++ && (words.size () == 3 || words.size () == 4))
+ {
+ char *eptr;
+ unsigned long val = strtoul (words[1].c_str (), &eptr, 10);
+@@ -247,7 +249,7 @@ Packet Client::ModuleRepo ()
+ // PATHNAME $dir | ERROR
+ Packet PathnameResponse (std::vector<std::string> &words)
+ {
+- if (words[0] == u8"PATHNAME" && words.size () == 2)
++ if (words[0] == (const char *) u8"PATHNAME" && words.size () == 2)
+ return Packet (Client::PC_PATHNAME, std::move (words[1]));
+
+ return Packet (Client::PC_ERROR, u8"");
+@@ -256,7 +258,7 @@ Packet PathnameResponse (std::vector<std::string> &words)
+ // OK or ERROR
+ Packet OKResponse (std::vector<std::string> &words)
+ {
+- if (words[0] == u8"OK")
++ if (words[0] == (const char *) u8"OK")
+ return Packet (Client::PC_OK);
+ else
+ return Packet (Client::PC_ERROR,
+@@ -319,11 +321,11 @@ Packet Client::IncludeTranslate (char const *include, Flags flags, size_t ilen)
+ // PATHNAME $cmifile
+ Packet IncludeTranslateResponse (std::vector<std::string> &words)
+ {
+- if (words[0] == u8"BOOL" && words.size () == 2)
++ if (words[0] == (const char *) u8"BOOL" && words.size () == 2)
+ {
+- if (words[1] == u8"FALSE")
+- return Packet (Client::PC_BOOL, 0);
+- else if (words[1] == u8"TRUE")
++ if (words[1] == (const char *) u8"FALSE")
++ return Packet (Client::PC_BOOL);
++ else if (words[1] == (const char *) u8"TRUE")
+ return Packet (Client::PC_BOOL, 1);
+ else
+ return Packet (Client::PC_ERROR, u8"");
+diff --git a/libcody/cody.hh b/libcody/cody.hh
+index 789ce9e70b7..93bce93aa94 100644
+--- a/libcody/cody.hh
++++ b/libcody/cody.hh
+@@ -47,12 +47,21 @@ namespace Detail {
+
+ // C++11 doesn't have utf8 character literals :(
+
++#if __cpp_char8_t >= 201811
++template<unsigned I>
++constexpr char S2C (char8_t const (&s)[I])
++{
++ static_assert (I == 2, "only single octet strings may be converted");
++ return s[0];
++}
++#else
+ template<unsigned I>
+ constexpr char S2C (char const (&s)[I])
+ {
+ static_assert (I == 2, "only single octet strings may be converted");
+ return s[0];
+ }
++#endif
+
+ /// Internal buffering class. Used to concatenate outgoing messages
+ /// and Lex incoming ones.
+@@ -123,6 +132,13 @@ public:
+ Space ();
+ Append (str, maybe_quote, len);
+ }
++#if __cpp_char8_t >= 201811
++ void AppendWord (char8_t const *str, bool maybe_quote = false,
++ size_t len = ~size_t (0))
++ {
++ AppendWord ((const char *) str, maybe_quote, len);
++ }
++#endif
+ /// Add a word as with AppendWord
+ /// @param str the string to append
+ /// @param maybe_quote string might need quoting, as for Append
+@@ -264,6 +280,12 @@ public:
+ : string (s), cat (STRING), code (c)
+ {
+ }
++#if __cpp_char8_t >= 201811
++ Packet (unsigned c, const char8_t *s)
++ : string ((const char *) s), cat (STRING), code (c)
++ {
++ }
++#endif
+ Packet (unsigned c, std::vector<std::string> &&v)
+ : vector (std::move (v)), cat (VECTOR), code (c)
+ {
+diff --git a/libcody/server.cc b/libcody/server.cc
+index e2fa069bb93..c18469fae84 100644
+--- a/libcody/server.cc
++++ b/libcody/server.cc
+@@ -36,12 +36,12 @@ static RequestPair
+ const requestTable[Detail::RC_HWM] =
+ {
+ // Same order as enum RequestCode
+- RequestPair {u8"HELLO", nullptr},
+- RequestPair {u8"MODULE-REPO", ModuleRepoRequest},
+- RequestPair {u8"MODULE-EXPORT", ModuleExportRequest},
+- RequestPair {u8"MODULE-IMPORT", ModuleImportRequest},
+- RequestPair {u8"MODULE-COMPILED", ModuleCompiledRequest},
+- RequestPair {u8"INCLUDE-TRANSLATE", IncludeTranslateRequest},
++ RequestPair {(const char *) u8"HELLO", nullptr},
++ RequestPair {(const char *) u8"MODULE-REPO", ModuleRepoRequest},
++ RequestPair {(const char *) u8"MODULE-EXPORT", ModuleExportRequest},
++ RequestPair {(const char *) u8"MODULE-IMPORT", ModuleImportRequest},
++ RequestPair {(const char *) u8"MODULE-COMPILED", ModuleCompiledRequest},
++ RequestPair {(const char *) u8"INCLUDE-TRANSLATE", IncludeTranslateRequest},
+ };
+ }
+
+@@ -135,21 +135,21 @@ void Server::ProcessRequests (void)
+ std::string msg;
+
+ if (err > 0)
+- msg = u8"error processing '";
++ msg = (const char *) u8"error processing '";
+ else if (ix >= Detail::RC_HWM)
+- msg = u8"unrecognized '";
++ msg = (const char *) u8"unrecognized '";
+ else if (IsConnected () && ix == Detail::RC_CONNECT)
+- msg = u8"already connected '";
++ msg = (const char *) u8"already connected '";
+ else if (!IsConnected () && ix != Detail::RC_CONNECT)
+- msg = u8"not connected '";
++ msg = (const char *) u8"not connected '";
+ else
+- msg = u8"malformed '";
++ msg = (const char *) u8"malformed '";
+
+ read.LexedLine (msg);
+- msg.append (u8"'");
++ msg.append ((const char *) u8"'");
+ if (err > 0)
+ {
+- msg.append (u8" ");
++ msg.append ((const char *) u8" ");
+ msg.append (strerror (err));
+ }
+ resolver->ErrorResponse (this, std::move (msg));
+@@ -176,7 +176,7 @@ Resolver *ConnectRequest (Server *s, Resolver *r,
+ return nullptr;
+
+ if (words.size () == 3)
+- words.emplace_back (u8"");
++ words.emplace_back ((const char *) u8"");
+ unsigned version = ParseUnsigned (words[1]);
+ if (version == ~0u)
+ return nullptr;
+--
+2.53.0
+
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Patchtest results for [whinlatter][PATCH 1/2] binutils: Fix build with GLIBC 2.43 on the host
2026-04-07 13:15 [whinlatter][PATCH 1/2] binutils: Fix build with GLIBC 2.43 on the host Zoltán Böszörményi
2026-04-07 13:15 ` [whinlatter][PATCH 2/2] gcc: Backport a patch to fix " Zoltán Böszörményi
@ 2026-04-07 13:31 ` patchtest
1 sibling, 0 replies; 4+ messages in thread
From: patchtest @ 2026-04-07 13:31 UTC (permalink / raw)
To: Zoltán Böszörményi; +Cc: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 2170 bytes --]
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:
---
Testing patch /home/patchtest/share/mboxes/whinlatter-1-2-binutils-Fix-build-with-GLIBC-2.43-on-the-host.patch
FAIL: test Signed-off-by presence: A patch file has been added without a Signed-off-by tag: '0001-gprofng-protect-against-standard-library-macros.patch' (test_patch.TestPatch.test_signed_off_by_presence)
PASS: test CVE tag format (test_patch.TestPatch.test_cve_tag_format)
PASS: test Signed-off-by presence (test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test Upstream-Status presence (test_patch.TestPatch.test_upstream_status_presence_format)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message presence (test_mbox.TestMbox.test_commit_message_presence)
PASS: test commit message user tags (test_mbox.TestMbox.test_commit_message_user_tags)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)
PASS: test target mailing list (test_mbox.TestMbox.test_target_mailing_list)
SKIP: pretest pylint: No python related patches, skipping test (test_python_pylint.PyLint.pretest_pylint)
SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test pylint: No python related patches, skipping test (test_python_pylint.PyLint.test_pylint)
SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head)
---
Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!
^ permalink raw reply [flat|nested] 4+ messages in thread
* Patchtest results for [whinlatter][PATCH 2/2] gcc: Backport a patch to fix build with GLIBC 2.43 on the host
2026-04-07 13:15 ` [whinlatter][PATCH 2/2] gcc: Backport a patch to fix " Zoltán Böszörményi
@ 2026-04-07 13:31 ` patchtest
0 siblings, 0 replies; 4+ messages in thread
From: patchtest @ 2026-04-07 13:31 UTC (permalink / raw)
To: Zoltán Böszörményi; +Cc: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 2179 bytes --]
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:
---
Testing patch /home/patchtest/share/mboxes/whinlatter-2-2-gcc-Backport-a-patch-to-fix-build-with-GLIBC-2.43-on-the-host.patch
FAIL: test Signed-off-by presence: A patch file has been added without a Signed-off-by tag: '0001-libcody-Make-it-buildable-by-C-11-to-C-26.patch' (test_patch.TestPatch.test_signed_off_by_presence)
PASS: test CVE tag format (test_patch.TestPatch.test_cve_tag_format)
PASS: test Signed-off-by presence (test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test Upstream-Status presence (test_patch.TestPatch.test_upstream_status_presence_format)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message presence (test_mbox.TestMbox.test_commit_message_presence)
PASS: test commit message user tags (test_mbox.TestMbox.test_commit_message_user_tags)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)
PASS: test target mailing list (test_mbox.TestMbox.test_target_mailing_list)
SKIP: pretest pylint: No python related patches, skipping test (test_python_pylint.PyLint.pretest_pylint)
SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test pylint: No python related patches, skipping test (test_python_pylint.PyLint.test_pylint)
SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head)
---
Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-04-07 13:31 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-07 13:15 [whinlatter][PATCH 1/2] binutils: Fix build with GLIBC 2.43 on the host Zoltán Böszörményi
2026-04-07 13:15 ` [whinlatter][PATCH 2/2] gcc: Backport a patch to fix " Zoltán Böszörményi
2026-04-07 13:31 ` Patchtest results for " patchtest
2026-04-07 13:31 ` Patchtest results for [whinlatter][PATCH 1/2] binutils: Fix " patchtest
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox