libsdl2: Disable libunwind dependency in native builds

libunwind-native currently cannot be added to the class-native DEPENDS
due to the following problem:

https://autobuilder.yoctoproject.org/typhoon/#/builders/91/builds/5624/steps/12/logs/stdio

And without libunwind-native, libsdl2-native config fails errors like:

| -- Checking for one of the modules 'libunwind'
| CMake Error at [...]/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
| Call Stack (most recent call first):
|   CMakeLists.txt:1367 (pkg_search_module)

Ideally, the libunwind issue would be fixed, and then this could be added
to the libsdl2 recipe:

DEPENDS:append:class-native = " libunwind-native"

However, the libunwind problem is not trivial to fix, and requires a
specific setup to reproduce. As an alternative workaround, turn off
libunwind support in the native SDL2 build by disabling the unwind.h
check in the CMake script (this subsequently turns off all the other
libunwind checks). The main user of libsdl2-native is qemu-native, which
does not need libunwind support in SDL2.

(From OE-Core rev: ecd044b09f8715353cbf20b39ce2b1fe9e620631)

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Carlos Rafael Giani
2022-03-29 09:51:01 +02:00
committed by Richard Purdie
parent 91d6c03464
commit ee994c89b6
2 changed files with 39 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
From 50c691e83f81b235bb96ef996dd4568ffaae256f Mon Sep 17 00:00:00 2001
From: Carlos Rafael Giani <crg7475@mailbox.org>
Date: Fri, 18 Mar 2022 12:06:23 +0100
Subject: [PATCH] Disable libunwind in native OE builds by not looking for
libunwind
This is a workaround for this build error:
| -- Checking for one of the modules 'libunwind'
| CMake Error at [...]/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
| Call Stack (most recent call first):
| CMakeLists.txt:1367 (pkg_search_module)
By not looking for the libunwind header, the rest of the libunwind
specific bits in the CMake build script are disabled.
Upstream-Status: Inappropriate [OE specific]
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 64f9fbf..12a4d8f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -862,7 +862,7 @@ if(SDL_LIBC)
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
foreach(_HEADER
stdio.h stdlib.h stddef.h stdarg.h malloc.h memory.h string.h limits.h float.h
- strings.h wchar.h inttypes.h stdint.h ctype.h math.h iconv.h signal.h libunwind.h)
+ strings.h wchar.h inttypes.h stdint.h ctype.h math.h iconv.h signal.h)
string(TOUPPER "HAVE_${_HEADER}" _UPPER)
string(REPLACE "." "_" _HAVE_H ${_UPPER})
check_include_file("${_HEADER}" ${_HAVE_H})
--
2.32.0

View File

@@ -20,6 +20,7 @@ SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \
file://optional-libunwind-generic.patch \
file://0001-sdlchecks.cmake-pass-cflags-to-the-appropriate-cmake.patch \
"
SRC_URI:append:class-native = " file://0001-Disable-libunwind-in-native-OE-builds-by-not-looking.patch"
S = "${WORKDIR}/SDL2-${PV}"