[PATCH] meta: build the linux-kernels cross libc-dev package if cross-profile is active

2 views
Skip to first unread message

Tobias Schaffner

unread,
Dec 18, 2025, 5:08:35 AM (yesterday) Dec 18
to isar-...@googlegroups.com, jan.k...@siemens.com, felix.mo...@siemens.com, ami...@ilbers.de, Tobias Schaffner
The linux-libc-dev-${DISTRO_ARCH}-cross package is not created when cross
building the kernel because the pkg.${BPN}.cross build profile is only
activated for -native builds with the :cross-pkgs override.

This is an issue for custom kernels, because without the custom cross package,
dependent packages fall back to the default linux-libc-dev, which may lack
custom kernel headers.

Ensure that the cross package is also build for cross-builds when
KERNEL_LIBC_DEV_DEPLOY=1 is set, by adding the pkg.${BPN}.cross profile to the
default BUILD_PROFILES.

Signed-off-by: Tobias Schaffner <tobias.s...@siemens.com>
---
meta/classes-recipe/linux-kernel.bbclass | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/meta/classes-recipe/linux-kernel.bbclass b/meta/classes-recipe/linux-kernel.bbclass
index 8f38a617..c9ac3336 100644
--- a/meta/classes-recipe/linux-kernel.bbclass
+++ b/meta/classes-recipe/linux-kernel.bbclass
@@ -126,7 +126,9 @@ 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"
+# and build the cross libc-dev package if KERNEL_LIBC_DEV_DEPLOY is enabled
+BUILD_PROFILES:cross-profile = "pkg.${BPN}.kernel \
+ ${@ 'pkg.' + d.getVar('BPN') + '.cross' if bb.utils.to_boolean(d.getVar('KERNEL_LIBC_DEV_DEPLOY')) else '' }"

# -native: kbuild package for host
BUILD_PROFILES:class-native = "pkg.${BPN}.kbuild"
--
2.43.0

MOESSBAUER, Felix

unread,
Dec 18, 2025, 5:17:33 AM (yesterday) Dec 18
to Schaffner, Tobias, isar-...@googlegroups.com, ami...@ilbers.de, Kiszka, Jan, Koch, Stefan
On Thu, 2025-12-18 at 10:57 +0100, Tobias Schaffner wrote:
> The linux-libc-dev-${DISTRO_ARCH}-cross package is not created when cross
> building the kernel because the pkg.${BPN}.cross build profile is only
> activated for -native builds with the :cross-pkgs override.
>
> This is an issue for custom kernels, because without the custom cross package,
> dependent packages fall back to the default linux-libc-dev, which may lack
> custom kernel headers.
>
> Ensure that the cross package is also build for cross-builds when
> KERNEL_LIBC_DEV_DEPLOY=1 is set, by adding the pkg.${BPN}.cross profile to the
> default BUILD_PROFILES.

Hi,

this issue probably was found on the xenomai-images layer. As this is
the second or third time we have issues on the libc-dev dependency
chain, we definitely need a test.

Please also try to find the commit that broke it and add a fixes tag.

+ CC Stefan

Best regards,
Felix

>
> Signed-off-by: Tobias Schaffner <tobias.s...@siemens.com>
> ---
> meta/classes-recipe/linux-kernel.bbclass | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/meta/classes-recipe/linux-kernel.bbclass b/meta/classes-recipe/linux-kernel.bbclass
> index 8f38a617..c9ac3336 100644
> --- a/meta/classes-recipe/linux-kernel.bbclass
> +++ b/meta/classes-recipe/linux-kernel.bbclass
> @@ -126,7 +126,9 @@ 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"
> +# and build the cross libc-dev package if KERNEL_LIBC_DEV_DEPLOY is enabled
> +BUILD_PROFILES:cross-profile = "pkg.${BPN}.kernel \
> + ${@ 'pkg.' + d.getVar('BPN') + '.cross' if bb.utils.to_boolean(d.getVar('KERNEL_LIBC_DEV_DEPLOY')) else '' }"
>
> # -native: kbuild package for host
> BUILD_PROFILES:class-native = "pkg.${BPN}.kbuild"
> --
> 2.43.0

--
Siemens AG
Linux Expert Center
Friedrich-Ludwig-Bauer-Str. 3
85748 Garching, Germany

Jan Kiszka

unread,
Dec 18, 2025, 7:13:24 AM (yesterday) Dec 18
to Moessbauer, Felix (FT RPD CED OES-DE), Schaffner, Tobias (FT RPD CED OES-DE), isar-...@googlegroups.com, ami...@ilbers.de, Koch, Stefan (DI PA DCP R&D 3)
On 18.12.25 11:17, Moessbauer, Felix (FT RPD CED OES-DE) wrote:
> On Thu, 2025-12-18 at 10:57 +0100, Tobias Schaffner wrote:
>> The linux-libc-dev-${DISTRO_ARCH}-cross package is not created when cross
>> building the kernel because the pkg.${BPN}.cross build profile is only
>> activated for -native builds with the :cross-pkgs override.
>>
>> This is an issue for custom kernels, because without the custom cross package,
>> dependent packages fall back to the default linux-libc-dev, which may lack
>> custom kernel headers.
>>
>> Ensure that the cross package is also build for cross-builds when
>> KERNEL_LIBC_DEV_DEPLOY=1 is set, by adding the pkg.${BPN}.cross profile to the
>> default BUILD_PROFILES.
>

Testing this now as well. Thanks already!

> Hi,
>
> this issue probably was found on the xenomai-images layer. As this is
> the second or third time we have issues on the libc-dev dependency
> chain, we definitely need a test.
>

Yes, we need that. I wasn't updating xenomai-images for a while, so I
didn't catch the regression this way.

> Please also try to find the commit that broke it and add a fixes tag.
>

Most likely afba99fe6aeb7d4aae1209e37d1f64458b31f62e.

Jan

> + CC Stefan
>
> Best regards,
> Felix
>
>>
>> Signed-off-by: Tobias Schaffner <tobias.s...@siemens.com>
>> ---
>> meta/classes-recipe/linux-kernel.bbclass | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/meta/classes-recipe/linux-kernel.bbclass b/meta/classes-recipe/linux-kernel.bbclass
>> index 8f38a617..c9ac3336 100644
>> --- a/meta/classes-recipe/linux-kernel.bbclass
>> +++ b/meta/classes-recipe/linux-kernel.bbclass
>> @@ -126,7 +126,9 @@ 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"
>> +# and build the cross libc-dev package if KERNEL_LIBC_DEV_DEPLOY is enabled
>> +BUILD_PROFILES:cross-profile = "pkg.${BPN}.kernel \
>> + ${@ 'pkg.' + d.getVar('BPN') + '.cross' if bb.utils.to_boolean(d.getVar('KERNEL_LIBC_DEV_DEPLOY')) else '' }"
>>
>> # -native: kbuild package for host
>> BUILD_PROFILES:class-native = "pkg.${BPN}.kbuild"
>> --
>> 2.43.0
>


--
Siemens AG, Foundational Technologies
Linux Expert Center

Jan Kiszka

unread,
Dec 18, 2025, 7:27:12 AM (yesterday) Dec 18
to Moessbauer, Felix (FT RPD CED OES-DE), Schaffner, Tobias (FT RPD CED OES-DE), isar-...@googlegroups.com, ami...@ilbers.de, Koch, Stefan (DI PA DCP R&D 3)
On 18.12.25 13:13, 'Jan Kiszka' via isar-users wrote:
> On 18.12.25 11:17, Moessbauer, Felix (FT RPD CED OES-DE) wrote:
>> On Thu, 2025-12-18 at 10:57 +0100, Tobias Schaffner wrote:
>>> The linux-libc-dev-${DISTRO_ARCH}-cross package is not created when cross
>>> building the kernel because the pkg.${BPN}.cross build profile is only
>>> activated for -native builds with the :cross-pkgs override.
>>>
>>> This is an issue for custom kernels, because without the custom cross package,
>>> dependent packages fall back to the default linux-libc-dev, which may lack
>>> custom kernel headers.
>>>
>>> Ensure that the cross package is also build for cross-builds when
>>> KERNEL_LIBC_DEV_DEPLOY=1 is set, by adding the pkg.${BPN}.cross profile to the
>>> default BUILD_PROFILES.
>>
>
> Testing this now as well. Thanks already!
>
>> Hi,
>>
>> this issue probably was found on the xenomai-images layer. As this is
>> the second or third time we have issues on the libc-dev dependency
>> chain, we definitely need a test.
>>
>
> Yes, we need that. I wasn't updating xenomai-images for a while, so I
> didn't catch the regression this way.
>
>> Please also try to find the commit that broke it and add a fixes tag.
>>
>
> Most likely afba99fe6aeb7d4aae1209e37d1f64458b31f62e.
>
> Jan
>

BTW, we also still have an issues with multiple providers for linux-libc-dev and -cross at bitbake level, e.g.:

NOTE: Multiple providers are available for linux-libc-dev-armhf-cross (linux-xenomai-4, linux-xenomai-4-kbuildtarget)
Consider defining a PREFERRED_PROVIDER entry to match linux-libc-dev-armhf-cross

Jan

Jan Kiszka

unread,
Dec 18, 2025, 7:40:05 AM (yesterday) Dec 18
to Tobias Schaffner, isar-...@googlegroups.com, felix.mo...@siemens.com, ami...@ilbers.de
Why conditional? pkg.*.cross is also not only pulling
linux-libc-dev-*-cross. It's also switching to linux-kbuild-*-cross. If
that does not matter, why not just

diff --git a/meta/classes-recipe/linux-kernel.bbclass b/meta/classes-recipe/linux-kernel.bbclass
index c9ac3336..1d55a50e 100644
--- a/meta/classes-recipe/linux-kernel.bbclass
+++ b/meta/classes-recipe/linux-kernel.bbclass
@@ -113,9 +113,8 @@ python() {
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")
+ # generating -cross packages (in HOST_ARCH) from a -native variant
+ d.appendVar("OVERRIDES", ":cross-pkgs")
}

# Default profiles and provides


If it does matter, we have some other issue now.
Reply all
Reply to author
Forward
0 new messages