From patchwork Mon Feb 9 12:56:19 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 80779 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 24807E81BB7 for ; Mon, 9 Feb 2026 12:56:39 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.46676.1770641792953116393 for ; Mon, 09 Feb 2026 04:56:33 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D5741339 for ; Mon, 9 Feb 2026 04:56:25 -0800 (PST) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id D5BB43F740 for ; Mon, 9 Feb 2026 04:56:31 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH v2 1/9] pkgconfig: inherit the pkgconfig class Date: Mon, 9 Feb 2026 12:56:19 +0000 Message-ID: <20260209125628.640221-1-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 09 Feb 2026 12:56:39 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230788 Building target pkgconfig needs pkgconfig-native because pkgconfig uses pkgconfig to find libglib. Inherit the pkgconfig class so that the pkgconfig recipe does not need to know the details of how pkgconfig is integrated. Native builds use an internal copy of glib to avoid the circular dependency, and the self-dependency on pkgconfig-native is automatically pruned. Signed-off-by: Ross Burton --- meta/recipes-devtools/pkgconfig/pkgconfig_git.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb b/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb index 19b9b6bc9d..d4350be212 100644 --- a/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb +++ b/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb @@ -19,7 +19,7 @@ SRC_URI = "git://gitlab.freedesktop.org/pkg-config/pkg-config.git;branch=master; file://0001-Backport-g-s-size-g-u-intptr-atomics-in-builtin-glib.patch \ " -inherit autotools +inherit autotools pkgconfig # Because of a faulty test, the current auto mode always evaluates to no, # so just continue that behaviour. @@ -29,7 +29,7 @@ EXTRA_OECONF += "--disable-indirect-deps" PACKAGECONFIG ??= "glib" PACKAGECONFIG:class-native = "" -PACKAGECONFIG[glib] = "--without-internal-glib,--with-internal-glib,glib-2.0 pkgconfig-native" +PACKAGECONFIG[glib] = "--without-internal-glib,--with-internal-glib,glib-2.0" BBCLASSEXTEND = "native nativesdk" From patchwork Mon Feb 9 12:56:20 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 80777 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4D057E81BBC for ; Mon, 9 Feb 2026 12:56:39 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.46677.1770641793295807539 for ; Mon, 09 Feb 2026 04:56:33 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 7E5F41063 for ; Mon, 9 Feb 2026 04:56:26 -0800 (PST) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 7CC8A3F740 for ; Mon, 9 Feb 2026 04:56:32 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH v2 2/9] perf: inherit the pkgconfig class Date: Mon, 9 Feb 2026 12:56:20 +0000 Message-ID: <20260209125628.640221-2-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260209125628.640221-1-ross.burton@arm.com> References: <20260209125628.640221-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 09 Feb 2026 12:56:39 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230789 Perf uses pkg-config, so should inherit the class. Also remove the sedding of PKG_CONFIG, we pass it in as an argument to make via EXTRA_OEMAKE so the sed is redundant. Signed-off-by: Ross Burton --- meta/recipes-kernel/perf/perf.bb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb index b69ba2ac12..7a58088462 100644 --- a/meta/recipes-kernel/perf/perf.bb +++ b/meta/recipes-kernel/perf/perf.bb @@ -55,7 +55,7 @@ do_configure[depends] += "virtual/kernel:do_shared_workdir" PROVIDES = "virtual/perf" -inherit linux-kernel-base kernel-arch manpages +inherit linux-kernel-base kernel-arch manpages pkgconfig # needed for building the tools/perf Python bindings inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3targetconfig', '', d)} @@ -349,7 +349,6 @@ do_configure:prepend () { sed -i 's,CC = $(CROSS_COMPILE)gcc,#CC,' ${S}/tools/perf/Makefile.perf sed -i 's,AR = $(CROSS_COMPILE)ar,#AR,' ${S}/tools/perf/Makefile.perf sed -i 's,LD = $(CROSS_COMPILE)ld,#LD,' ${S}/tools/perf/Makefile.perf - sed -i 's,PKG_CONFIG = $(CROSS_COMPILE)pkg-config,#PKG_CONFIG,' ${S}/tools/perf/Makefile.perf fi if [ -e "${S}/tools/lib/api/Makefile" ]; then sed -i 's,CC = $(CROSS_COMPILE)gcc,#CC,' ${S}/tools/lib/api/Makefile From patchwork Mon Feb 9 12:56:21 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 80780 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5A7F9E81BBB for ; Mon, 9 Feb 2026 12:56:39 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.46680.1770641793897398669 for ; Mon, 09 Feb 2026 04:56:34 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 25CBE1516 for ; Mon, 9 Feb 2026 04:56:27 -0800 (PST) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 2419C3F740 for ; Mon, 9 Feb 2026 04:56:33 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH v2 3/9] python3-numpy: backport a Meson patch to fix pkg-config lookups Date: Mon, 9 Feb 2026 12:56:21 +0000 Message-ID: <20260209125628.640221-3-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260209125628.640221-1-ross.burton@arm.com> References: <20260209125628.640221-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 09 Feb 2026 12:56:39 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230790 When Meson uses pkg-config to introspect the Python install it resets PKG_CONFIG_PATH and PKG_CONFIG_LIBDIR to the location that the running python3 says is the library directory. However, when it writes to PKG_CONFIG_LIBDIR it uses the _target_ library directory without prefixing this with the sysroot, which breaks the build if _LIBDIR is the primary search path. This has been fixed in Meson since 1.10.0[1] but numpy has a vendored fork of Meson that is currently at 1.9.2, so backport the specific fix to solve this problem. Signed-off-by: Ross Burton --- .../python3-numpy/0001-python-sysroot.patch | 34 +++++++++++++++++++ .../python/python3-numpy_2.3.5.bb | 1 + 2 files changed, 35 insertions(+) create mode 100644 meta/recipes-devtools/python/python3-numpy/0001-python-sysroot.patch diff --git a/meta/recipes-devtools/python/python3-numpy/0001-python-sysroot.patch b/meta/recipes-devtools/python/python3-numpy/0001-python-sysroot.patch new file mode 100644 index 0000000000..b22c123493 --- /dev/null +++ b/meta/recipes-devtools/python/python3-numpy/0001-python-sysroot.patch @@ -0,0 +1,34 @@ +From c40218577305f5953ef63d943c26a27c5a931770 Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Wed, 21 Jan 2026 14:12:36 +0000 +Subject: [PATCH] Add sysroot to pkgconfig libdir + +When Meson uses pkg-config to introspect the Python install it resets PKG_CONFIG_PATH +and PKG_CONFIG_LIBDIR. However, when it writes to PKG_CONFIG_LIBDIR it uses the +_target_ library directory without prefixing this with the sysroot, which breaks +the build if _LIBDIR is the primary search path. + +This has been fixed in Meson since 1.10.0[1] but numpy has a vendored fork of Meson +that is currently at 1.9.2, so backport the specific fix to solve this problem. + +[1] meson 59c3dd1fd ("python: add a python.build_config option (PEP 739)") + +Upstream-Status: Backport +Signed-off-by: Ross Burton +--- + vendored-meson/meson/mesonbuild/dependencies/python.py | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/vendored-meson/meson/mesonbuild/dependencies/python.py b/vendored-meson/meson/mesonbuild/dependencies/python.py +index 7f9bd20..fdcf714 100644 +--- a/vendored-meson/meson/mesonbuild/dependencies/python.py ++++ b/vendored-meson/meson/mesonbuild/dependencies/python.py +@@ -412,6 +412,8 @@ def python_factory(env: 'Environment', for_machine: 'MachineChoice', + if DependencyMethods.PKGCONFIG in methods: + if from_installation: + pkg_libdir = installation.info['variables'].get('LIBPC') ++ sysroot = env.properties[for_machine].get_sys_root() or '' ++ pkg_libdir = sysroot + pkg_libdir + pkg_embed = '-embed' if embed and mesonlib.version_compare(installation.info['version'], '>=3.8') else '' + pkg_name = f'python-{pkg_version}{pkg_embed}' + diff --git a/meta/recipes-devtools/python/python3-numpy_2.3.5.bb b/meta/recipes-devtools/python/python3-numpy_2.3.5.bb index 55b8091ff8..78972c98d3 100644 --- a/meta/recipes-devtools/python/python3-numpy_2.3.5.bb +++ b/meta/recipes-devtools/python/python3-numpy_2.3.5.bb @@ -11,6 +11,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${SRCNAME}-${PV}.tar.gz \ file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \ file://fix_reproducibility.patch \ file://run-ptest \ + file://0001-python-sysroot.patch \ " SRC_URI[sha256sum] = "784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0" From patchwork Mon Feb 9 12:56:22 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 80781 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6409DE81BC0 for ; Mon, 9 Feb 2026 12:56:39 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.46681.1770641794653962244 for ; Mon, 09 Feb 2026 04:56:34 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id BE5E4339 for ; Mon, 9 Feb 2026 04:56:27 -0800 (PST) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id BF53B3F740 for ; Mon, 9 Feb 2026 04:56:33 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH v2 4/9] classes/pkgconfig: move variable exports to the class Date: Mon, 9 Feb 2026 12:56:22 +0000 Message-ID: <20260209125628.640221-4-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260209125628.640221-1-ross.burton@arm.com> References: <20260209125628.640221-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 09 Feb 2026 12:56:39 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230791 All recipes that use pkg-config should be inheriting the class so this is a no-op change for those, and for recipes that do not use pkg-config will no longer need to rebuild if these variables are changed. Any recipes that use pkg-config but do not inherit the class will fail to build, and this is intentional: those recipes should inherit the class. This commit is simply the move of the exports, the values do not change. Signed-off-by: Ross Burton --- meta/classes-recipe/pkgconfig.bbclass | 7 +++++++ meta/conf/bitbake.conf | 14 +++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/meta/classes-recipe/pkgconfig.bbclass b/meta/classes-recipe/pkgconfig.bbclass index 1e1f3824dd..ea91338d34 100644 --- a/meta/classes-recipe/pkgconfig.bbclass +++ b/meta/classes-recipe/pkgconfig.bbclass @@ -6,3 +6,10 @@ DEPENDS:prepend = "pkgconfig-native " +export PKG_CONFIG_DIR +export PKG_CONFIG_PATH +export PKG_CONFIG_LIBDIR +export PKG_CONFIG_SYSROOT_DIR +export PKG_CONFIG_DISABLE_UNINSTALLED +export PKG_CONFIG_SYSTEM_LIBRARY_PATH +export PKG_CONFIG_SYSTEM_INCLUDE_PATH diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index da873c3f4e..be76c88cce 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -768,13 +768,13 @@ BUILDCFG_NEEDEDVARS[type] = "list" # Other -export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${libdir}/pkgconfig" -export PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig" -export PKG_CONFIG_LIBDIR = "${PKG_CONFIG_DIR}" -export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}" -export PKG_CONFIG_DISABLE_UNINSTALLED = "yes" -export PKG_CONFIG_SYSTEM_LIBRARY_PATH = "${base_libdir}:${libdir}" -export PKG_CONFIG_SYSTEM_INCLUDE_PATH = "${includedir}" +PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${libdir}/pkgconfig" +PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig" +PKG_CONFIG_LIBDIR = "${PKG_CONFIG_DIR}" +PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}" +PKG_CONFIG_DISABLE_UNINSTALLED = "yes" +PKG_CONFIG_SYSTEM_LIBRARY_PATH = "${base_libdir}:${libdir}" +PKG_CONFIG_SYSTEM_INCLUDE_PATH = "${includedir}" # Don't allow git to chdir up past WORKDIR or TMPDIR so that it doesn't detect the OE # repository when building a recipe. From patchwork Mon Feb 9 12:56:23 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 80778 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3C3C0E81BBA for ; Mon, 9 Feb 2026 12:56:39 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.46682.1770641795140227489 for ; Mon, 09 Feb 2026 04:56:35 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 68E8F1063 for ; Mon, 9 Feb 2026 04:56:28 -0800 (PST) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 6761A3F740 for ; Mon, 9 Feb 2026 04:56:34 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH v2 5/9] classes/pkgconfig: rationalise variable usage Date: Mon, 9 Feb 2026 12:56:23 +0000 Message-ID: <20260209125628.640221-5-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260209125628.640221-1-ross.burton@arm.com> References: <20260209125628.640221-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 09 Feb 2026 12:56:39 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230792 Our PKG_CONFIG_* variables were a bit of a mess. First, PKG_CONFIG_DIR is not used by either pkg-config or pkgconf. It's set to (approximately) ${libdir}/pkgconfig but we also want to search ${datadir}/pkgconfig so it isn't actually useful as an intermediate variable. Remove PKG_CONFIG_DIR and replace with the neatest expression for the value we want: ${STAGING_LIBDIR}/pkgconfig. Second, PKG_CONFIG_PATH and PKG_CONFIG_LIBDIR shouldn't be set to the same paths. The semantics of these variables is that PKG_CONFIG_PATH is searched first, followed by either PKG_CONFIG_LIBDIR or the default paths compiled into the pkg-config binary. Currently we set PKG_CONFIG_PATH to (approx.) ${libdir}:${datadir} and PKG_CONFIG_LIBDIR to ${libdir}, so we search libdir twice. Also the default paths embedded in the binary will be incorrect as they point to pkgconfig-native's sysroot, so we absolutely need to set PKG_CONFIG_LIBDIR. Instead, set PKG_CONFIG_LIBDIR to ${libdir}:${datadir} so that the default search path is correct. We can then leave PKG_CONFIG_PATH empty, if a recipe has specific needs it can set that but normally it is not needed anymore. Then bubble these changes out to the few places where the variables are used directly: - Kernel/kconfig interaction where 'pkg-config' needs to read the native files, not target. - The class classes (native, etc) which redefine the values. However, as the values are defined in terms of sysroot variables, we can typically remove assignments from those classes as they are redundant. Signed-off-by: Ross Burton --- meta/classes-recipe/cml1.bbclass | 7 +++---- meta/classes-recipe/cross-canadian.bbclass | 3 +-- meta/classes-recipe/cross.bbclass | 4 ++-- meta/classes-recipe/kernel.bbclass | 8 ++------ meta/classes-recipe/native.bbclass | 1 - meta/classes-recipe/nativesdk.bbclass | 3 --- meta/classes-recipe/pkgconfig.bbclass | 1 - meta/conf/bitbake.conf | 6 +++--- meta/recipes-kernel/linux/linux-yocto.inc | 7 +++---- 9 files changed, 14 insertions(+), 26 deletions(-) diff --git a/meta/classes-recipe/cml1.bbclass b/meta/classes-recipe/cml1.bbclass index 3c2b4da4af..ac65eec4bf 100644 --- a/meta/classes-recipe/cml1.bbclass +++ b/meta/classes-recipe/cml1.bbclass @@ -51,12 +51,11 @@ python do_menuconfig() { mtime = 0 # setup native pkg-config variables (kconfig scripts call pkg-config directly, cannot generically be overriden to pkg-config-native) - d.setVar("PKG_CONFIG_DIR", "${STAGING_DIR_NATIVE}${libdir_native}/pkgconfig") - d.setVar("PKG_CONFIG_PATH", "${PKG_CONFIG_DIR}:${STAGING_DATADIR_NATIVE}/pkgconfig") - d.setVar("PKG_CONFIG_LIBDIR", "${PKG_CONFIG_DIR}") + d.setVar("PKG_CONFIG_PATH", "") + d.setVar("PKG_CONFIG_LIBDIR", "${STAGING_LIBDIR_NATIVE}/pkgconfig:${STAGING_DATADIR_NATIVE}/pkgconfig") d.setVarFlag("PKG_CONFIG_SYSROOT_DIR", "unexport", "1") # ensure that environment variables are overwritten with this tasks 'd' values - d.appendVar("OE_TERMINAL_EXPORTS", " PKG_CONFIG_DIR PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PKG_CONFIG_SYSROOT_DIR") + d.appendVar("OE_TERMINAL_EXPORTS", " PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PKG_CONFIG_SYSROOT_DIR") oe_terminal("sh -c 'make %s; if [ $? -ne 0 ]; then echo \"Command failed.\"; printf \"Press any key to continue... \"; read r; fi'" % d.getVar('KCONFIG_CONFIG_COMMAND'), d.getVar('PN') + ' Configuration', d) diff --git a/meta/classes-recipe/cross-canadian.bbclass b/meta/classes-recipe/cross-canadian.bbclass index 059d9aa95f..6d3d2f7623 100644 --- a/meta/classes-recipe/cross-canadian.bbclass +++ b/meta/classes-recipe/cross-canadian.bbclass @@ -161,8 +161,7 @@ libexecdir = "${exec_prefix}/libexec/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS} FILES:${PN} = "${prefix}" -export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${exec_prefix}/lib/pkgconfig" -export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}" +PKG_CONFIG_LIBDIR = "${STAGING_DIR_HOST}${exec_prefix}/lib/pkgconfig:${STAGING_DIR_HOST}${exec_prefix}/share/pkgconfig" do_populate_sysroot[stamp-extra-info] = "" do_packagedata[stamp-extra-info] = "" diff --git a/meta/classes-recipe/cross.bbclass b/meta/classes-recipe/cross.bbclass index 574ce6988d..82a49dc8f5 100644 --- a/meta/classes-recipe/cross.bbclass +++ b/meta/classes-recipe/cross.bbclass @@ -33,8 +33,8 @@ PACKAGE_ARCH = "${BUILD_ARCH}" MULTIMACH_TARGET_SYS = "${BUILD_ARCH}${BUILD_VENDOR}-${BUILD_OS}" -export PKG_CONFIG_DIR = "${exec_prefix}/lib/pkgconfig" -export PKG_CONFIG_SYSROOT_DIR = "" +PKG_CONFIG_LIBDIR = "${exec_prefix}/lib/pkgconfig:${exec_prefix}/share/pkgconfig" +PKG_CONFIG_SYSROOT_DIR = "" TARGET_CPPFLAGS = "" TARGET_CFLAGS = "" diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass index f989b31c47..b43b4ff4fb 100644 --- a/meta/classes-recipe/kernel.bbclass +++ b/meta/classes-recipe/kernel.bbclass @@ -365,9 +365,7 @@ kernel_do_compile() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE # setup native pkg-config variables (kconfig scripts call pkg-config directly, cannot generically be overriden to pkg-config-native) - export PKG_CONFIG_DIR="${STAGING_DIR_NATIVE}${libdir_native}/pkgconfig" - export PKG_CONFIG_PATH="$PKG_CONFIG_DIR:${STAGING_DATADIR_NATIVE}/pkgconfig" - export PKG_CONFIG_LIBDIR="$PKG_CONFIG_DIR" + export PKG_CONFIG_LIBDIR="${STAGING_LIBDIR_NATIVE}/pkgconfig:${STAGING_DATADIR_NATIVE}/pkgconfig" export PKG_CONFIG_SYSROOT_DIR="" if [ "${KERNEL_DEBUG_TIMESTAMPS}" != "1" ]; then @@ -421,9 +419,7 @@ do_compile_kernelmodules() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE # setup native pkg-config variables (kconfig scripts call pkg-config directly, cannot generically be overriden to pkg-config-native) - export PKG_CONFIG_DIR="${STAGING_DIR_NATIVE}${libdir_native}/pkgconfig" - export PKG_CONFIG_PATH="$PKG_CONFIG_DIR:${STAGING_DATADIR_NATIVE}/pkgconfig" - export PKG_CONFIG_LIBDIR="$PKG_CONFIG_DIR" + export PKG_CONFIG_LIBDIR="${STAGING_LIBDIR_NATIVE}/pkgconfig:${STAGING_DATADIR_NATIVE}/pkgconfig" export PKG_CONFIG_SYSROOT_DIR="" if [ "${KERNEL_DEBUG_TIMESTAMPS}" != "1" ]; then diff --git a/meta/classes-recipe/native.bbclass b/meta/classes-recipe/native.bbclass index b3411d20ca..e114669940 100644 --- a/meta/classes-recipe/native.bbclass +++ b/meta/classes-recipe/native.bbclass @@ -98,7 +98,6 @@ do_populate_sysroot[sstate-outputdirs] = "${COMPONENTS_DIR}/${PACKAGE_ARCH}/${PN # Since we actually install these into situ there is no staging prefix STAGING_DIR_HOST = "" STAGING_DIR_TARGET = "" -PKG_CONFIG_DIR = "${libdir}/pkgconfig" EXTRA_NATIVE_PKGCONFIG_PATH ?= "" PKG_CONFIG_PATH .= "${EXTRA_NATIVE_PKGCONFIG_PATH}" diff --git a/meta/classes-recipe/nativesdk.bbclass b/meta/classes-recipe/nativesdk.bbclass index c2e53c8450..117cc2329f 100644 --- a/meta/classes-recipe/nativesdk.bbclass +++ b/meta/classes-recipe/nativesdk.bbclass @@ -74,9 +74,6 @@ exec_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}" baselib = "lib" sbindir = "${bindir}" -export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${libdir}/pkgconfig" -export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}" - python nativesdk_virtclass_handler () { pn = e.data.getVar("PN") if not (pn.endswith("-nativesdk") or pn.startswith("nativesdk-")): diff --git a/meta/classes-recipe/pkgconfig.bbclass b/meta/classes-recipe/pkgconfig.bbclass index ea91338d34..50e74d0120 100644 --- a/meta/classes-recipe/pkgconfig.bbclass +++ b/meta/classes-recipe/pkgconfig.bbclass @@ -6,7 +6,6 @@ DEPENDS:prepend = "pkgconfig-native " -export PKG_CONFIG_DIR export PKG_CONFIG_PATH export PKG_CONFIG_LIBDIR export PKG_CONFIG_SYSROOT_DIR diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index be76c88cce..0c56f0fa15 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -768,11 +768,11 @@ BUILDCFG_NEEDEDVARS[type] = "list" # Other -PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${libdir}/pkgconfig" -PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig" -PKG_CONFIG_LIBDIR = "${PKG_CONFIG_DIR}" +PKG_CONFIG_PATH = "" +PKG_CONFIG_LIBDIR = "${STAGING_LIBDIR}/pkgconfig:${STAGING_DATADIR}/pkgconfig" PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}" PKG_CONFIG_DISABLE_UNINSTALLED = "yes" +# With pkg-config these have the sysroot prefixed PKG_CONFIG_SYSTEM_LIBRARY_PATH = "${base_libdir}:${libdir}" PKG_CONFIG_SYSTEM_INCLUDE_PATH = "${includedir}" diff --git a/meta/recipes-kernel/linux/linux-yocto.inc b/meta/recipes-kernel/linux/linux-yocto.inc index 4d0a726bb6..d57c1aae25 100644 --- a/meta/recipes-kernel/linux/linux-yocto.inc +++ b/meta/recipes-kernel/linux/linux-yocto.inc @@ -89,9 +89,8 @@ EXTRA_OEMAKE += '${@bb.utils.contains("KERNEL_DEBUG", "True", "", "PAHOLE=false" do_devshell:prepend() { # setup native pkg-config variables (kconfig scripts call pkg-config directly, cannot generically be overriden to pkg-config-native) - d.setVar("PKG_CONFIG_DIR", "${STAGING_DIR_NATIVE}${libdir_native}/pkgconfig") - d.setVar("PKG_CONFIG_PATH", "${PKG_CONFIG_DIR}:${STAGING_DATADIR_NATIVE}/pkgconfig") - d.setVar("PKG_CONFIG_LIBDIR", "${PKG_CONFIG_DIR}") + d.setVar("PKG_CONFIG_PATH", "") + d.setVar("PKG_CONFIG_LIBDIR", "${STAGING_LIBDIR_NATIVE}/pkgconfig:${STAGING_DATADIR_NATIVE}/pkgconfig") d.setVarFlag("PKG_CONFIG_SYSROOT_DIR", "unexport", "1") - d.appendVar("OE_TERMINAL_EXPORTS", " PKG_CONFIG_DIR PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PKG_CONFIG_SYSROOT_DIR") + d.appendVar("OE_TERMINAL_EXPORTS", " PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PKG_CONFIG_SYSROOT_DIR") } From patchwork Mon Feb 9 12:56:24 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 80776 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 29A93E81BB3 for ; Mon, 9 Feb 2026 12:56:39 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.46683.1770641795813922522 for ; Mon, 09 Feb 2026 04:56:35 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 191BA339 for ; Mon, 9 Feb 2026 04:56:29 -0800 (PST) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 0EC8B3F740 for ; Mon, 9 Feb 2026 04:56:34 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH v2 6/9] qemu: extend PKG_CONFIG_LIBDIR when using the host search path Date: Mon, 9 Feb 2026 12:56:24 +0000 Message-ID: <20260209125628.640221-6-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260209125628.640221-1-ross.burton@arm.com> References: <20260209125628.640221-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 09 Feb 2026 12:56:39 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230793 The qemu recipe does something horrible when building natively and can also search the build host's search path. Now that we've moved from PKG_CONFIG_PATH to PKG_CONFIG_LIBDIR, this code also needs to do the same as otherwise it will find packages on the build host before the native sysroot. Signed-off-by: Ross Burton --- meta/recipes-devtools/qemu/qemu.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc index 7aa593bc5d..8abe366284 100644 --- a/meta/recipes-devtools/qemu/qemu.inc +++ b/meta/recipes-devtools/qemu/qemu.inc @@ -129,7 +129,7 @@ do_configure:prepend:class-native() { # Append build host pkg-config paths for native target since the host may provide sdl BHOST_PKGCONFIG_PATH=$(PATH=/usr/bin:/bin pkg-config --variable pc_path pkg-config || echo "") if [ ! -z "$BHOST_PKGCONFIG_PATH" ]; then - export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$BHOST_PKGCONFIG_PATH + export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$BHOST_PKGCONFIG_PATH fi } From patchwork Mon Feb 9 12:56:25 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 80783 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 617D3E81BB7 for ; Mon, 9 Feb 2026 12:56:49 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.46777.1770641796567723867 for ; Mon, 09 Feb 2026 04:56:36 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B4511339 for ; Mon, 9 Feb 2026 04:56:29 -0800 (PST) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id B2DF43F740 for ; Mon, 9 Feb 2026 04:56:35 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH v2 7/9] pkgconf: small cleanups Date: Mon, 9 Feb 2026 12:56:25 +0000 Message-ID: <20260209125628.640221-7-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260209125628.640221-1-ross.burton@arm.com> References: <20260209125628.640221-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 09 Feb 2026 12:56:49 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230794 There's no need to --with-pkg-confg-dir as the default is the same and correct. Don't append BBCLASSEXTEND, there's no need. Sync pkg-config-native with the pkg-config recipe so that it sets the variables in the same way. Signed-off-by: Ross Burton --- meta/recipes-devtools/pkgconf/pkgconf/pkg-config-native.in | 3 ++- meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/meta/recipes-devtools/pkgconf/pkgconf/pkg-config-native.in b/meta/recipes-devtools/pkgconf/pkgconf/pkg-config-native.in index 0d736fe4d4..8addefbb80 100644 --- a/meta/recipes-devtools/pkgconf/pkgconf/pkg-config-native.in +++ b/meta/recipes-devtools/pkgconf/pkgconf/pkg-config-native.in @@ -1,6 +1,7 @@ #! /bin/sh -PKG_CONFIG_PATH="@PATH_NATIVE@$EXTRA_NATIVE_PKGCONFIG_PATH" +export PKG_CONFIG_PATH="@PATH_NATIVE@$EXTRA_NATIVE_PKGCONFIG_PATH" +export PKG_CONFIG_LIBDIR="@LIBDIR_NATIVE@" unset PKG_CONFIG_SYSROOT_DIR pkg-config "$@" diff --git a/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb b/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb index 12ca075b5d..e3500431b3 100644 --- a/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb +++ b/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb @@ -24,8 +24,6 @@ SRC_URI[sha256sum] = "cd05c9589b9f86ecf044c10a2269822bc9eb001eced2582cfffd658b0a inherit autotools -EXTRA_OECONF += "--with-pkg-config-dir='${libdir}/pkgconfig:${datadir}/pkgconfig'" - do_install:append () { # Install a wrapper which deals, as much as possible with pkgconf vs # pkg-config compatibility issues. @@ -36,6 +34,7 @@ do_install:append:class-native () { # Install a pkg-config-native wrapper that will use the native sysroot instead # of the MACHINE sysroot, for using pkg-config when building native tools. sed -e "s|@PATH_NATIVE@|${PKG_CONFIG_PATH}|" \ + -e "s|@LIBDIR_NATIVE@|${PKG_CONFIG_LIBDIR}|" \ < ${UNPACKDIR}/pkg-config-native.in > ${B}/pkg-config-native install -m755 ${B}/pkg-config-native ${D}${bindir}/pkg-config-native sed -e "s|@PATH_NATIVE@|${PKG_CONFIG_PATH}|" \ @@ -53,7 +52,7 @@ RPROVIDES:${PN} += "pkgconfig(pkg-config)" FILES:${PN}-dev:remove = "${datadir}/aclocal" FILES:${PN} += "${datadir}/aclocal" -BBCLASSEXTEND += "native nativesdk" +BBCLASSEXTEND = "native nativesdk" pkgconf_sstate_fixup_esdk () { if [ "${BB_CURRENTTASK}" = "populate_sysroot_setscene" -a "${WITHIN_EXT_SDK}" = "1" ] ; then From patchwork Mon Feb 9 12:56:26 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 80782 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 63138E81BBA for ; Mon, 9 Feb 2026 12:56:49 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.46778.1770641797124868666 for ; Mon, 09 Feb 2026 04:56:37 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 64888339 for ; Mon, 9 Feb 2026 04:56:30 -0800 (PST) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 5A01F3F740 for ; Mon, 9 Feb 2026 04:56:36 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH v2 8/9] pkgconf: add pkg-config-native to the nativesdk package Date: Mon, 9 Feb 2026 12:56:26 +0000 Message-ID: <20260209125628.640221-8-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260209125628.640221-1-ross.burton@arm.com> References: <20260209125628.640221-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 09 Feb 2026 12:56:49 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230795 This was added to the pkg-config recipe but not pkgconf. Signed-off-by: Ross Burton --- meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb b/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb index e3500431b3..e335c843bd 100644 --- a/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb +++ b/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb @@ -43,6 +43,15 @@ do_install:append:class-native () { install -m755 ${B}/pkg-config-esdk ${D}${bindir}/pkg-config-esdk } +do_install:append:class-nativesdk () { + # Install a pkg-config-native wrapper that will use the native sysroot instead + # of the MACHINE sysroot, for using pkg-config when building native tools. + sed -e "s|@PATH_NATIVE@|\$OECORE_NATIVE_SYSROOT|" \ + -e "s|@LIBDIR_NATIVE@|\$OECORE_NATIVE_SYSROOT/usr/lib/pkgconfig|" \ + < ${UNPACKDIR}/pkg-config-native.in > ${B}/pkg-config-native + install -m755 ${B}/pkg-config-native ${D}${bindir}/pkg-config-native +} + # When using the RPM generated automatic package dependencies, some packages # will end up requiring 'pkgconfig(pkg-config)'. Allow this behavior by # specifying an appropriate provide. From patchwork Mon Feb 9 12:56:27 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 80775 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 22AFEE81BB6 for ; Mon, 9 Feb 2026 12:56:39 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.46684.1770641797698337033 for ; Mon, 09 Feb 2026 04:56:37 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0B6D8339 for ; Mon, 9 Feb 2026 04:56:31 -0800 (PST) Received: from cesw-amp-gbt-1s-m12830-04.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 0A07E3F740 for ; Mon, 9 Feb 2026 04:56:36 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH v2 9/9] kernel: remove pkg-config variables for old (<5.15) kernels Date: Mon, 9 Feb 2026 12:56:27 +0000 Message-ID: <20260209125628.640221-9-ross.burton@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260209125628.640221-1-ross.burton@arm.com> References: <20260209125628.640221-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 09 Feb 2026 12:56:39 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/230796 The kernel has supported setting an alternative binary for pkg-config with a variable since 5.19 (in 2022[1]) and we set that to pkg-config-native, so there is no longer any need to also manually set the PKG_CONFIG_* variables. The relevant commit was backported and is present in 5.15.91 onwards, but is not yet in 5.10.x. [1] linux d5ea4fece450 ("kbuild: Allow kernel installation packaging to override pkg-config") Signed-off-by: Ross Burton --- meta/classes-recipe/kernel.bbclass | 9 --------- meta/recipes-kernel/linux/linux-yocto.inc | 7 ++----- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass index b43b4ff4fb..1ebf027281 100644 --- a/meta/classes-recipe/kernel.bbclass +++ b/meta/classes-recipe/kernel.bbclass @@ -251,7 +251,6 @@ KERNEL_EXTRA_ARGS ?= "" EXTRA_OEMAKE += ' CC="${KERNEL_CC}" LD="${KERNEL_LD}" OBJCOPY="${KERNEL_OBJCOPY}" STRIP="${KERNEL_STRIP}"' EXTRA_OEMAKE += ' HOSTCC="${BUILD_CC}" HOSTCFLAGS="${BUILD_CFLAGS}" HOSTLDFLAGS="${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}"' EXTRA_OEMAKE += ' HOSTCXX="${BUILD_CXX}" HOSTCXXFLAGS="${BUILD_CXXFLAGS}"' -# Only for newer kernels (5.19+), native pkg-config variables are set for older kernels when building kernel and modules EXTRA_OEMAKE += ' HOSTPKG_CONFIG="pkg-config-native"' KERNEL_ALT_IMAGETYPE ??= "" @@ -364,10 +363,6 @@ KERNEL_DEBUG_TIMESTAMPS ??= "0" kernel_do_compile() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE - # setup native pkg-config variables (kconfig scripts call pkg-config directly, cannot generically be overriden to pkg-config-native) - export PKG_CONFIG_LIBDIR="${STAGING_LIBDIR_NATIVE}/pkgconfig:${STAGING_DATADIR_NATIVE}/pkgconfig" - export PKG_CONFIG_SYSROOT_DIR="" - if [ "${KERNEL_DEBUG_TIMESTAMPS}" != "1" ]; then # kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not # be set.... @@ -418,10 +413,6 @@ addtask transform_kernel after do_compile before do_install do_compile_kernelmodules() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE - # setup native pkg-config variables (kconfig scripts call pkg-config directly, cannot generically be overriden to pkg-config-native) - export PKG_CONFIG_LIBDIR="${STAGING_LIBDIR_NATIVE}/pkgconfig:${STAGING_DATADIR_NATIVE}/pkgconfig" - export PKG_CONFIG_SYSROOT_DIR="" - if [ "${KERNEL_DEBUG_TIMESTAMPS}" != "1" ]; then # kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not # be set.... diff --git a/meta/recipes-kernel/linux/linux-yocto.inc b/meta/recipes-kernel/linux/linux-yocto.inc index d57c1aae25..4e230d405a 100644 --- a/meta/recipes-kernel/linux/linux-yocto.inc +++ b/meta/recipes-kernel/linux/linux-yocto.inc @@ -88,9 +88,6 @@ do_kernel_configme[depends] += '${@bb.utils.contains("KERNEL_DEBUG", "True", "pa EXTRA_OEMAKE += '${@bb.utils.contains("KERNEL_DEBUG", "True", "", "PAHOLE=false", d)}' do_devshell:prepend() { - # setup native pkg-config variables (kconfig scripts call pkg-config directly, cannot generically be overriden to pkg-config-native) - d.setVar("PKG_CONFIG_PATH", "") - d.setVar("PKG_CONFIG_LIBDIR", "${STAGING_LIBDIR_NATIVE}/pkgconfig:${STAGING_DATADIR_NATIVE}/pkgconfig") - d.setVarFlag("PKG_CONFIG_SYSROOT_DIR", "unexport", "1") - d.appendVar("OE_TERMINAL_EXPORTS", " PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PKG_CONFIG_SYSROOT_DIR") + d.setVar("HOSTPKG_CONFIG", "pkg-config-native") + d.appendVar("OE_TERMINAL_EXPORTS", " HOSTPKG_CONFIG") }