{"id":2233329,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2233329/?format=json","web_url":"http://patchwork.ozlabs.org/project/buildroot/patch/20260506083350.3959360-2-buildroot@bubu1.eu/","project":{"id":27,"url":"http://patchwork.ozlabs.org/api/1.1/projects/27/?format=json","name":"Buildroot development","link_name":"buildroot","list_id":"buildroot.buildroot.org","list_email":"buildroot@buildroot.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260506083350.3959360-2-buildroot@bubu1.eu>","date":"2026-05-06T08:33:47","name":"[2/3] package/gcc: fix gcc-14 build with host gcc 16","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"9eafb2f1a1472a983af22e4ab2ac11bd7743f26e","submitter":{"id":87807,"url":"http://patchwork.ozlabs.org/api/1.1/people/87807/?format=json","name":"Marcus Hoffmann","email":"buildroot@bubu1.eu"},"delegate":{"id":89618,"url":"http://patchwork.ozlabs.org/api/1.1/users/89618/?format=json","username":"juju","first_name":"Julien","last_name":"Olivain","email":"juju@cotds.org"},"mbox":"http://patchwork.ozlabs.org/project/buildroot/patch/20260506083350.3959360-2-buildroot@bubu1.eu/mbox/","series":[{"id":502938,"url":"http://patchwork.ozlabs.org/api/1.1/series/502938/?format=json","web_url":"http://patchwork.ozlabs.org/project/buildroot/list/?series=502938","date":"2026-05-06T08:33:46","name":"[1/3] package/gcc: fix gcc-15 build with host gcc 16","version":1,"mbox":"http://patchwork.ozlabs.org/series/502938/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2233329/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2233329/checks/","tags":{},"headers":{"Return-Path":"<buildroot-bounces@buildroot.org>","X-Original-To":["incoming-buildroot@patchwork.ozlabs.org","buildroot@buildroot.org"],"Delivered-To":["patchwork-incoming-buildroot@legolas.ozlabs.org","buildroot@buildroot.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=buildroot.org header.i=@buildroot.org\n header.a=rsa-sha256 header.s=default header.b=qXkoXVRz;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org\n (client-ip=140.211.166.136; helo=smtp3.osuosl.org;\n envelope-from=buildroot-bounces@buildroot.org; receiver=patchwork.ozlabs.org)"],"Received":["from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g9TFQ6yTvz1yJx\n\tfor <incoming-buildroot@patchwork.ozlabs.org>;\n Wed, 06 May 2026 18:34:18 +1000 (AEST)","from localhost (localhost [127.0.0.1])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 0F08660DE1;\n\tWed,  6 May 2026 08:34:16 +0000 (UTC)","from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id C4Xf5tTDGEqi; Wed,  6 May 2026 08:34:13 +0000 (UTC)","from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id E50AC60DEC;\n\tWed,  6 May 2026 08:34:12 +0000 (UTC)","from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n by lists1.osuosl.org (Postfix) with ESMTP id A252A2A8\n for <buildroot@buildroot.org>; Wed,  6 May 2026 08:34:11 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n by smtp4.osuosl.org (Postfix) with ESMTP id 9471F403D3\n for <buildroot@buildroot.org>; Wed,  6 May 2026 08:34:11 +0000 (UTC)","from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id 6n0JChSirgiG for <buildroot@buildroot.org>;\n Wed,  6 May 2026 08:34:09 +0000 (UTC)","from smtp.bubu1.eu (smtp.bubu1.eu [176.9.145.28])\n by smtp4.osuosl.org (Postfix) with ESMTPS id 33C254001F\n for <buildroot@buildroot.org>; Wed,  6 May 2026 08:34:09 +0000 (UTC)","from bubutux.fritz.box (unknown [212.37.174.96])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519MLKEM768 server-signature RSA-PSS (4096 bits)\n server-digest\n SHA256) (No client certificate requested)\n by smtp.bubu1.eu (Postfix) with ESMTPSA id A062F2C88F85;\n Wed, 06 May 2026 10:34:06 +0200 (CEST)"],"X-Virus-Scanned":["amavis at osuosl.org","amavis at osuosl.org"],"X-Comment":"SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=buildroot-bounces@buildroot.org;\n receiver=<UNKNOWN> ","DKIM-Filter":["OpenDKIM Filter v2.11.0 smtp3.osuosl.org E50AC60DEC","OpenDKIM Filter v2.11.0 smtp4.osuosl.org 33C254001F"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=buildroot.org;\n\ts=default; t=1778056453;\n\tbh=3urCXeOXvNrcqSVw6nm8XEKveIxLiu9mUhAZrSl/2qo=;\n\th=To:Cc:Date:In-Reply-To:References:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From:Reply-To:From;\n\tb=qXkoXVRzonIGKfi4LYj0iajyMpK1MGdndIG9vz0MP85Y1mGl2SnsDuqeUbMCszOiS\n\t Yq0TEY+nJ+36ivNj8WbRGHazo/D7ox8NCHHhzbBf9Bu0laaKDMYTaLnvuFVEednNyi\n\t ji1hBgg0Yp7NMh6J+5/+sJ2ykhwFZFKK9gRuTK5C1JG0EphaNZRAn92X0BC7uLz2fo\n\t KwWT/NKCFKBCKRDHL3D2hXynPoN5twqNkXfUb0JQdFd7Uq70+9kdT17yNlqVuZszOT\n\t 1kVHnSlKhsqIdPcDJSzDJmJeZZMdWeWwRD7JkAIWEI8g1hn9YXijhb1sVXNA0I0p/X\n\t 0uRwxHSw6871A==","Received-SPF":"Pass (mailfrom) identity=mailfrom; client-ip=176.9.145.28;\n helo=smtp.bubu1.eu; envelope-from=buildroot@bubu1.eu; receiver=<UNKNOWN>","DMARC-Filter":"OpenDMARC Filter v1.4.2 smtp4.osuosl.org 33C254001F","To":"buildroot@buildroot.org","Cc":"Giulio Benetti <giulio.benetti@benettiengineering.com>,\n Romain Naour <romain.naour@gmail.com>,\n Thomas Petazzoni <thomas.petazzoni@bootlin.com>","Date":"Wed,  6 May 2026 10:33:47 +0200","Message-ID":"<20260506083350.3959360-2-buildroot@bubu1.eu>","X-Mailer":"git-send-email 2.54.0","In-Reply-To":"<20260506083350.3959360-1-buildroot@bubu1.eu>","References":"<20260506083350.3959360-1-buildroot@bubu1.eu>","MIME-Version":"1.0","X-Mailman-Original-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n d=bubu1.eu; s=bubu;\n t=1778056446; bh=PjD+RhczR5ePxFtHFJV5y7QCdtXWnqWS7fUYjgwKODw=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References;\n b=t/GkUhVdgUaOFJvJVITkElI9d0JpDtC9sWRyIEY0+j5h3kZXSSEanHaYlV6fyU/RG\n bogIB1V/Z0+VCh12iL2xJwmlwehV/rKxnOOVJP4LjoJYcOjNpJsvEe+anqUB6F9sjL\n mZVj4uNrNScb9jva9xTj6HuevwU1VyAPIkBDITkZVRTcHwQdBC8guyIHmp+sUFETV9\n Anxdjb4QElWAUPue0mRDSi1Wo3raed/9W1udmHs4x9ZWQefkDqZwFJkvPV0MPTuhr/\n fp0+0cJ4jgePUpGqSvY4aYWrB29fLx7zETKShWQH9qWRprvW7l57PV6qzODm91qNpM\n qazqQvqPiMB1Q==","X-Mailman-Original-Authentication-Results":["smtp4.osuosl.org;\n dmarc=pass (p=reject dis=none)\n header.from=bubu1.eu","smtp4.osuosl.org;\n dkim=pass (2048-bit key) header.d=bubu1.eu header.i=@bubu1.eu\n header.a=rsa-sha256 header.s=bubu header.b=t/GkUhVd"],"Subject":"[Buildroot] [PATCH 2/3] package/gcc: fix gcc-14 build with host gcc\n 16","X-BeenThere":"buildroot@buildroot.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Discussion and development of buildroot <buildroot.buildroot.org>","List-Unsubscribe":"<https://lists.buildroot.org/mailman/options/buildroot>,\n <mailto:buildroot-request@buildroot.org?subject=unsubscribe>","List-Archive":"<http://lists.buildroot.org/pipermail/buildroot/>","List-Post":"<mailto:buildroot@buildroot.org>","List-Help":"<mailto:buildroot-request@buildroot.org?subject=help>","List-Subscribe":"<https://lists.buildroot.org/mailman/listinfo/buildroot>,\n <mailto:buildroot-request@buildroot.org?subject=subscribe>","From":"Marcus Hoffmann via buildroot <buildroot@buildroot.org>","Reply-To":"Marcus Hoffmann <buildroot@bubu1.eu>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"buildroot-bounces@buildroot.org","Sender":"\"buildroot\" <buildroot-bounces@buildroot.org>"},"content":"Backport two patches from upstream gcc-14 maintenance branch. Requires\none more patch on top of the fix for gcc-15.\n\nSigned-off-by: Marcus Hoffmann <buildroot@bubu1.eu>\n---\n ...dy-Make-it-buildable-by-C-11-to-C-26.patch | 261 ++++++++++++++++++\n ...am-and-memory-include-above-safe-cty.patch |  78 ++++++\n 2 files changed, 339 insertions(+)\n create mode 100644 package/gcc/14.3.0/0005--libcody-Make-it-buildable-by-C-11-to-C-26.patch\n create mode 100644 package/gcc/14.3.0/0006-build-Move-sstream-and-memory-include-above-safe-cty.patch","diff":"diff --git a/package/gcc/14.3.0/0005--libcody-Make-it-buildable-by-C-11-to-C-26.patch b/package/gcc/14.3.0/0005--libcody-Make-it-buildable-by-C-11-to-C-26.patch\nnew file mode 100644\nindex 0000000000..f9f983b464\n--- /dev/null\n+++ b/package/gcc/14.3.0/0005--libcody-Make-it-buildable-by-C-11-to-C-26.patch\n@@ -0,0 +1,261 @@\n+From daa3e1ead791bc58208043cfc4595ba1a78cdd34 Mon Sep 17 00:00:00 2001\n+From: Jakub Jelinek <jakub@redhat.com>\n+Date: Fri, 21 Nov 2025 16:25:58 +0100\n+Subject: [PATCH] libcody: Make it buildable by C++11 to C++26\n+\n+The following builds with -std=c++11 and c++14 and c++17 and c++20 and c++23\n+and c++26.\n+\n+I see the u8 string literals are mixed e.g. with strerror, so in\n+-fexec-charset=IBM1047 there will still be garbage, so am not 100% sure if\n+the u8 literals everywhere are worth it either.\n+\n+2025-11-21  Jakub Jelinek  <jakub@redhat.com>\n+\n+\t* cody.hh (S2C): For __cpp_char8_t >= 201811 use char8_t instead of\n+\tchar in argument type.\n+\t(MessageBuffer::Space): Revert 2025-11-15 change.\n+\t(MessageBuffer::Append): For __cpp_char8_t >= 201811 add overload\n+\twith char8_t const * type of first argument.\n+\t(Packet::Packet): Similarly for first argument.\n+\t* client.cc (CommunicationError, Client::ProcessResponse,\n+\tClient::Connect, ConnectResponse, PathnameResponse, OKResponse,\n+\tIncludeTranslateResponse): Cast u8 string literals to (const char *)\n+\twhere needed.\n+\t* server.cc (Server::ProcessRequests, ConnectRequest): Likewise.\n+\n+(cherry picked from commit 07a767c7a50d1daae8ef7d4aba73fe53ad40c0b7)\n+Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>\n+Upstream: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=daa3e1ead791bc58208043cfc4595ba1a78cdd34\n+---\n+ libcody/client.cc | 36 +++++++++++++++++++-----------------\n+ libcody/cody.hh   | 22 ++++++++++++++++++++++\n+ libcody/server.cc | 28 ++++++++++++++--------------\n+ 3 files changed, 55 insertions(+), 31 deletions(-)\n+\n+diff --git a/libcody/client.cc b/libcody/client.cc\n+index ae69d190cb7..147fecdbe50 100644\n+--- a/libcody/client.cc\n++++ b/libcody/client.cc\n+@@ -97,7 +97,7 @@ int Client::CommunicateWithServer ()\n+ \n+ static Packet CommunicationError (int err)\n+ {\n+-  std::string e {u8\"communication error:\"};\n++  std::string e {(const char *) u8\"communication error:\"};\n+   e.append (strerror (err));\n+ \n+   return Packet (Client::PC_ERROR, std::move (e));\n+@@ -110,33 +110,34 @@ Packet Client::ProcessResponse (std::vector<std::string> &words,\n+     {\n+       if (e == EINVAL)\n+ \t{\n+-\t  std::string msg (u8\"malformed string '\");\n++\t  std::string msg ((const char *) u8\"malformed string '\");\n+ \t  msg.append (words[0]);\n+-\t  msg.append (u8\"'\");\n++\t  msg.append ((const char *) u8\"'\");\n+ \t  return Packet (Client::PC_ERROR, std::move (msg));\n+ \t}\n+       else\n+-\treturn Packet (Client::PC_ERROR, u8\"missing response\");\n++\treturn Packet (Client::PC_ERROR, (const char *) u8\"missing response\");\n+     }\n+ \n+   Assert (!words.empty ());\n+-  if (words[0] == u8\"ERROR\")\n++  if (words[0] == (const char *) u8\"ERROR\")\n+     return Packet (Client::PC_ERROR,\n+-\t\t   words.size () == 2 ? words[1]: u8\"malformed error response\");\n++\t\t   words.size () == 2 ? words[1]\n++\t\t   : (const char *) u8\"malformed error response\");\n+ \n+   if (isLast && !read.IsAtEnd ())\n+     return Packet (Client::PC_ERROR,\n+-\t\t   std::string (u8\"unexpected extra response\"));\n++\t\t   std::string ((const char *) u8\"unexpected extra response\"));\n+ \n+   Assert (code < Detail::RC_HWM);\n+   Packet result (responseTable[code] (words));\n+   result.SetRequest (code);\n+   if (result.GetCode () == Client::PC_ERROR && result.GetString ().empty ())\n+     {\n+-      std::string msg {u8\"malformed response '\"};\n++      std::string msg {(const char *) u8\"malformed response '\"};\n+ \n+       read.LexedLine (msg);\n+-      msg.append (u8\"'\");\n++      msg.append ((const char *) u8\"'\");\n+       result.GetString () = std::move (msg);\n+     }\n+   else if (result.GetCode () == Client::PC_CONNECT)\n+@@ -199,7 +200,7 @@ Packet Client::Connect (char const *agent, char const *ident,\n+ \t\t\t  size_t alen, size_t ilen)\n+ {\n+   write.BeginLine ();\n+-  write.AppendWord (u8\"HELLO\");\n++  write.AppendWord ((const char *) u8\"HELLO\");\n+   write.AppendInteger (Version);\n+   write.AppendWord (agent, true, alen);\n+   write.AppendWord (ident, true, ilen);\n+@@ -211,7 +212,8 @@ Packet Client::Connect (char const *agent, char const *ident,\n+ // HELLO $version $agent [$flags]\n+ Packet ConnectResponse (std::vector<std::string> &words)\n+ {\n+-  if (words[0] == u8\"HELLO\" && (words.size () == 3 || words.size () == 4))\n++  if (words[0] == (const char *) u8\"HELLO\"\n++      && (words.size () == 3 || words.size () == 4))\n+     {\n+       char *eptr;\n+       unsigned long val = strtoul (words[1].c_str (), &eptr, 10);\n+@@ -247,7 +249,7 @@ Packet Client::ModuleRepo ()\n+ // PATHNAME $dir | ERROR\n+ Packet PathnameResponse (std::vector<std::string> &words)\n+ {\n+-  if (words[0] == u8\"PATHNAME\" && words.size () == 2)\n++  if (words[0] == (const char *) u8\"PATHNAME\" && words.size () == 2)\n+     return Packet (Client::PC_PATHNAME, std::move (words[1]));\n+ \n+   return Packet (Client::PC_ERROR, u8\"\");\n+@@ -256,7 +258,7 @@ Packet PathnameResponse (std::vector<std::string> &words)\n+ // OK or ERROR\n+ Packet OKResponse (std::vector<std::string> &words)\n+ {\n+-  if (words[0] == u8\"OK\")\n++  if (words[0] == (const char *) u8\"OK\")\n+     return Packet (Client::PC_OK);\n+   else\n+     return Packet (Client::PC_ERROR,\n+@@ -319,11 +321,11 @@ Packet Client::IncludeTranslate (char const *include, Flags flags, size_t ilen)\n+ // PATHNAME $cmifile\n+ Packet IncludeTranslateResponse (std::vector<std::string> &words)\n+ {\n+-  if (words[0] == u8\"BOOL\" && words.size () == 2)\n++  if (words[0] == (const char *) u8\"BOOL\" && words.size () == 2)\n+     {\n+-      if (words[1] == u8\"FALSE\")\n+-\treturn Packet (Client::PC_BOOL, 0);\n+-      else if (words[1] == u8\"TRUE\")\n++      if (words[1] == (const char *) u8\"FALSE\")\n++\treturn Packet (Client::PC_BOOL);\n++      else if (words[1] == (const char *) u8\"TRUE\")\n+ \treturn Packet (Client::PC_BOOL, 1);\n+       else\n+ \treturn Packet (Client::PC_ERROR, u8\"\");\n+diff --git a/libcody/cody.hh b/libcody/cody.hh\n+index 789ce9e70b7..93bce93aa94 100644\n+--- a/libcody/cody.hh\n++++ b/libcody/cody.hh\n+@@ -47,12 +47,21 @@ namespace Detail  {\n+ \n+ // C++11 doesn't have utf8 character literals :(\n+ \n++#if __cpp_char8_t >= 201811\n++template<unsigned I>\n++constexpr char S2C (char8_t const (&s)[I])\n++{\n++  static_assert (I == 2, \"only single octet strings may be converted\");\n++  return s[0];\n++}\n++#else\n+ template<unsigned I>\n+ constexpr char S2C (char const (&s)[I])\n+ {\n+   static_assert (I == 2, \"only single octet strings may be converted\");\n+   return s[0];\n+ }\n++#endif\n+ \n+ /// Internal buffering class.  Used to concatenate outgoing messages\n+ /// and Lex incoming ones.\n+@@ -123,6 +132,13 @@ public:\n+       Space ();\n+     Append (str, maybe_quote, len);\n+   }\n++#if __cpp_char8_t >= 201811\n++  void AppendWord (char8_t const *str, bool maybe_quote = false,\n++\t\t   size_t len = ~size_t (0))\n++  {\n++    AppendWord ((const char *) str, maybe_quote, len);\n++  }\n++#endif\n+   /// Add a word as with AppendWord\n+   /// @param str the string to append\n+   /// @param maybe_quote string might need quoting, as for Append\n+@@ -264,6 +280,12 @@ public:\n+     : string (s), cat (STRING), code (c)\n+   {\n+   }\n++#if __cpp_char8_t >= 201811\n++  Packet (unsigned c, const char8_t *s)\n++    : string ((const char *) s), cat (STRING), code (c)\n++  {\n++  }\n++#endif\n+   Packet (unsigned c, std::vector<std::string> &&v)\n+     : vector (std::move (v)), cat (VECTOR), code (c)\n+   {\n+diff --git a/libcody/server.cc b/libcody/server.cc\n+index e2fa069bb93..c18469fae84 100644\n+--- a/libcody/server.cc\n++++ b/libcody/server.cc\n+@@ -36,12 +36,12 @@ static RequestPair\n+   const requestTable[Detail::RC_HWM] =\n+   {\n+     // Same order as enum RequestCode\n+-    RequestPair {u8\"HELLO\", nullptr},\n+-    RequestPair {u8\"MODULE-REPO\", ModuleRepoRequest},\n+-    RequestPair {u8\"MODULE-EXPORT\", ModuleExportRequest},\n+-    RequestPair {u8\"MODULE-IMPORT\", ModuleImportRequest},\n+-    RequestPair {u8\"MODULE-COMPILED\", ModuleCompiledRequest},\n+-    RequestPair {u8\"INCLUDE-TRANSLATE\", IncludeTranslateRequest},\n++    RequestPair {(const char *) u8\"HELLO\", nullptr},\n++    RequestPair {(const char *) u8\"MODULE-REPO\", ModuleRepoRequest},\n++    RequestPair {(const char *) u8\"MODULE-EXPORT\", ModuleExportRequest},\n++    RequestPair {(const char *) u8\"MODULE-IMPORT\", ModuleImportRequest},\n++    RequestPair {(const char *) u8\"MODULE-COMPILED\", ModuleCompiledRequest},\n++    RequestPair {(const char *) u8\"INCLUDE-TRANSLATE\", IncludeTranslateRequest},\n+   };\n+ }\n+ \n+@@ -135,21 +135,21 @@ void Server::ProcessRequests (void)\n+ \t  std::string msg;\n+ \n+ \t  if (err > 0)\n+-\t    msg = u8\"error processing '\";\n++\t    msg = (const char *) u8\"error processing '\";\n+ \t  else if (ix >= Detail::RC_HWM)\n+-\t    msg = u8\"unrecognized '\";\n++\t    msg = (const char *) u8\"unrecognized '\";\n+ \t  else if (IsConnected () && ix == Detail::RC_CONNECT)\n+-\t    msg = u8\"already connected '\";\n++\t    msg = (const char *) u8\"already connected '\";\n+ \t  else if (!IsConnected () && ix != Detail::RC_CONNECT)\n+-\t    msg = u8\"not connected '\";\n++\t    msg = (const char *) u8\"not connected '\";\n+ \t  else\n+-\t    msg = u8\"malformed '\";\n++\t    msg = (const char *) u8\"malformed '\";\n+ \n+ \t  read.LexedLine (msg);\n+-\t  msg.append (u8\"'\");\n++\t  msg.append ((const char *) u8\"'\");\n+ \t  if (err > 0)\n+ \t    {\n+-\t      msg.append (u8\" \");\n++\t      msg.append ((const char *) u8\" \");\n+ \t      msg.append (strerror (err));\n+ \t    }\n+ \t  resolver->ErrorResponse (this, std::move (msg));\n+@@ -176,7 +176,7 @@ Resolver *ConnectRequest (Server *s, Resolver *r,\n+     return nullptr;\n+ \n+   if (words.size () == 3)\n+-    words.emplace_back (u8\"\");\n++    words.emplace_back ((const char *) u8\"\");\n+   unsigned version = ParseUnsigned (words[1]);\n+   if (version == ~0u)\n+     return nullptr;\n+-- \n+2.54.0\n+\ndiff --git a/package/gcc/14.3.0/0006-build-Move-sstream-and-memory-include-above-safe-cty.patch b/package/gcc/14.3.0/0006-build-Move-sstream-and-memory-include-above-safe-cty.patch\nnew file mode 100644\nindex 0000000000..e48dd91c18\n--- /dev/null\n+++ b/package/gcc/14.3.0/0006-build-Move-sstream-and-memory-include-above-safe-cty.patch\n@@ -0,0 +1,78 @@\n+From 046776dac7cc74bdbab36f450af80644a045858a Mon Sep 17 00:00:00 2001\n+From: Andrew Pinski <quic_apinski@quicinc.com>\n+Date: Mon, 25 Nov 2024 14:03:27 -0800\n+Subject: [PATCH] build: Move sstream and memory include above safe-ctype.h\n+ [PR124830]\n+\n+This picks r15-5661-gf6e00226a4ca6 to older branches, also moving\n+the <memory> include to fix build issues with a C++20 host compiler.\n+\n+sstream in some versions of libstdc++ include locale which might not have been\n+included yet. safe-ctype.h defines the toupper, tolower, etc. as macros so the\n+c++ header files needed to be included before hand as comment in system.h says:\n+/* Include C++ standard headers before \"safe-ctype.h\" to avoid GCC\n+   poisoning the ctype macros through safe-ctype.h */\n+\n+I don't understand how it was working before when memory was included after\n+safe-ctype.h rather than before. But this makes sstream consistent with the\n+other C++ headers.\n+\n+gcc/ChangeLog:\n+\n+\tPR target/117771\n+\tPR c/124830\n+\t* system.h: Move the include of sstream and memory above safe-ctype.h.\n+\n+Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>\n+Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>\n+Upstream: https://gcc.gnu.org/git?p=gcc.git;a=commit;h=046776dac7cc74bdbab36f450af80644a045858a\n+---\n+ gcc/system.h | 21 +++++++++------------\n+ 1 file changed, 9 insertions(+), 12 deletions(-)\n+\n+diff --git a/gcc/system.h b/gcc/system.h\n+index b18482c7190..da331f105ba 100644\n+--- a/gcc/system.h\n++++ b/gcc/system.h\n+@@ -222,6 +222,15 @@ extern int fprintf_unlocked (FILE *, const char *, ...);\n+ #ifdef INCLUDE_FUNCTIONAL\n+ # include <functional>\n+ #endif\n++#ifdef INCLUDE_SSTREAM\n++# include <sstream>\n++#endif\n++/* Some of the headers included by <memory> can use \"abort\" within a\n++   namespace, e.g. \"_VSTD::abort();\", which fails after we use the\n++   preprocessor to redefine \"abort\" as \"fancy_abort\" below.  */\n++#ifdef INCLUDE_MEMORY\n++# include <memory>\n++#endif\n+ # include <cstring>\n+ # include <initializer_list>\n+ # include <new>\n+@@ -758,22 +767,10 @@ private:\n+ #define LIKELY(x) (__builtin_expect ((x), 1))\n+ #define UNLIKELY(x) (__builtin_expect ((x), 0))\n+ \n+-/* Some of the headers included by <memory> can use \"abort\" within a\n+-   namespace, e.g. \"_VSTD::abort();\", which fails after we use the\n+-   preprocessor to redefine \"abort\" as \"fancy_abort\" below.  */\n+-\n+-#ifdef INCLUDE_MEMORY\n+-# include <memory>\n+-#endif\n+-\n+ #ifdef INCLUDE_MUTEX\n+ # include <mutex>\n+ #endif\n+ \n+-#ifdef INCLUDE_SSTREAM\n+-# include <sstream>\n+-#endif\n+-\n+ #ifdef INCLUDE_MALLOC_H\n+ #if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2)\n+ #include <malloc.h>\n+-- \n+2.54.0\n+\n","prefixes":["2/3"]}