* [PATCH 1/7] sstate/relocatable: remove manual relocation of .pc files
@ 2026-03-20 12:27 Ross Burton
2026-03-20 12:27 ` [PATCH 2/7] pkgconf: inherit pkgconfig Ross Burton
` (6 more replies)
0 siblings, 7 replies; 13+ messages in thread
From: Ross Burton @ 2026-03-20 12:27 UTC (permalink / raw)
To: openembedded-core
There's no need to manually relocate .pc files in relocatable.bbclass
as the path remapping in sstate.bbclass can do it, if we add .pc to
SSTATE_SCAN_FILES.
This removes some hardcoded behaviour, and puts absolute sysroot paths
into the .pc files instead of paths like ${pcfiledir}/../../include,
which makes it possible for pkgconfig to normalise and strip redundant
paths.
This also has the side effect of not forcibly turning .pc symlinks into
real files, which the sed was doing.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
meta/classes-global/sstate.bbclass | 2 +-
meta/classes/relocatable.bbclass | 15 +--------------
2 files changed, 2 insertions(+), 15 deletions(-)
diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstate.bbclass
index 88449d19c7b..3b50985eab1 100644
--- a/meta/classes-global/sstate.bbclass
+++ b/meta/classes-global/sstate.bbclass
@@ -67,7 +67,7 @@ SSTATE_ALLOW_OVERLAP_FILES += "${DEPLOY_DIR_IMAGE}/grub-efi"
SSTATE_ALLOW_OVERLAP_FILES += "${DEPLOY_DIR_IMAGE}/systemd-boot"
SSTATE_ALLOW_OVERLAP_FILES += "${DEPLOY_DIR_IMAGE}/microcode"
-SSTATE_SCAN_FILES ?= "*.la *-config *_config postinst-*"
+SSTATE_SCAN_FILES ?= "*.la *-config *_config postinst-* *.pc"
SSTATE_SCAN_CMD ??= 'find ${SSTATE_BUILDDIR} \( -name "${@"\" -o -name \"".join(d.getVar("SSTATE_SCAN_FILES").split())}" \) -type f'
SSTATE_SCAN_CMD_NATIVE ??= 'grep -Irl -e ${RECIPE_SYSROOT} -e ${RECIPE_SYSROOT_NATIVE} -e ${HOSTTOOLS_DIR} ${SSTATE_BUILDDIR}'
SSTATE_HASHEQUIV_FILEMAP ?= " \
diff --git a/meta/classes/relocatable.bbclass b/meta/classes/relocatable.bbclass
index d0a623fb0a9..35b2d6ec474 100644
--- a/meta/classes/relocatable.bbclass
+++ b/meta/classes/relocatable.bbclass
@@ -6,21 +6,8 @@
inherit chrpath
-SYSROOT_PREPROCESS_FUNCS += "relocatable_binaries_preprocess relocatable_native_pcfiles"
+SYSROOT_PREPROCESS_FUNCS += "relocatable_binaries_preprocess"
python relocatable_binaries_preprocess() {
rpath_replace(d.expand('${SYSROOT_DESTDIR}'), d)
}
-
-relocatable_native_pcfiles() {
- for dir in ${libdir}/pkgconfig ${datadir}/pkgconfig; do
- files_template=${SYSROOT_DESTDIR}$dir/*.pc
- # Expand to any files matching $files_template
- files=$(echo $files_template)
- # $files_template and $files will differ if any files were found
- if [ "$files_template" != "$files" ]; then
- rel=$(realpath -m --relative-to=$dir ${base_prefix})
- sed -i -e "s:${base_prefix}:\${pcfiledir}/$rel:g" $files
- fi
- done
-}
--
2.43.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/7] pkgconf: inherit pkgconfig
2026-03-20 12:27 [PATCH 1/7] sstate/relocatable: remove manual relocation of .pc files Ross Burton
@ 2026-03-20 12:27 ` Ross Burton
2026-03-20 12:27 ` [PATCH 3/7] pkgconf: ensure pkgconf-native doesn't try and look on the host Ross Burton
` (5 subsequent siblings)
6 siblings, 0 replies; 13+ messages in thread
From: Ross Burton @ 2026-03-20 12:27 UTC (permalink / raw)
To: openembedded-core
pkgconf needs to know the value of PKG_CONFIG_LIBDIR, so it needs to
inherit the pkgconfig class.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb b/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb
index e335c843bda..a8455577f63 100644
--- a/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb
+++ b/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb
@@ -22,7 +22,7 @@ SRC_URI = "\
"
SRC_URI[sha256sum] = "cd05c9589b9f86ecf044c10a2269822bc9eb001eced2582cfffd658b0a50c243"
-inherit autotools
+inherit autotools pkgconfig
do_install:append () {
# Install a wrapper which deals, as much as possible with pkgconf vs
--
2.43.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 3/7] pkgconf: ensure pkgconf-native doesn't try and look on the host
2026-03-20 12:27 [PATCH 1/7] sstate/relocatable: remove manual relocation of .pc files Ross Burton
2026-03-20 12:27 ` [PATCH 2/7] pkgconf: inherit pkgconfig Ross Burton
@ 2026-03-20 12:27 ` Ross Burton
2026-03-20 12:27 ` [PATCH 4/7] pkgconf: minimise wrapper Ross Burton
` (4 subsequent siblings)
6 siblings, 0 replies; 13+ messages in thread
From: Ross Burton @ 2026-03-20 12:27 UTC (permalink / raw)
To: openembedded-core
Neuter the native build of pkgconf so that it doesn't default to looking
on the build host for .pc files, to avoid accidental host contamination.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb b/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb
index a8455577f63..277ef9786c4 100644
--- a/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb
+++ b/meta/recipes-devtools/pkgconf/pkgconf_2.5.1.bb
@@ -24,6 +24,12 @@ SRC_URI[sha256sum] = "cd05c9589b9f86ecf044c10a2269822bc9eb001eced2582cfffd658b0a
inherit autotools pkgconfig
+# Tell the native pkgconf to use directories that don't exist, so we _need_ to
+# tell it the paths with environment variables.
+EXTRA_OECONF:append:class-native = " --with-pkg-config-dir='/not/exist' \
+ --with-system-includedir=/not/exist/include \
+ --with-system-libdir=/not/exist/lib"
+
do_install:append () {
# Install a wrapper which deals, as much as possible with pkgconf vs
# pkg-config compatibility issues.
--
2.43.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 4/7] pkgconf: minimise wrapper
2026-03-20 12:27 [PATCH 1/7] sstate/relocatable: remove manual relocation of .pc files Ross Burton
2026-03-20 12:27 ` [PATCH 2/7] pkgconf: inherit pkgconfig Ross Burton
2026-03-20 12:27 ` [PATCH 3/7] pkgconf: ensure pkgconf-native doesn't try and look on the host Ross Burton
@ 2026-03-20 12:27 ` Ross Burton
2026-03-20 12:27 ` [PATCH 5/7] class/pkgconfig: use pkgconf instead of pkgconfig Ross Burton
` (3 subsequent siblings)
6 siblings, 0 replies; 13+ messages in thread
From: Ross Burton @ 2026-03-20 12:27 UTC (permalink / raw)
To: openembedded-core
There's no need to look at the passed arguments and unset variables, we
want fdo's pkgconfig behaviour when called from the pkg-config wrapper
and this can be done by exporting PKG_CONFIG_FDO_SYSROOT_RULES.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
.../pkgconf/pkgconf/pkg-config-wrapper | 17 ++++-------------
1 file changed, 4 insertions(+), 13 deletions(-)
diff --git a/meta/recipes-devtools/pkgconf/pkgconf/pkg-config-wrapper b/meta/recipes-devtools/pkgconf/pkgconf/pkg-config-wrapper
index 695f349566d..89081672abd 100755
--- a/meta/recipes-devtools/pkgconf/pkgconf/pkg-config-wrapper
+++ b/meta/recipes-devtools/pkgconf/pkgconf/pkg-config-wrapper
@@ -1,16 +1,7 @@
-#!/bin/sh
-# pkgconf wrapper to deal with pkg-config/pkgconf compatibility issues
-#
-# Copyright (C) 2015 Christopher Larson <chris_larson@mentor.com>
-# License: MIT (see COPYING.MIT at the root of the repository for terms)
+#! /bin/sh
-for arg; do
- case "$arg" in
- --variable|--variable=*)
- # pkg-config doesn't sysroot-prefix user variables
- unset PKG_CONFIG_SYSROOT_DIR
- ;;
- esac
-done
+# Tell pkgconf to use pkgconfig behaviour when dealing with the sysroot to ease
+# migration.
+export PKG_CONFIG_FDO_SYSROOT_RULES="1"
exec pkgconf "$@"
--
2.43.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 5/7] class/pkgconfig: use pkgconf instead of pkgconfig
2026-03-20 12:27 [PATCH 1/7] sstate/relocatable: remove manual relocation of .pc files Ross Burton
` (2 preceding siblings ...)
2026-03-20 12:27 ` [PATCH 4/7] pkgconf: minimise wrapper Ross Burton
@ 2026-03-20 12:27 ` Ross Burton
2026-03-21 1:40 ` [OE-core] " Khem Raj
2026-03-25 0:05 ` Dmitry Baryshkov
2026-03-20 12:27 ` [PATCH 6/7] pkgconfig: remove Ross Burton
` (2 subsequent siblings)
6 siblings, 2 replies; 13+ messages in thread
From: Ross Burton @ 2026-03-20 12:27 UTC (permalink / raw)
To: openembedded-core
The last meaningful change to freedesktop.org pkgconfig was in 2019, but
pkgconf is actively maintained.
Major distributions such as Fedora (and derivates), Debian (ditto), Arch
Linux, Buildroot, and Alpine have all moved to pkgconf already.
There's a subtle behaviour change between pkgconfig and pkgconf, whereas
pkgconfig appends the sysroot to PKG_CONFIG_SYSTEM_INCLUDE_PATH pkgconf
does not, so we need to sysroot-prefix those variables.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
meta/classes-recipe/pkgconfig.bbclass | 6 +++---
meta/conf/distro/include/default-providers.inc | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/meta/classes-recipe/pkgconfig.bbclass b/meta/classes-recipe/pkgconfig.bbclass
index c0d91393b36..4912b9904ba 100644
--- a/meta/classes-recipe/pkgconfig.bbclass
+++ b/meta/classes-recipe/pkgconfig.bbclass
@@ -4,7 +4,7 @@
# SPDX-License-Identifier: MIT
#
-DEPENDS:prepend = "pkgconfig-native "
+DEPENDS:prepend = "pkgconf-native "
export PKG_CONFIG_PATH ?= ""
export PKG_CONFIG_LIBDIR ?= "${STAGING_LIBDIR}/pkgconfig:${STAGING_DATADIR}/pkgconfig"
@@ -12,5 +12,5 @@ export PKG_CONFIG_LIBDIR ?= "${STAGING_LIBDIR}/pkgconfig:${STAGING_DATADIR}/pkgc
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}"
+export PKG_CONFIG_SYSTEM_LIBRARY_PATH ?= "${STAGING_BASELIBDIR}:${STAGING_LIBDIR}"
+export PKG_CONFIG_SYSTEM_INCLUDE_PATH ?= "${STAGING_INCDIR}"
diff --git a/meta/conf/distro/include/default-providers.inc b/meta/conf/distro/include/default-providers.inc
index 5101ad78f88..c0a5d1c75e5 100644
--- a/meta/conf/distro/include/default-providers.inc
+++ b/meta/conf/distro/include/default-providers.inc
@@ -56,9 +56,9 @@ PREFERRED_PROVIDER_getopt ?= "util-linux-getopt"
PREFERRED_PROVIDER_openssl ?= "openssl"
PREFERRED_PROVIDER_openssl-native ?= "openssl-native"
PREFERRED_PROVIDER_nativesdk-openssl ?= "nativesdk-openssl"
-PREFERRED_PROVIDER_pkgconfig ?= "pkgconfig"
-PREFERRED_PROVIDER_nativesdk-pkgconfig ?= "nativesdk-pkgconfig"
-PREFERRED_PROVIDER_pkgconfig-native ?= "pkgconfig-native"
+PREFERRED_PROVIDER_pkgconfig ?= "pkgconf"
+PREFERRED_PROVIDER_nativesdk-pkgconfig ?= "nativesdk-pkgconf"
+PREFERRED_PROVIDER_pkgconfig-native ?= "pkgconf-native"
PREFERRED_RPROVIDER_initd-functions ?= "initscripts"
PREFERRED_PROVIDER_nativesdk-mesa ?= "nativesdk-mesa"
--
2.43.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 6/7] pkgconfig: remove
2026-03-20 12:27 [PATCH 1/7] sstate/relocatable: remove manual relocation of .pc files Ross Burton
` (3 preceding siblings ...)
2026-03-20 12:27 ` [PATCH 5/7] class/pkgconfig: use pkgconf instead of pkgconfig Ross Burton
@ 2026-03-20 12:27 ` Ross Burton
2026-03-20 12:27 ` [PATCH 7/7] layer.conf: update pkgconfig-native exclusions to pkgconf-native Ross Burton
2026-03-20 12:48 ` [OE-core] [PATCH 1/7] sstate/relocatable: remove manual relocation of .pc files Richard Purdie
6 siblings, 0 replies; 13+ messages in thread
From: Ross Burton @ 2026-03-20 12:27 UTC (permalink / raw)
To: openembedded-core
We're now using pkgconf, so drop the pkgconfig recipe.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
meta/conf/distro/include/maintainers.inc | 1 -
...e-g-u-intptr-atomics-in-builtin-glib.patch | 157 ------------------
...0001-Do-not-use-bool-as-a-field-name.patch | 36 ----
...Update-AM_GLIB_GNU_GETTEXT-to-match-.patch | 41 -----
.../pkgconfig/pkgconfig/pkg-config-esdk.in | 24 ---
.../pkgconfig/pkgconfig/pkg-config-native.in | 7 -
.../pkgconfig/pkgconfig_git.bb | 78 ---------
7 files changed, 344 deletions(-)
delete mode 100644 meta/recipes-devtools/pkgconfig/pkgconfig/0001-Backport-g-s-size-g-u-intptr-atomics-in-builtin-glib.patch
delete mode 100644 meta/recipes-devtools/pkgconfig/pkgconfig/0001-Do-not-use-bool-as-a-field-name.patch
delete mode 100644 meta/recipes-devtools/pkgconfig/pkgconfig/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch
delete mode 100644 meta/recipes-devtools/pkgconfig/pkgconfig/pkg-config-esdk.in
delete mode 100644 meta/recipes-devtools/pkgconfig/pkgconfig/pkg-config-native.in
delete mode 100644 meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index 86a11867a1d..f9a600ff114 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -605,7 +605,6 @@ RECIPE_MAINTAINER:pn-pigz = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER:pn-pinentry = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER:pn-pixman = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER:pn-pkgconf = "Ross Burton <ross.burton@arm.com>"
-RECIPE_MAINTAINER:pn-pkgconfig = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER:pn-pm-utils = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER:pn-pointercal-xinput = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER:pn-pong-clock = "Unassigned <unassigned@yoctoproject.org>"
diff --git a/meta/recipes-devtools/pkgconfig/pkgconfig/0001-Backport-g-s-size-g-u-intptr-atomics-in-builtin-glib.patch b/meta/recipes-devtools/pkgconfig/pkgconfig/0001-Backport-g-s-size-g-u-intptr-atomics-in-builtin-glib.patch
deleted file mode 100644
index 5ef4cec8118..00000000000
--- a/meta/recipes-devtools/pkgconfig/pkgconfig/0001-Backport-g-s-size-g-u-intptr-atomics-in-builtin-glib.patch
+++ /dev/null
@@ -1,157 +0,0 @@
-From 5fb4ae80ae13ae134a33804b1938af0e9f27a222 Mon Sep 17 00:00:00 2001
-From: Dan Fuhry <dan@fuhry.com>
-Date: Sun, 26 Oct 2025 09:09:07 -0700
-Subject: [PATCH] Backport g(s)size -> g(u)intptr atomics in builtin glib for
- gcc14 and clang15
-
-pkg-config 0.29.2 doesn't build on clang 15 and up and
-gcc 14 and up, due to -Wint-conversion now defaulting to being an error in
-both compilers. The old version of glib 2.36 bundled with pkg-config uses
-gssize/gssize as the return type of the g_atomic_pointer_* functions, which
-newer versions of gcc and clang complain (rightly) is not portable (as
-these are aliased to long and ulong, respectively).
-
-This was previously addressed in glib upstream commit c762d511 [1] by Alex
-Richardson on Dec 14, 2022. The attached patch backports Alex's change to
-glib 2.36 bundled with pkg-config, and also switches to the newer
-__atomic_* intrinsics from commit 2eb37622 [2] (Philip Withnall).
-
-This patch has been tested on clang 17 and only clang 17.
-
-[1]
-https://gitlab.gnome.org/GNOME/glib/-/commit/c762d511346d3cb84cea3557a246ccf8873b4a1c
-[2]
-https://gitlab.gnome.org/GNOME/glib/-/commit/2eb37622418a5c9f31a9d728a99bc621d3157ab0
-
-Upstream-Status: Submitted [https://lists.freedesktop.org/archives/pkg-config/2024-May/001122.html]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- glib/glib/gatomic.c | 14 +++++++-------
- glib/glib/gatomic.h | 34 ++++++++++++++++++++--------------
- 2 files changed, 27 insertions(+), 21 deletions(-)
-
-diff --git a/glib/glib/gatomic.c b/glib/glib/gatomic.c
-index eb2fe46..c0609eb 100644
---- a/glib/glib/gatomic.c
-+++ b/glib/glib/gatomic.c
-@@ -385,7 +385,7 @@ gboolean
- *
- * Since: 2.30
- **/
--gssize
-+gintptr
- (g_atomic_pointer_add) (volatile void *atomic,
- gssize val)
- {
-@@ -409,11 +409,11 @@ gssize
- *
- * Since: 2.30
- **/
--gsize
-+guintptr
- (g_atomic_pointer_and) (volatile void *atomic,
- gsize val)
- {
-- return g_atomic_pointer_and ((volatile gpointer *) atomic, val);
-+ return g_atomic_pointer_and ((gpointer *) atomic, val);
- }
-
- /**
-@@ -433,11 +433,11 @@ gsize
- *
- * Since: 2.30
- **/
--gsize
-+guintptr
- (g_atomic_pointer_or) (volatile void *atomic,
- gsize val)
- {
-- return g_atomic_pointer_or ((volatile gpointer *) atomic, val);
-+ return g_atomic_pointer_or ((gpointer *) atomic, val);
- }
-
- /**
-@@ -457,11 +457,11 @@ gsize
- *
- * Since: 2.30
- **/
--gsize
-+guintptr
- (g_atomic_pointer_xor) (volatile void *atomic,
- gsize val)
- {
-- return g_atomic_pointer_xor ((volatile gpointer *) atomic, val);
-+ return g_atomic_pointer_xor ((gpointer *) atomic, val);
- }
-
- #elif defined (G_PLATFORM_WIN32)
-diff --git a/glib/glib/gatomic.h b/glib/glib/gatomic.h
-index e7fd1f2..124a3dd 100644
---- a/glib/glib/gatomic.h
-+++ b/glib/glib/gatomic.h
-@@ -66,16 +66,16 @@ gboolean g_atomic_pointer_compare_and_exchange (volatile void *a
- gpointer oldval,
- gpointer newval);
- GLIB_AVAILABLE_IN_ALL
--gssize g_atomic_pointer_add (volatile void *atomic,
-+gintptr g_atomic_pointer_add (volatile void *atomic,
- gssize val);
- GLIB_AVAILABLE_IN_2_30
--gsize g_atomic_pointer_and (volatile void *atomic,
-+guintptr g_atomic_pointer_and (volatile void *atomic,
- gsize val);
- GLIB_AVAILABLE_IN_2_30
--gsize g_atomic_pointer_or (volatile void *atomic,
-+guintptr g_atomic_pointer_or (volatile void *atomic,
- gsize val);
- GLIB_AVAILABLE_IN_ALL
--gsize g_atomic_pointer_xor (volatile void *atomic,
-+guintptr g_atomic_pointer_xor (volatile void *atomic,
- gsize val);
-
- GLIB_DEPRECATED_IN_2_30_FOR(g_atomic_add)
-@@ -167,28 +167,34 @@ G_END_DECLS
- G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
- (void) (0 ? (gpointer) *(atomic) : 0); \
- (void) (0 ? (val) ^ (val) : 0); \
-- (gssize) __sync_fetch_and_add ((atomic), (val)); \
-+ (guintptr) __atomic_fetch_add ((atomic), (val), __ATOMIC_SEQ_CST); \
- }))
- #define g_atomic_pointer_and(atomic, val) \
- (G_GNUC_EXTENSION ({ \
-+ guintptr *gapa_atomic = (guintptr *) atomic; \
- G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
-- (void) (0 ? (gpointer) *(atomic) : 0); \
-- (void) (0 ? (val) ^ (val) : 0); \
-- (gsize) __sync_fetch_and_and ((atomic), (val)); \
-+ G_STATIC_ASSERT (sizeof *(atomic) == sizeof (guintptr)); \
-+ (void) (0 ? (gpointer) *(atomic) : NULL); \
-+ (void) (0 ? (val) ^ (val) : 1); \
-+ (guintptr) __atomic_fetch_and (gapa_atomic, (val), __ATOMIC_SEQ_CST); \
- }))
- #define g_atomic_pointer_or(atomic, val) \
- (G_GNUC_EXTENSION ({ \
-+ guintptr *gapa_atomic = (guintptr *) atomic; \
- G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
-- (void) (0 ? (gpointer) *(atomic) : 0); \
-- (void) (0 ? (val) ^ (val) : 0); \
-- (gsize) __sync_fetch_and_or ((atomic), (val)); \
-+ G_STATIC_ASSERT (sizeof *(atomic) == sizeof (guintptr)); \
-+ (void) (0 ? (gpointer) *(atomic) : NULL); \
-+ (void) (0 ? (val) ^ (val) : 1); \
-+ (guintptr) __atomic_fetch_or (gapa_atomic, (val), __ATOMIC_SEQ_CST); \
- }))
- #define g_atomic_pointer_xor(atomic, val) \
- (G_GNUC_EXTENSION ({ \
-+ guintptr *gapa_atomic = (guintptr *) atomic; \
- G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
-- (void) (0 ? (gpointer) *(atomic) : 0); \
-- (void) (0 ? (val) ^ (val) : 0); \
-- (gsize) __sync_fetch_and_xor ((atomic), (val)); \
-+ G_STATIC_ASSERT (sizeof *(atomic) == sizeof (guintptr)); \
-+ (void) (0 ? (gpointer) *(atomic) : NULL); \
-+ (void) (0 ? (val) ^ (val) : 1); \
-+ (guintptr) __atomic_fetch_xor (gapa_atomic, (val), __ATOMIC_SEQ_CST); \
- }))
-
- #else /* defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) */
diff --git a/meta/recipes-devtools/pkgconfig/pkgconfig/0001-Do-not-use-bool-as-a-field-name.patch b/meta/recipes-devtools/pkgconfig/pkgconfig/0001-Do-not-use-bool-as-a-field-name.patch
deleted file mode 100644
index bcb7e94d69b..00000000000
--- a/meta/recipes-devtools/pkgconfig/pkgconfig/0001-Do-not-use-bool-as-a-field-name.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From b3b26a7e125e5e4f5b69975cc17eb6d33198ebaa Mon Sep 17 00:00:00 2001
-From: Emmanuele Bassi <ebassi@gnome.org>
-Date: Thu, 11 Apr 2024 14:40:21 +0100
-Subject: [PATCH] Do not use bool as a field name
-
-C99 aliases `bool` to `_Bool`, and C23 introduces `bool` as a reserved
-keyword. Let's avoid using `bool` as a field name.
-
-Upstream-Status: Backport [Backport from glib to bunlded version in pkg-config https://github.com/GNOME/glib/commit/9e320e1c43a4770ed1532248fe5416eb0c618120]
-Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
----
- glib/glib/goption.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/glib/glib/goption.c b/glib/glib/goption.c
-index 0a22f6f..f439fd4 100644
---- a/glib/glib/goption.c
-+++ b/glib/glib/goption.c
-@@ -166,7 +166,7 @@ typedef struct
- gpointer arg_data;
- union
- {
-- gboolean bool;
-+ gboolean boolean;
- gint integer;
- gchar *str;
- gchar **array;
-@@ -1600,7 +1600,7 @@ free_changes_list (GOptionContext *context,
- switch (change->arg_type)
- {
- case G_OPTION_ARG_NONE:
-- *(gboolean *)change->arg_data = change->prev.bool;
-+ *(gboolean *)change->arg_data = change->prev.boolean;
- break;
- case G_OPTION_ARG_INT:
- *(gint *)change->arg_data = change->prev.integer;
diff --git a/meta/recipes-devtools/pkgconfig/pkgconfig/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch b/meta/recipes-devtools/pkgconfig/pkgconfig/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch
deleted file mode 100644
index 80310cd370e..00000000000
--- a/meta/recipes-devtools/pkgconfig/pkgconfig/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From e404e27de77d8b993c4cc87013d707200b3a5547 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Tue, 17 May 2016 13:26:27 +0300
-Subject: [PATCH] glib-gettext.m4: Update AM_GLIB_GNU_GETTEXT to match glib
-
-This avoids
- error: m4_copy: won't overwrite defined macro: glib_DEFUN
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Upstream-Status: Pending
-
----
- glib/m4macros/glib-gettext.m4 | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/glib/m4macros/glib-gettext.m4 b/glib/m4macros/glib-gettext.m4
-index 5217fd8..155b1d8 100644
---- a/glib/m4macros/glib-gettext.m4
-+++ b/glib/m4macros/glib-gettext.m4
-@@ -313,7 +313,7 @@ msgstr ""
- # on various variables needed by the Makefile.in.in installed by
- # glib-gettextize.
- dnl
--glib_DEFUN([GLIB_GNU_GETTEXT],
-+AU_DEFUN([GLIB_GNU_GETTEXT],
- [AC_REQUIRE([AC_PROG_CC])dnl
-
- GLIB_LC_MESSAGES
-@@ -383,7 +383,8 @@ glib_DEFUN([GLIB_GNU_GETTEXT],
- rm -f po/POTFILES
- sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
- < $srcdir/po/POTFILES.in > po/POTFILES
-- ])
-+ ],
-+ [[$0: This macro is deprecated. You should use upstream gettext instead.]])
-
- # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE)
- # -------------------------------
---
-2.1.4
-
diff --git a/meta/recipes-devtools/pkgconfig/pkgconfig/pkg-config-esdk.in b/meta/recipes-devtools/pkgconfig/pkgconfig/pkg-config-esdk.in
deleted file mode 100644
index 4fc9b0a4a7b..00000000000
--- a/meta/recipes-devtools/pkgconfig/pkgconfig/pkg-config-esdk.in
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /bin/sh
-
-# Orignal pkg-config-native action when called as pkg-config-native
-# NO Change here
-if [ "pkg-config-native" = "`basename $0`" ] ; then
- PKG_CONFIG_PATH="@PATH_NATIVE@"
- PKG_CONFIG_LIBDIR="@LIBDIR_NATIVE@"
- unset PKG_CONFIG_SYSROOT_DIR
-else
- # in this case check if we are in the esdk
- if [ "$OE_SKIP_SDK_CHECK" = "1" ] ; then
- parentpid=`ps -o ppid= -p $$`
- parentpid_info=`ps -wo comm= -o args= -p $parentpid`
-
- # check if we are being called from the kernel's make menuconfig
- if ( echo $parentpid_info | grep -q check-lxdialog ) ; then
- PKG_CONFIG_PATH="@PATH_NATIVE@"
- PKG_CONFIG_LIBDIR="@LIBDIR_NATIVE@"
- unset PKG_CONFIG_SYSROOT_DIR
- fi
- fi
-fi
-
-pkg-config.real "$@"
diff --git a/meta/recipes-devtools/pkgconfig/pkgconfig/pkg-config-native.in b/meta/recipes-devtools/pkgconfig/pkgconfig/pkg-config-native.in
deleted file mode 100644
index 8addefbb803..00000000000
--- a/meta/recipes-devtools/pkgconfig/pkgconfig/pkg-config-native.in
+++ /dev/null
@@ -1,7 +0,0 @@
-#! /bin/sh
-
-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/pkgconfig/pkgconfig_git.bb b/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
deleted file mode 100644
index d4350be212b..00000000000
--- a/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
+++ /dev/null
@@ -1,78 +0,0 @@
-SUMMARY = "Helper tool used when compiling"
-DESCRIPTION = "pkg-config is a helper tool used when compiling applications and libraries. It helps determined \
-the correct compiler/link options. It is also language-agnostic."
-HOMEPAGE = "http://pkg-config.freedesktop.org/wiki/"
-BUGTRACKER = "http://bugs.freedesktop.org/buglist.cgi?product=pkg-config"
-SECTION = "console/utils"
-
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRCREV = "d97db4fae4c1cd099b506970b285dc2afd818ea2"
-PV = "0.29.2+git"
-
-SRC_URI = "git://gitlab.freedesktop.org/pkg-config/pkg-config.git;branch=master;protocol=https \
- file://pkg-config-esdk.in \
- file://pkg-config-native.in \
- file://0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch \
- file://0001-Do-not-use-bool-as-a-field-name.patch \
- file://0001-Backport-g-s-size-g-u-intptr-atomics-in-builtin-glib.patch \
- "
-
-inherit autotools pkgconfig
-
-# Because of a faulty test, the current auto mode always evaluates to no,
-# so just continue that behaviour.
-#
-EXTRA_OECONF += "--disable-indirect-deps"
-
-PACKAGECONFIG ??= "glib"
-PACKAGECONFIG:class-native = ""
-
-PACKAGECONFIG[glib] = "--without-internal-glib,--with-internal-glib,glib-2.0"
-
-BBCLASSEXTEND = "native nativesdk"
-
-# Set an empty dev package to ensure the base PN package gets
-# the pkg.m4 macros, pkgconfig does not deliver any other -dev
-# files.
-FILES:${PN}-dev = ""
-FILES:${PN} += "${datadir}/aclocal/pkg.m4"
-
-# 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.
-RPROVIDES:${PN} += "pkgconfig(pkg-config)"
-
-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}|" \
- -e "s|@LIBDIR_NATIVE@|${PKG_CONFIG_LIBDIR}|" \
- < ${UNPACKDIR}/pkg-config-esdk.in > ${B}/pkg-config-esdk
- 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
-}
-
-pkgconfig_sstate_fixup_esdk () {
- if [ "${BB_CURRENTTASK}" = "populate_sysroot_setscene" -a "${WITHIN_EXT_SDK}" = "1" ] ; then
- pkgconfdir="${SSTATE_INSTDIR}/recipe-sysroot-native/${bindir_native}"
- mv $pkgconfdir/pkg-config $pkgconfdir/pkg-config.real
- ln -rs $pkgconfdir/pkg-config-esdk $pkgconfdir/pkg-config
- sed -i -e "s|^pkg-config|pkg-config.real|" $pkgconfdir/pkg-config-native
- fi
-}
-
-SSTATEPOSTUNPACKFUNCS:append:class-native = " pkgconfig_sstate_fixup_esdk"
--
2.43.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 7/7] layer.conf: update pkgconfig-native exclusions to pkgconf-native
2026-03-20 12:27 [PATCH 1/7] sstate/relocatable: remove manual relocation of .pc files Ross Burton
` (4 preceding siblings ...)
2026-03-20 12:27 ` [PATCH 6/7] pkgconfig: remove Ross Burton
@ 2026-03-20 12:27 ` Ross Burton
2026-03-20 12:46 ` Patchtest results for " patchtest
2026-03-20 12:48 ` [OE-core] [PATCH 1/7] sstate/relocatable: remove manual relocation of .pc files Richard Purdie
6 siblings, 1 reply; 13+ messages in thread
From: Ross Burton @ 2026-03-20 12:27 UTC (permalink / raw)
To: openembedded-core
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
meta/conf/layer.conf | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta/conf/layer.conf b/meta/conf/layer.conf
index a7d44a55912..b097c34c7ba 100644
--- a/meta/conf/layer.conf
+++ b/meta/conf/layer.conf
@@ -106,7 +106,7 @@ SSTATE_EXCLUDEDEPS_SYSROOT += "\
.*->meson-native \
.*->ninja-native \
.*->patch-native \
- .*->pkgconfig-native \
+ .*->pkgconf-native \
.*->quilt-native \
^(?!gtk-doc-native).*->xmlto-native \
.*->gperf-native \
@@ -121,7 +121,7 @@ SSTATE_EXCLUDEDEPS_SYSROOT += "\
# libgcc-native and the C runtime. Omitting these build dependencies can save
# significant disk space and speeds up packaging into signed rpms a little.
SSTATE_EXCLUDEDEPS_SYSROOT += "\
- rpm-sequoia-native->(pkgconfig-native|cargo-native|python3-native|rust-native) \
+ rpm-sequoia-native->(pkgconf-native|cargo-native|python3-native|rust-native) \
"
# Nothing needs to depend on libc-initial
# base-passwd/shadow-sysroot don't need their dependencies
--
2.43.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Patchtest results for [PATCH 7/7] layer.conf: update pkgconfig-native exclusions to pkgconf-native
2026-03-20 12:27 ` [PATCH 7/7] layer.conf: update pkgconfig-native exclusions to pkgconf-native Ross Burton
@ 2026-03-20 12:46 ` patchtest
0 siblings, 0 replies; 13+ messages in thread
From: patchtest @ 2026-03-20 12:46 UTC (permalink / raw)
To: Ross Burton; +Cc: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 2219 bytes --]
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:
---
Testing patch /home/patchtest/share/mboxes/7-7-layer.conf-update-pkgconfig-native-exclusions-to-pkgconf-native.patch
FAIL: test commit message presence: Please include a commit message on your patch explaining the change (test_mbox.TestMbox.test_commit_message_presence)
PASS: test Signed-off-by presence (test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message user tags (test_mbox.TestMbox.test_commit_message_user_tags)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)
PASS: test target mailing list (test_mbox.TestMbox.test_target_mailing_list)
SKIP: pretest pylint: No python related patches, skipping test (test_python_pylint.PyLint.pretest_pylint)
SKIP: test CVE tag format: No new CVE patches introduced (test_patch.TestPatch.test_cve_tag_format)
SKIP: test Signed-off-by presence: No new CVE patches introduced (test_patch.TestPatch.test_signed_off_by_presence)
SKIP: test Upstream-Status presence: No new CVE patches introduced (test_patch.TestPatch.test_upstream_status_presence_format)
SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test pylint: No python related patches, skipping test (test_python_pylint.PyLint.test_pylint)
SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head)
---
Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 1/7] sstate/relocatable: remove manual relocation of .pc files
2026-03-20 12:27 [PATCH 1/7] sstate/relocatable: remove manual relocation of .pc files Ross Burton
` (5 preceding siblings ...)
2026-03-20 12:27 ` [PATCH 7/7] layer.conf: update pkgconfig-native exclusions to pkgconf-native Ross Burton
@ 2026-03-20 12:48 ` Richard Purdie
6 siblings, 0 replies; 13+ messages in thread
From: Richard Purdie @ 2026-03-20 12:48 UTC (permalink / raw)
To: ross.burton, openembedded-core
On Fri, 2026-03-20 at 12:27 +0000, Ross Burton via lists.openembedded.org wrote:
> There's no need to manually relocate .pc files in relocatable.bbclass
> as the path remapping in sstate.bbclass can do it, if we add .pc to
> SSTATE_SCAN_FILES.
>
> This removes some hardcoded behaviour, and puts absolute sysroot paths
> into the .pc files instead of paths like ${pcfiledir}/../../include,
> which makes it possible for pkgconfig to normalise and strip redundant
> paths.
>
> This also has the side effect of not forcibly turning .pc symlinks into
> real files, which the sed was doing.
Please don't effectively revert https://git.openembedded.org/openembedded-core/commit/meta/classes/relocatable.bbclass?id=a3f4e9ff55c7d9eba175e83eb6c99cf349a74432
The sstate relocation code creates loads of copies of files rather than
allowing us to hardlink them and is bad for performance. By making the
files relocatable, we don't have to do all the fixup handling in that
code and it is generally lower overhead on the system. I think I did
this to stop a lot of sstate objects needing relocations at all.
If there is a symlink issue, we should just make it skip those.
Cheers,
Richard
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 5/7] class/pkgconfig: use pkgconf instead of pkgconfig
2026-03-20 12:27 ` [PATCH 5/7] class/pkgconfig: use pkgconf instead of pkgconfig Ross Burton
@ 2026-03-21 1:40 ` Khem Raj
2026-03-21 11:59 ` Ross Burton
2026-03-25 0:05 ` Dmitry Baryshkov
1 sibling, 1 reply; 13+ messages in thread
From: Khem Raj @ 2026-03-21 1:40 UTC (permalink / raw)
To: ross.burton; +Cc: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 3473 bytes --]
FWIW there are two recipes in meta-oe which are regressing with this
xmlsec1 and protobuf
https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/5941365/raw_inline
On Fri, Mar 20, 2026 at 5:27 AM Ross Burton via lists.openembedded.org
<ross.burton=arm.com@lists.openembedded.org> wrote:
> The last meaningful change to freedesktop.org pkgconfig was in 2019, but
> pkgconf is actively maintained.
>
> Major distributions such as Fedora (and derivates), Debian (ditto), Arch
> Linux, Buildroot, and Alpine have all moved to pkgconf already.
>
> There's a subtle behaviour change between pkgconfig and pkgconf, whereas
> pkgconfig appends the sysroot to PKG_CONFIG_SYSTEM_INCLUDE_PATH pkgconf
> does not, so we need to sysroot-prefix those variables.
>
> Signed-off-by: Ross Burton <ross.burton@arm.com>
> ---
> meta/classes-recipe/pkgconfig.bbclass | 6 +++---
> meta/conf/distro/include/default-providers.inc | 6 +++---
> 2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/meta/classes-recipe/pkgconfig.bbclass
> b/meta/classes-recipe/pkgconfig.bbclass
> index c0d91393b36..4912b9904ba 100644
> --- a/meta/classes-recipe/pkgconfig.bbclass
> +++ b/meta/classes-recipe/pkgconfig.bbclass
> @@ -4,7 +4,7 @@
> # SPDX-License-Identifier: MIT
> #
>
> -DEPENDS:prepend = "pkgconfig-native "
> +DEPENDS:prepend = "pkgconf-native "
>
> export PKG_CONFIG_PATH ?= ""
> export PKG_CONFIG_LIBDIR ?=
> "${STAGING_LIBDIR}/pkgconfig:${STAGING_DATADIR}/pkgconfig"
> @@ -12,5 +12,5 @@ export PKG_CONFIG_LIBDIR ?=
> "${STAGING_LIBDIR}/pkgconfig:${STAGING_DATADIR}/pkgc
> 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}"
> +export PKG_CONFIG_SYSTEM_LIBRARY_PATH ?=
> "${STAGING_BASELIBDIR}:${STAGING_LIBDIR}"
> +export PKG_CONFIG_SYSTEM_INCLUDE_PATH ?= "${STAGING_INCDIR}"
> diff --git a/meta/conf/distro/include/default-providers.inc
> b/meta/conf/distro/include/default-providers.inc
> index 5101ad78f88..c0a5d1c75e5 100644
> --- a/meta/conf/distro/include/default-providers.inc
> +++ b/meta/conf/distro/include/default-providers.inc
> @@ -56,9 +56,9 @@ PREFERRED_PROVIDER_getopt ?= "util-linux-getopt"
> PREFERRED_PROVIDER_openssl ?= "openssl"
> PREFERRED_PROVIDER_openssl-native ?= "openssl-native"
> PREFERRED_PROVIDER_nativesdk-openssl ?= "nativesdk-openssl"
> -PREFERRED_PROVIDER_pkgconfig ?= "pkgconfig"
> -PREFERRED_PROVIDER_nativesdk-pkgconfig ?= "nativesdk-pkgconfig"
> -PREFERRED_PROVIDER_pkgconfig-native ?= "pkgconfig-native"
> +PREFERRED_PROVIDER_pkgconfig ?= "pkgconf"
> +PREFERRED_PROVIDER_nativesdk-pkgconfig ?= "nativesdk-pkgconf"
> +PREFERRED_PROVIDER_pkgconfig-native ?= "pkgconf-native"
> PREFERRED_RPROVIDER_initd-functions ?= "initscripts"
>
> PREFERRED_PROVIDER_nativesdk-mesa ?= "nativesdk-mesa"
> --
> 2.43.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#233603):
> https://lists.openembedded.org/g/openembedded-core/message/233603
> Mute This Topic: https://lists.openembedded.org/mt/118416246/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
[-- Attachment #2: Type: text/html, Size: 4917 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 5/7] class/pkgconfig: use pkgconf instead of pkgconfig
2026-03-21 1:40 ` [OE-core] " Khem Raj
@ 2026-03-21 11:59 ` Ross Burton
0 siblings, 0 replies; 13+ messages in thread
From: Ross Burton @ 2026-03-21 11:59 UTC (permalink / raw)
To: Khem Raj; +Cc: openembedded-core@lists.openembedded.org
On 21 Mar 2026, at 01:40, Khem Raj <raj.khem@gmail.com> wrote:
>
> FWIW there are two recipes in meta-oe which are regressing with this
>
> xmlsec1 and protobuf
>
> https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/5941365/raw_inline
The protobuf change is because there’s some frankly horrifying sedding of .pc files which I’m surprised survived the recent changes to how pkgconfig.bbclass works. There’s got to be a better way to do this.
The xmlsec failure looks similar.
I can look at these on Monday and try and sort out the mess.
Ross
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 5/7] class/pkgconfig: use pkgconf instead of pkgconfig
2026-03-20 12:27 ` [PATCH 5/7] class/pkgconfig: use pkgconf instead of pkgconfig Ross Burton
2026-03-21 1:40 ` [OE-core] " Khem Raj
@ 2026-03-25 0:05 ` Dmitry Baryshkov
2026-03-25 0:32 ` [OE-core] " Khem Raj
1 sibling, 1 reply; 13+ messages in thread
From: Dmitry Baryshkov @ 2026-03-25 0:05 UTC (permalink / raw)
To: Ross Burton; +Cc: openembedded-core
On Fri, Mar 20, 2026 at 12:27:29PM +0000, Ross Burton wrote:
> The last meaningful change to freedesktop.org pkgconfig was in 2019, but
> pkgconf is actively maintained.
>
> Major distributions such as Fedora (and derivates), Debian (ditto), Arch
> Linux, Buildroot, and Alpine have all moved to pkgconf already.
>
> There's a subtle behaviour change between pkgconfig and pkgconf, whereas
> pkgconfig appends the sysroot to PKG_CONFIG_SYSTEM_INCLUDE_PATH pkgconf
> does not, so we need to sysroot-prefix those variables.
>
> Signed-off-by: Ross Burton <ross.burton@arm.com>
> ---
> meta/classes-recipe/pkgconfig.bbclass | 6 +++---
> meta/conf/distro/include/default-providers.inc | 6 +++---
> 2 files changed, 6 insertions(+), 6 deletions(-)
FWIW pkgconfig -> pkgconf change also break gst-plugins-imsdk build in
meta-qcom. Reverting this series makes the build succeed.
| FAILED: [code=1] gst-plugin-mlaconverter/CMakeFiles/gstqtimlaconverter.dir/audio-converter-engine.cc.o
| ccache /home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot-native/usr/bin/aarch64-qcom-linux/aarch64-qcom-linux-g++ --sysroot=/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot -DHAVE_CONFIG_H -DHAVE_LINUX_DMA_BUF_H -Dgstqtimlaconverter_EXPORTS -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/build/gst-plugin-mlaconverter -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/sources/gst-plugins-imsdk-0.1.0/gst-plugin-mlaconverter -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot/usr/include/gstreamer-1.0 -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot/usr/include/glib-2.0 -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot/usr/lib/glib-2.0/include -I/usr/include/gstreamer-1.0 -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/sources/gst-plugins-imsdk-0.1.0/gst-plugin-base -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot/usr/include/json-glib-1.0 -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot/usr/include/libmount -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot/usr/include/blkid -march=armv8.2-a+crypto -mbranch-protection=standard -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot -O2 -g -fcanon-prefix-map -ffile-prefix-map=/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/sources/gst-plugins-imsdk-0.1.0=/usr/src/debug/gst-plugins-imsdk/0.1.0 -ffile-prefix-map=/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/build=/usr/src/debug/gst-plugins-imsdk/0.1.0 -ffile-prefix-map=/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot= -ffile-prefix-map=/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot-native= -pipe -fvisibility-inlines-hidden -Wall -Wextra -Werror -Wno-unused-parameter -std=gnu++17 -fPIC -MD -MT gst-plugin-mlaconverter/CMakeFiles/gstqtimlaconverter.dir/audio-converter-engine.cc.o -MF gst-plugin-mlaconverter/CMakeFiles/gstqtimlaconverter.dir/audio-converter-engine.cc.o.d -o gst-plugin-mlaconverter/CMakeFiles/gstqtimlaconverter.dir/audio-converter-engine.cc.o -c /home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/sources/gst-plugins-imsdk-0.1.0/gst-plugin-mlaconverter/audio-converter-engine.cc
| cc1plus: error: include location "/usr/include/gstreamer-1.0" is unsafe for cross-compilation [-Werror=poison-system-directories]
| cc1plus: all warnings being treated as errors
| ninja: build stopped: subcommand failed.
|
| WARNING: exit code 1 from a shell command.
ERROR: Task (/home/lumag/Projects/RPB/build-rpb/conf/../../layers/meta-qcom/recipes-multimedia/imsdk/gst-plugins-imsdk_0.1.0.bb:do_compile) failed with exit code '1'
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 5/7] class/pkgconfig: use pkgconf instead of pkgconfig
2026-03-25 0:05 ` Dmitry Baryshkov
@ 2026-03-25 0:32 ` Khem Raj
0 siblings, 0 replies; 13+ messages in thread
From: Khem Raj @ 2026-03-25 0:32 UTC (permalink / raw)
To: dmitry.baryshkov; +Cc: Ross Burton, openembedded-core
[-- Attachment #1: Type: text/plain, Size: 5942 bytes --]
On Tue, Mar 24, 2026 at 5:05 PM Dmitry Baryshkov via lists.openembedded.org
<dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
> On Fri, Mar 20, 2026 at 12:27:29PM +0000, Ross Burton wrote:
> > The last meaningful change to freedesktop.org pkgconfig was in 2019, but
> > pkgconf is actively maintained.
> >
> > Major distributions such as Fedora (and derivates), Debian (ditto), Arch
> > Linux, Buildroot, and Alpine have all moved to pkgconf already.
> >
> > There's a subtle behaviour change between pkgconfig and pkgconf, whereas
> > pkgconfig appends the sysroot to PKG_CONFIG_SYSTEM_INCLUDE_PATH pkgconf
> > does not, so we need to sysroot-prefix those variables.
> >
> > Signed-off-by: Ross Burton <ross.burton@arm.com>
> > ---
> > meta/classes-recipe/pkgconfig.bbclass | 6 +++---
> > meta/conf/distro/include/default-providers.inc | 6 +++---
> > 2 files changed, 6 insertions(+), 6 deletions(-)
>
> FWIW pkgconfig -> pkgconf change also break gst-plugins-imsdk build in
> meta-qcom. Reverting this series makes the build succeed.
>
> | FAILED: [code=1]
> gst-plugin-mlaconverter/CMakeFiles/gstqtimlaconverter.dir/audio-converter-engine.cc.o
> | ccache
> /home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot-native/usr/bin/aarch64-qcom-linux/aarch64-qcom-linux-g++
> --sysroot=/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot
> -DHAVE_CONFIG_H -DHAVE_LINUX_DMA_BUF_H -Dgstqtimlaconverter_EXPORTS
> -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/build/gst-plugin-mlaconverter
> -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/sources/gst-plugins-imsdk-0.1.0/gst-plugin-mlaconverter
> -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot/usr/include/gstreamer-1.0
> -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot/usr/include/glib-2.0
> -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot/usr/lib/glib-2.0/include
> -I/usr/include/gstreamer-1.0
> -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/sources/gst-plugins-imsdk-0.1.0/gst-plugin-base
> -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot/usr/include/json-glib-1.0
> -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot/usr/include/libmount
> -I/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot/usr/include/blkid
> -march=armv8.2-a+crypto -mbranch-protection=standard
> -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat
> -Wformat-security -Werror=format-security
> --sysroot=/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot
> -O2 -g -fcanon-prefix-map
> -ffile-prefix-map=/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/sources/gst-plugins-imsdk-0.1.0=/usr/src/debug/gst-plugins-imsdk/0.1.0
> -ffile-prefix-map=/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/build=/usr/src/debug/gst-plugins-imsdk/0.1.0
> -ffile-prefix-map=/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot=
> -ffile-prefix-map=/home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/recipe-sysroot-native=
> -pipe -fvisibility-inlines-hidden -Wall -Wextra -Werror
> -Wno-unused-parameter -std=gnu++17 -fPIC -MD -MT
> gst-plugin-mlaconverter/CMakeFiles/gstqtimlaconverter.dir/audio-converter-engine.cc.o
> -MF
> gst-plugin-mlaconverter/CMakeFiles/gstqtimlaconverter.dir/audio-converter-engine.cc.o.d
> -o
> gst-plugin-mlaconverter/CMakeFiles/gstqtimlaconverter.dir/audio-converter-engine.cc.o
> -c
> /home/lumag/Projects/RPB/build-rpb/tmp-qcom-distro/work/armv8-2a-qcom-linux/gst-plugins-imsdk/0.1.0/sources/gst-plugins-imsdk-0.1.0/gst-plugin-mlaconverter/audio-converter-engine.cc
> | cc1plus: error: include location "/usr/include/gstreamer-1.0" is unsafe
> for cross-compilation [-Werror=poison-system-directories]
> | cc1plus: all warnings being treated as errors
> | ninja: build stopped: subcommand failed.
> |
> | WARNING: exit code 1 from a shell command.
> ERROR: Task
> (/home/lumag/Projects/RPB/build-rpb/conf/../../layers/meta-qcom/recipes-multimedia/imsdk/gst-plugins-imsdk_0.1.0.bb:do_compile)
> failed with exit code '1'
>
>
I wonder if CMake is using unwrapper'ed version of pkgconf and not
filterning non sysrooted target paths. Try changing the CMakefiles.txt for
the concerned plugin to use
IMPORTED_TARGET and see if it helps
change
pkg_check_modules(GST
REQUIRED gstreamer-1.0>=${GST_VERSION_REQUIRED})
to
pkg_check_modules(GST
REQUIRED IMPORTED_TARGET gstreamer-1.0>=${GST_VERSION_REQUIRED})
in
https://github.com/qualcomm/gst-plugins-imsdk/blob/main/gst-plugin-mlaconverter/CMakeLists.txt
It might help.
--
> With best wishes
> Dmitry
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#233836):
> https://lists.openembedded.org/g/openembedded-core/message/233836
> Mute This Topic: https://lists.openembedded.org/mt/118416246/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
[-- Attachment #2: Type: text/html, Size: 7423 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-03-25 0:33 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-20 12:27 [PATCH 1/7] sstate/relocatable: remove manual relocation of .pc files Ross Burton
2026-03-20 12:27 ` [PATCH 2/7] pkgconf: inherit pkgconfig Ross Burton
2026-03-20 12:27 ` [PATCH 3/7] pkgconf: ensure pkgconf-native doesn't try and look on the host Ross Burton
2026-03-20 12:27 ` [PATCH 4/7] pkgconf: minimise wrapper Ross Burton
2026-03-20 12:27 ` [PATCH 5/7] class/pkgconfig: use pkgconf instead of pkgconfig Ross Burton
2026-03-21 1:40 ` [OE-core] " Khem Raj
2026-03-21 11:59 ` Ross Burton
2026-03-25 0:05 ` Dmitry Baryshkov
2026-03-25 0:32 ` [OE-core] " Khem Raj
2026-03-20 12:27 ` [PATCH 6/7] pkgconfig: remove Ross Burton
2026-03-20 12:27 ` [PATCH 7/7] layer.conf: update pkgconfig-native exclusions to pkgconf-native Ross Burton
2026-03-20 12:46 ` Patchtest results for " patchtest
2026-03-20 12:48 ` [OE-core] [PATCH 1/7] sstate/relocatable: remove manual relocation of .pc files Richard Purdie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox