new file mode 100644
@@ -0,0 +1,43 @@
+From a6cd376b9ebcb4afc9ab06bce23b9bd909811ece Mon Sep 17 00:00:00 2001
+From: Christopher Obbard <christopher.obbard@linaro.org>
+Date: Thu, 13 Jun 2024 09:49:53 +0100
+Subject: [PATCH] Allow disabling autodetection of subunit library
+
+It can be useful to avoid linking to subunit when we are building the check
+library for the host, e.g. in a buildroot recipe, where the built check is
+linked into other applications which are used on the host to build images.
+
+These applications are built with the host's cross-compiler and can use
+the host's pkgconfig to determine if libraries are available. When check
+is linked against other libraries, it can fail this check for subunit.
+
+Allow disabling the autodetection of subunit with a configure flag
+-DENABLE_SUBUNIT_EXT=OFF
+
+Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org>
+
+Upstream-Status: Submitted [https://github.com/libcheck/check/pull/353/]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ CMakeLists.txt | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2ee580bc..6b36015b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -393,7 +393,13 @@ if (HAVE_LIBRT)
+ ADD_DEFINITIONS(-DHAVE_LIBRT=1)
+ endif (HAVE_LIBRT)
+
+-check_library_exists(subunit subunit_test_start "" HAVE_SUBUNIT)
++# Allow disabling subunit
++IF(ENABLE_SUBUNIT_EXT)
++ check_library_exists(subunit subunit_test_start "" HAVE_SUBUNIT)
++ELSE(ENABLE_SUBUNIT_EXT)
++ set(HAVE_SUBUNIT, false)
++ENDIF(ENABLE_SUBUNIT_EXT)
++
+ if (HAVE_SUBUNIT)
+ set(SUBUNIT "subunit")
+ set(ENABLE_SUBUNIT 1)
@@ -11,7 +11,8 @@ LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=2d5025d4aa3495befef8f17206a5b0a1"
SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/check-${PV}.tar.gz \
- file://automake-output.patch"
+ file://automake-output.patch \
+ file://subunit.patch"
SRC_URI[sha256sum] = "a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a"
GITHUB_BASE_URI = "https://github.com/libcheck/check/releases/"
@@ -22,6 +23,7 @@ inherit cmake pkgconfig texinfo github-releases
RREPLACES:${PN} = "check (<= 0.9.5)"
EXTRA_OECMAKE:append:class-target = " -DAWK_PATH=${bindir}/awk"
+EXTRA_OECMAKE = "-DENABLE_SUBUNIT_EXT=OFF"
do_install:append:class-native() {
create_cmdline_shebang_wrapper ${D}${bindir}/checkmk
@@ -34,4 +36,3 @@ PACKAGES =+ "checkmk"
FILES:checkmk = "${bindir}/checkmk"
RDEPENDS:checkmk = "gawk"
-
We don't have a recipe for subunit in core (or any layer in the layer index), and unfortunately a bug in the CMakeLists means that the native build can detect subunit on the host (so host contamination) and only half-enable it, so the build fails. Take a patch from upstream's github to add an option for subunit, and explicitly disable it. Signed-off-by: Ross Burton <ross.burton@arm.com> --- .../libcheck/libcheck/subunit.patch | 43 +++++++++++++++++++ .../libcheck/libcheck_0.15.2.bb | 5 ++- 2 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-support/libcheck/libcheck/subunit.patch