aboutsummaryrefslogtreecommitdiffstats
path: root/meta-boot2qt-distro
diff options
context:
space:
mode:
authorSamuli Piippo <samuli.piippo@qt.io>2023-11-10 10:44:24 +0000
committerSamuli Piippo <samuli.piippo@qt.io>2023-11-13 11:55:07 +0000
commite92acff35ed10960a45a55078b73c8c35516724b (patch)
treeede7817048b9166b11b69ed1733304850985176d /meta-boot2qt-distro
parent3d14769efbfdd1641984ef30c2956a4c912f45f4 (diff)
abseil-cpp: fix mingw build
Add patch to fix mingw build of abseil-cpp undefined reference to `absl::lts_20230802::synchronization_internal::Win32Waiter::Poke()' undefined reference to `absl::lts_20230802::synchronization_internal::Win32Waiter::Win32Waiter()' undefined reference to `absl::lts_20230802::synchronization_internal::Win32Waiter::Post()' undefined reference to `absl::lts_20230802::synchronization_internal::Win32Waiter::Poke()' and include bindir to recipe sysroot to fix protobuf build. | The imported target "absl::log_severity" references the file | | "../nativesdk-protobuf/4.23.4/recipe-sysroot/usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-w64-mingw32/usr/bin/libabsl_log_severity.dll" | | but this file does not exist. These changes were upstreamed to meta-openembedded, but not yet available in nanbield. Update revision to latest used in meta-openembedded/master as patch does not work in the current version used in nanbield branch. Change-Id: Ib746079e81c5ec5d110d3ea9a687bfb47f6a09c1 Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
Diffstat (limited to 'meta-boot2qt-distro')
-rw-r--r--meta-boot2qt-distro/recipes-devtools/abseil-cpp/abseil-cpp/0004-Avoid-using-both-Win32Waiter-and-PthreadWaiter-on-Mi.patch62
-rw-r--r--meta-boot2qt-distro/recipes-devtools/abseil-cpp/abseil-cpp_git.bbappend7
2 files changed, 69 insertions, 0 deletions
diff --git a/meta-boot2qt-distro/recipes-devtools/abseil-cpp/abseil-cpp/0004-Avoid-using-both-Win32Waiter-and-PthreadWaiter-on-Mi.patch b/meta-boot2qt-distro/recipes-devtools/abseil-cpp/abseil-cpp/0004-Avoid-using-both-Win32Waiter-and-PthreadWaiter-on-Mi.patch
new file mode 100644
index 00000000..db559bb1
--- /dev/null
+++ b/meta-boot2qt-distro/recipes-devtools/abseil-cpp/abseil-cpp/0004-Avoid-using-both-Win32Waiter-and-PthreadWaiter-on-Mi.patch
@@ -0,0 +1,62 @@
+From cb7665f39e23e95e2466390c60ee5a410780a3ed Mon Sep 17 00:00:00 2001
+From: Derek Mauro <dmauro@google.com>
+Date: Wed, 8 Nov 2023 09:55:31 -0800
+Subject: [PATCH] Avoid using both Win32Waiter and PthreadWaiter on MinGW, and
+ use StdcppWaiter instead.
+
+There are various flavors of MinGW, some of which support pthread,
+and some of which support Win32. Instead of figuring out which
+platform is being used, just use the generic implementation.
+
+PiperOrigin-RevId: 580565507
+Change-Id: Ia85fd7496f1e6ebdeadb95202f0039e844826118
+Upstream-Status: Backport
+---
+ absl/synchronization/internal/pthread_waiter.h | 4 ++--
+ absl/synchronization/internal/win32_waiter.h | 6 ++++--
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/absl/synchronization/internal/pthread_waiter.h b/absl/synchronization/internal/pthread_waiter.h
+index 206aefa4..23db76ad 100644
+--- a/absl/synchronization/internal/pthread_waiter.h
++++ b/absl/synchronization/internal/pthread_waiter.h
+@@ -16,7 +16,7 @@
+ #ifndef ABSL_SYNCHRONIZATION_INTERNAL_PTHREAD_WAITER_H_
+ #define ABSL_SYNCHRONIZATION_INTERNAL_PTHREAD_WAITER_H_
+
+-#ifndef _WIN32
++#if !defined(_WIN32) && !defined(__MINGW32__)
+ #include <pthread.h>
+
+ #include "absl/base/config.h"
+@@ -55,6 +55,6 @@ class PthreadWaiter : public WaiterCrtp<PthreadWaiter> {
+ ABSL_NAMESPACE_END
+ } // namespace absl
+
+-#endif // ndef _WIN32
++#endif // !defined(_WIN32) && !defined(__MINGW32__)
+
+ #endif // ABSL_SYNCHRONIZATION_INTERNAL_PTHREAD_WAITER_H_
+diff --git a/absl/synchronization/internal/win32_waiter.h b/absl/synchronization/internal/win32_waiter.h
+index 87eb617c..fdab264e 100644
+--- a/absl/synchronization/internal/win32_waiter.h
++++ b/absl/synchronization/internal/win32_waiter.h
+@@ -20,7 +20,8 @@
+ #include <sdkddkver.h>
+ #endif
+
+-#if defined(_WIN32) && _WIN32_WINNT >= _WIN32_WINNT_VISTA
++#if defined(_WIN32) && !defined(__MINGW32__) && \
++ _WIN32_WINNT >= _WIN32_WINNT_VISTA
+
+ #include "absl/base/config.h"
+ #include "absl/synchronization/internal/kernel_timeout.h"
+@@ -65,6 +66,7 @@ class Win32Waiter : public WaiterCrtp<Win32Waiter> {
+ ABSL_NAMESPACE_END
+ } // namespace absl
+
+-#endif // defined(_WIN32) && _WIN32_WINNT >= _WIN32_WINNT_VISTA
++#endif // defined(_WIN32) && !defined(__MINGW32__) &&
++ // _WIN32_WINNT >= _WIN32_WINNT_VISTA
+
+ #endif // ABSL_SYNCHRONIZATION_INTERNAL_WIN32_WAITER_H_
diff --git a/meta-boot2qt-distro/recipes-devtools/abseil-cpp/abseil-cpp_git.bbappend b/meta-boot2qt-distro/recipes-devtools/abseil-cpp/abseil-cpp_git.bbappend
new file mode 100644
index 00000000..24ee6e3d
--- /dev/null
+++ b/meta-boot2qt-distro/recipes-devtools/abseil-cpp/abseil-cpp_git.bbappend
@@ -0,0 +1,7 @@
+PV = "20230802.1"
+SRCREV = "fb3621f4f897824c0dbe0615fa94543df6192f30"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+SRC_URI += "file://0004-Avoid-using-both-Win32Waiter-and-PthreadWaiter-on-Mi.patch"
+
+SYSROOT_DIRS:append:class-nativesdk:mingw32 = " ${bindir}"