diff mbox series

[meta-mingw,1/2] Fix up openembedded bbappends

Message ID 20250611100919.1067444-1-samuli.piippo@qt.io
State New
Headers show
Series [meta-mingw,1/2] Fix up openembedded bbappends | expand

Commit Message

Samuli Piippo June 11, 2025, 10:09 a.m. UTC
Due to typo in the folder name, the bbappends in dynamic-layers for
meta-openembedded were never actually used. Update all bbappends
to work against latest recipes and patch protobuf to work with GCC 15.

Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
---
 .../abseil-cpp/abseil-cpp_%.bbappend          |  0
 .../recipes-devtools/grpc/grpc_%.bbappend     |  1 +
 .../protobuf-c/protobuf-c_%.bbappend          |  0
 .../0001-Disable-musttail-for-mingw.patch     | 43 +++++++++++++++++++
 .../protobuf/protobuf_%.bbappend              |  4 ++
 .../recipes-support/c-ares/c-ares_%.bbappend  |  1 +
 .../recipes-support/re2/re2_%.bbappend}       |  0
 .../protobuf/protobuf_%.bbappend              |  1 -
 .../recipes-support/c-ares/c-ares_%.bbappend  |  2 -
 .../recipes-support/re2/re2_%.bbappend        |  2 -
 10 files changed, 49 insertions(+), 5 deletions(-)
 rename dynamic-layers/{openembedded-layers => openembedded-layer}/recipes-devtools/abseil-cpp/abseil-cpp_%.bbappend (100%)
 create mode 100644 dynamic-layers/openembedded-layer/recipes-devtools/grpc/grpc_%.bbappend
 rename dynamic-layers/{openembedded-layers => openembedded-layer}/recipes-devtools/protobuf-c/protobuf-c_%.bbappend (100%)
 create mode 100644 dynamic-layers/openembedded-layer/recipes-devtools/protobuf/protobuf/0001-Disable-musttail-for-mingw.patch
 create mode 100644 dynamic-layers/openembedded-layer/recipes-devtools/protobuf/protobuf_%.bbappend
 create mode 100644 dynamic-layers/openembedded-layer/recipes-support/c-ares/c-ares_%.bbappend
 rename dynamic-layers/{openembedded-layers/recipes-devtools/grpc/grpc_%.bbappend => openembedded-layer/recipes-support/re2/re2_%.bbappend} (100%)
 delete mode 100644 dynamic-layers/openembedded-layers/recipes-devtools/protobuf/protobuf_%.bbappend
 delete mode 100644 dynamic-layers/openembedded-layers/recipes-support/c-ares/c-ares_%.bbappend
 delete mode 100644 dynamic-layers/openembedded-layers/recipes-support/re2/re2_%.bbappend
diff mbox series

Patch

diff --git a/dynamic-layers/openembedded-layers/recipes-devtools/abseil-cpp/abseil-cpp_%.bbappend b/dynamic-layers/openembedded-layer/recipes-devtools/abseil-cpp/abseil-cpp_%.bbappend
similarity index 100%
rename from dynamic-layers/openembedded-layers/recipes-devtools/abseil-cpp/abseil-cpp_%.bbappend
rename to dynamic-layers/openembedded-layer/recipes-devtools/abseil-cpp/abseil-cpp_%.bbappend
diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/grpc/grpc_%.bbappend b/dynamic-layers/openembedded-layer/recipes-devtools/grpc/grpc_%.bbappend
new file mode 100644
index 0000000..b73a8ea
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-devtools/grpc/grpc_%.bbappend
@@ -0,0 +1 @@ 
+EXTRA_OECMAKE:remove:mingw32 = "-DBUILD_SHARED_LIBS=ON"
diff --git a/dynamic-layers/openembedded-layers/recipes-devtools/protobuf-c/protobuf-c_%.bbappend b/dynamic-layers/openembedded-layer/recipes-devtools/protobuf-c/protobuf-c_%.bbappend
similarity index 100%
rename from dynamic-layers/openembedded-layers/recipes-devtools/protobuf-c/protobuf-c_%.bbappend
rename to dynamic-layers/openembedded-layer/recipes-devtools/protobuf-c/protobuf-c_%.bbappend
diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/protobuf/protobuf/0001-Disable-musttail-for-mingw.patch b/dynamic-layers/openembedded-layer/recipes-devtools/protobuf/protobuf/0001-Disable-musttail-for-mingw.patch
new file mode 100644
index 0000000..0cd734a
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-devtools/protobuf/protobuf/0001-Disable-musttail-for-mingw.patch
@@ -0,0 +1,43 @@ 
+From 321bfa7806f709ef6ab42a1c23aa1a44773ef5c2 Mon Sep 17 00:00:00 2001
+From: Samuli Piippo <samuli.piippo@qt.io>
+Date: Wed, 4 Jun 2025 07:07:42 +0000
+Subject: [PATCH] Disable musttail for mingw
+
+Workaround for GCC 15 build issue with mingw:
+
+In static member function 'static const char* google::protobuf::internal::TcParser::MiniParse(google::protobuf::MessageLite*, const char*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcFieldData, const google:
+:protobuf::internal::TcParseTableBase*, uint64_t) [with bool export_called_function = false]',
+    inlined from 'static const char* google::protobuf::internal::TcParser::MiniParse(google::protobuf::MessageLite*, const char*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcFieldData, const google::protobuf
+::internal::TcParseTableBase*, uint64_t)' at src/google/protobuf/generated_message_tctable_lite.cc:323:44:
+src/google/protobuf/generated_message_tctable_lite.cc:256:37: error: cannot tail-call: callee required more stack slots than the caller
+  256 |     PROTOBUF_MUSTTAIL return table->fallback(PROTOBUF_TC_PARAM_PASS);
+      |                              ~~~~~~~^~~~~~~~
+src/google/protobuf/generated_message_tctable_lite.cc:318:36: error: cannot tail-call: callee required more stack slots than the caller
+  318 |   PROTOBUF_MUSTTAIL return parse_fn(PROTOBUF_TC_PARAM_PASS);
+      |                            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
+
+https://github.com/protocolbuffers/protobuf/issues/21625
+
+Upstream-Status: Pending
+---
+ src/google/protobuf/port_def.inc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc
+index 56f995e45e..bc7a01e534 100644
+--- a/src/google/protobuf/port_def.inc
++++ b/src/google/protobuf/port_def.inc
+@@ -228,11 +228,12 @@ static_assert(PROTOBUF_ABSL_MIN(20230125, 3),
+ #endif
+ #if ABSL_HAVE_CPP_ATTRIBUTE(clang::musttail) && !defined(__arm__) &&  \
+     !defined(_ARCH_PPC) && !defined(__wasm__) &&                      \
+-    !(defined(_MSC_VER) && defined(_M_IX86)) && !defined(__i386__)
++    !(defined(_MSC_VER) && defined(_M_IX86)) && !defined(__i386__) && !defined(__MINGW32__)
+ // Compilation fails on ARM32: b/195943306
+ // Compilation fails on powerpc64le: b/187985113
+ // Compilation fails on X86 Windows:
+ // https://github.com/llvm/llvm-project/issues/53271
++// Compilation fails on MINGW: https://github.com/protocolbuffers/protobuf/issues/21625
+ #define PROTOBUF_MUSTTAIL [[clang::musttail]]
+ #define PROTOBUF_TAILCALL true
+ #else
diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/protobuf/protobuf_%.bbappend b/dynamic-layers/openembedded-layer/recipes-devtools/protobuf/protobuf_%.bbappend
new file mode 100644
index 0000000..d80d3ce
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-devtools/protobuf/protobuf_%.bbappend
@@ -0,0 +1,4 @@ 
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+SRC_URI:append:mingw32 = " file://0001-Disable-musttail-for-mingw.patch"
+
+EXTRA_OECMAKE:remove:mingw32 = "-Dprotobuf_BUILD_SHARED_LIBS=ON"
diff --git a/dynamic-layers/openembedded-layer/recipes-support/c-ares/c-ares_%.bbappend b/dynamic-layers/openembedded-layer/recipes-support/c-ares/c-ares_%.bbappend
new file mode 100644
index 0000000..94cd077
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-support/c-ares/c-ares_%.bbappend
@@ -0,0 +1 @@ 
+EXTRA_OECMAKE:append:mingw32 = " -DCARES_SHARED=OFF"
diff --git a/dynamic-layers/openembedded-layers/recipes-devtools/grpc/grpc_%.bbappend b/dynamic-layers/openembedded-layer/recipes-support/re2/re2_%.bbappend
similarity index 100%
rename from dynamic-layers/openembedded-layers/recipes-devtools/grpc/grpc_%.bbappend
rename to dynamic-layers/openembedded-layer/recipes-support/re2/re2_%.bbappend
diff --git a/dynamic-layers/openembedded-layers/recipes-devtools/protobuf/protobuf_%.bbappend b/dynamic-layers/openembedded-layers/recipes-devtools/protobuf/protobuf_%.bbappend
deleted file mode 100644
index d350e38..0000000
--- a/dynamic-layers/openembedded-layers/recipes-devtools/protobuf/protobuf_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@ 
-EXTRA_OECONF:append:mingw32 = " --disable-shared"
diff --git a/dynamic-layers/openembedded-layers/recipes-support/c-ares/c-ares_%.bbappend b/dynamic-layers/openembedded-layers/recipes-support/c-ares/c-ares_%.bbappend
deleted file mode 100644
index 8ef58f9..0000000
--- a/dynamic-layers/openembedded-layers/recipes-support/c-ares/c-ares_%.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@ 
-EXTRA_OECMAKE:append:mingw32 = "-DCARES_SHARED=OFF"
-EXTRA_OECMAKE:append:mingw32 = "-DCARES_STATIC=ON"
diff --git a/dynamic-layers/openembedded-layers/recipes-support/re2/re2_%.bbappend b/dynamic-layers/openembedded-layers/recipes-support/re2/re2_%.bbappend
deleted file mode 100644
index 16bb5a0..0000000
--- a/dynamic-layers/openembedded-layers/recipes-support/re2/re2_%.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@ 
-EXTRA_OECMAKE:remove:mingw32 = "-DBUILD_SHARED_LIBS=ON"
-EXTRA_OECMAKE:append:mingw32 = "-DBUILD_SHARED_LIBS=OFF"