From: Jan Kiszka <jan.kiszka@siemens.com>
To: "Moessbauer, Felix (T CED OES-DE)" <felix.moessbauer@siemens.com>,
"isar-users@googlegroups.com" <isar-users@googlegroups.com>
Cc: "Koch, Stefan (DI PA DCP R&D 3)" <stefan-koch@siemens.com>
Subject: Re: custom-kernel headers: scripts are wrong architecture
Date: Thu, 18 Jan 2024 10:43:09 +0100 [thread overview]
Message-ID: <f587b12e-3827-4071-bcee-c261fd53096a@siemens.com> (raw)
In-Reply-To: <a96923ff202b91ecf6bf2a9c2215017701f115e0.camel@siemens.com>
On 18.01.24 10:41, Moessbauer, Felix (T CED OES-DE) wrote:
> On Thu, 2024-01-18 at 08:52 +0100, Jan Kiszka wrote:
>> On 17.01.24 21:37, Moessbauer, Felix (T CED OES-DE) wrote:
>>> Dear devs,
>>>
>>> while debugging a broken non-cross kernel module build, I found
>>> that
>>> there is a more generic issue about our linux-headers-
>>> ${KERNEL_NAME}
>>> package: It might contain the kernel scripts (ELF binaries) in the
>>> wrong architecture. This only happens if the kernel itself is
>>> cross-
>>> compiled.
>>>
>>> Let's consider the following example, where we compile for a debian
>>> bookworm arm64 target. We further look at the 'fixdeps' script from
>>> the
>>> kernel tools (required during kmod builds).
>>>
>>> Example 1 (stock kernel):
>>>
>>> The script is located in package linux-kbuild-6.1 (dependency of
>>> linux-
>>> headers-<...>).
>>> - file /usr/lib/linux-kbuild-6.1/scripts/basic/fixdep: ELF 64-bit
>>> LSB
>>> pie executable, ARM aarch64, ...
>>> - linux-headers-arm64 : arm64
>>> - linux-kbuild-6.1 : arm64
>>>
>>> Example 2 (custom kernel):
>>>
>>> - file /usr/src/linux-headers-6.1.54-cip6-rt3/scripts/basic/fixdep:
>>> ELF
>>> 64-bit LSB pie executable, x86-64
>>> - linux-headers-iot2050-rt : arm64
>>>
>>> In example 2, the kmod build is obviously broken, as the emulated
>>> build
>>> will not be able to execute the x64 binary. Also, in an :arm64
>>> package,
>>> there must be no foreign architecture binaries.
>>>
>>> This behavior can also be reproduced, by cross-compiling a target
>>> with
>>> a custom kernel and disabling the cross-build for a module, using
>>> ISAR_CROSS_COMPILE="0" in the module build recipe.
>>>
>>> It would be great, if someone could have a look there. At a first
>>> glance, this issue looks closely related to "linux-custom: Split up
>>> binaries from kernel headers to kbuild packages". Maybe Stefan can
>>> comment on this as well.
>>
>> That is exactly what that patch is addressing. Stefan told me
>> recently
>> that he rebased and refreshed that, and I hope we will see an update
>> soon. His aim is also resolving the issue that we currently build the
>> header and later on the kbuild package for the builder arch, rather
>> than
>
> I just rebased the v4 of Stefans series and checked it against this
> issue: Unfortunately also the new approach with having the scripts in
> the kbuild package still contains the scripts in the wrong
> architecture:
>
> linux-kbuild-iot2050-rt-cross : arm64
> file /usr/lib/linux-kbuild-6.1.54-cip6-rt3/scripts/basic/fixdep
> /usr/lib/linux-kbuild-6.1.54-cip6-rt3/scripts/basic/fixdep: ELF 64-bit
> LSB pie executable, x86-64
>
> By that I'm pretty sure, the issue here is independent and actually
> arises from how we build the kernel (for building the scripts the wrong
> compiler / toolchain is used).
>
Yes, there is more need than just the cited patch, and it's more complex
than just "do X". That's why it wasn't solved yet. At the same time, we
had not many use cases where the current behaviour of Isar was a
practical problem, and that's why it is like it is for, I don't know, 5
years now.
Jan
--
Siemens AG, Technology
Linux Expert Center
next prev parent reply other threads:[~2024-01-18 9:43 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-17 20:37 MOESSBAUER, Felix
2024-01-18 7:52 ` Jan Kiszka
2024-01-18 9:41 ` MOESSBAUER, Felix
2024-01-18 9:43 ` Jan Kiszka [this message]
2024-01-18 9:59 ` Koch, Stefan
2024-04-30 16:54 ` Koch, Stefan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f587b12e-3827-4071-bcee-c261fd53096a@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=felix.moessbauer@siemens.com \
--cc=isar-users@googlegroups.com \
--cc=stefan-koch@siemens.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox