Re: [PATCH v2] libsdl2: Fix build when libunwind is not used

Carlos Rafael Giani

"MACHINE=qemux86-64 bitbake libsdl2-native" still fails with a similar error:

| CMake Error at /home/test/yocto-master/poky/build/tmp/work/x86_64-linux/libsdl2-native/2.0.20-r0/recipe-sysroot-native/usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:890 (message):
|   None of the required 'libunwind' found

This is triggered by the "pkg_search_module(UNWIND REQUIRED libunwind)" line right above the one that is modified by this patch.

Any idea what is going on?

On 07.01.22 21:34, Alexander Kanavin wrote:

Thanks :)


On Fri, 7 Jan 2022 at 20:23, Khem Raj <raj.khem@...> wrote:
clang provides libunwind.h and cmake adds a check to
find libunwind when this header is detected, which was
not the case with automake. The check however is expecting
specific unwinder implementation which provides libunwind-generic
solib, this is not a standard library that all implementations
will provide, therefore make this check optional.

Signed-off-by: Khem Raj <raj.khem@...>
Cc: Andreas Müller <schnitzeltony@...>
v2: Udate patch status to submitted

 .../libsdl2/optional-libunwind-generic.patch   | 18 ++++++++++++++++++
 .../recipes-graphics/libsdl2/ |  1 +
 2 files changed, 19 insertions(+)
 create mode 100644 meta/recipes-graphics/libsdl2/libsdl2/optional-libunwind-generic.patch

diff --git a/meta/recipes-graphics/libsdl2/libsdl2/optional-libunwind-generic.patch b/meta/recipes-graphics/libsdl2/libsdl2/optional-libunwind-generic.patch
new file mode 100644
index 00000000000..757b99a5f68
--- /dev/null
+++ b/meta/recipes-graphics/libsdl2/libsdl2/optional-libunwind-generic.patch
@@ -0,0 +1,18 @@
+Do not error when libunwind-generic is not found, Not all
+implementations of libunwind will provide this library therefore
+do not make it hard error if its not found.
+Upstream-Status: Submitted []
+Signed-off-by: Khem Raj <raj.khem@...>
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1358,7 +1358,7 @@ elseif(UNIX AND NOT APPLE AND NOT ANDROI
+       if(HAVE_LIBUNWIND_H)
+         # We've already found the header, so REQUIRE the lib to be present
+         pkg_search_module(UNWIND REQUIRED libunwind)
+-        pkg_search_module(UNWIND_GENERIC REQUIRED libunwind-generic)
++        pkg_search_module(UNWIND_GENERIC libunwind-generic)
+       endif()
+     endif()
diff --git a/meta/recipes-graphics/libsdl2/ b/meta/recipes-graphics/libsdl2/
index 893386343a7..1559d5e9425 100644
--- a/meta/recipes-graphics/libsdl2/
+++ b/meta/recipes-graphics/libsdl2/
@@ -18,6 +18,7 @@ PROVIDES = "virtual/libsdl2"

 SRC_URI = "${PV}.tar.gz \
            file://0001-Fix-build-against-wayland-1.20.patch \
+           file://optional-libunwind-generic.patch \

 S = "${WORKDIR}/SDL2-${PV}"

Join { to automatically receive all group messages.