[PATCH 1/2] linux-kernel: Fix building of linux-libc-dev-*-cross packages

1 view
Skip to first unread message

Jan Kiszka

unread,
Dec 18, 2025, 12:57:05 PM (15 hours ago) Dec 18
to isar-users, Tobias Schaffner, Felix Moessbauer, Anton Mikanovich, Stefan Koch
From: Jan Kiszka <jan.k...@siemens.com>

The cross variant of linux-libc-dev is always built along with the
kernel, just like the native variant. Ensure this by dropping the wrong
cross-pkgs override, enabling pkg.${BPN}.cross when :cross-profile is
active as well.

Fixes: afba99fe6aeb ("linux-custom: fix name collision on cross profile")
Signed-off-by: Jan Kiszka <jan.k...@siemens.com>
---

Without test cases yet, not sure I manage to find time for them
tomorrow, but I'd like to share already in case someone runs into the
issue. Supposed to substitute "build the linux-kernels cross libc-dev
package if cross-profile is active" by Tobias.

meta/classes-recipe/linux-kernel.bbclass | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/meta/classes-recipe/linux-kernel.bbclass b/meta/classes-recipe/linux-kernel.bbclass
index 8f38a617..4a304833 100644
--- a/meta/classes-recipe/linux-kernel.bbclass
+++ b/meta/classes-recipe/linux-kernel.bbclass
@@ -109,13 +109,8 @@ KERNEL_NAME_PROVIDED ?= "${@ d.getVar('BPN').partition('linux-')[2]}"

# Determine cross-profile override
python() {
- if d.getVar("DISTRO_ARCH") != d.getVar("HOST_ARCH") and bb.utils.to_boolean(d.getVar("ISAR_CROSS_COMPILE")):
- if "class-native" not in d.getVar("OVERRIDES").split(":"):
- # cross compiling
- d.appendVar("OVERRIDES", ":cross-profile")
- else:
- # generating -cross packages (in HOST_ARCH) from a -native variant
- d.appendVar("OVERRIDES", ":cross-pkgs")
+ if d.getVar("DISTRO_ARCH") != d.getVar("HOST_ARCH") and bb.utils.to_boolean(d.getVar("ISAR_CROSS_COMPILE")) and "class-native" not in d.getVar("OVERRIDES").split(":"):
+ d.appendVar("OVERRIDES", ":cross-profile")
}

# Default profiles and provides
@@ -125,12 +120,12 @@ BUILD_PROFILES = "pkg.${BPN}.kernel pkg.${BPN}.kbuild"
BBCLASSEXTEND:append:cross-profile = " kbuildtarget"

# When cross-profile is active:
-# build only kernel (including config) with the default variant of the recipe
-BUILD_PROFILES:cross-profile = "pkg.${BPN}.kernel"
+# Build kernel (including config) cross packages (linux-libc-dev-*-cross)
+# with the default variant of the recipe
+BUILD_PROFILES:cross-profile = "pkg.${BPN}.kernel pkg.${BPN}.cross"

# -native: kbuild package for host
BUILD_PROFILES:class-native = "pkg.${BPN}.kbuild"
-BUILD_PROFILES:append:cross-pkgs = " pkg.${BPN}.cross"
RECIPE_PROVIDES:class-native = " \
linux-headers-${KERNEL_NAME_PROVIDED} \
linux-kbuild-${KERNEL_NAME_PROVIDED}"
--
2.51.0

Jan Kiszka

unread,
Dec 18, 2025, 12:57:55 PM (15 hours ago) Dec 18
to isar-users, Tobias Schaffner, Felix Moessbauer, Anton Mikanovich, Stefan Koch
From: Jan Kiszka <jan.k...@siemens.com>

Avoid the the kbuildtarget also provides linux-libc-dev*. Furthermore,
only provide the cross variant when it is actually built.

While at it, drop the unused :nolibcdev override to avoid confusion.

Signed-off-by: Jan Kiszka <jan.k...@siemens.com>
---
meta/classes-recipe/linux-kernel.bbclass | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/meta/classes-recipe/linux-kernel.bbclass b/meta/classes-recipe/linux-kernel.bbclass
index 4a304833..37299412 100644
--- a/meta/classes-recipe/linux-kernel.bbclass
+++ b/meta/classes-recipe/linux-kernel.bbclass
@@ -140,6 +140,9 @@ BUILD_PROFILES:class-kbuildtarget = "pkg.${BPN}.kbuild"
RECIPE_PROVIDES:class-kbuildtarget = " \
linux-headers-${KERNEL_NAME_PROVIDED} \
linux-kbuild-${KERNEL_NAME_PROVIDED}"
+RECIPE_PROVIDES:remove:class-kbuildtarget = " \
+ linux-libc-dev \
+ linux-libc-dev-${DISTRO_ARCH}-cross"
# Using DEPENDS instead of RDEPENDS to ensure creation of kernel including
# pregenerated kernel config before target specific linux-kbuild package build
DEPENDS:class-kbuildtarget = "${BPN}"
@@ -156,12 +159,12 @@ RECIPE_PROVIDES = " \
"

# Provide linux-libc-dev packages unless nolibcdev profile used
-OVERRIDES:append = ":${@ bb.utils.contains('DEB_BUILD_PROFILES', 'pkg.{}.nolibcdev'.format(d.getVar('BPN')), 'nolibcdev', 'libcdev', d)}"
+OVERRIDES:append = ":${@ bb.utils.contains('DEB_BUILD_PROFILES', 'pkg.{}.nolibcdev'.format(d.getVar('BPN')), '', 'libcdev', d)}"

RECIPE_PROVIDES:append:libcdev = " \
- linux-libc-dev \
- linux-libc-dev-${DISTRO_ARCH}-cross \
-"
+ linux-libc-dev"
+RECIPE_PROVIDES:append:libcdev:cross-profile = " \
+ linux-libc-dev-${DISTRO_ARCH}-cross"

# When cross-profile is active:
# kbuild package is provided by -native or -kbuildtarget variant. Also headers
--
2.51.0

Reply all
Reply to author
Forward
0 new messages