[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Dependencies of linux-headers-<arch> packages

Hi Felix,

Quoting Moessbauer, Felix (2022-03-03 12:13:34)
> the kernel header packages have a dependency to c/c++ compilers.  E.g. the
> "linux-headers-5.10.0-10-arm64" package depends on gcc-10:arm64 ->
> cpp-10:arm64 (on bullseye).
> This becomes an issue when cross-compiling kernel modules for other target architectures:

instead of "target" you probably mean "host" architecture. The GNU terminology
is "host" for the architecture you build for and "target" for the architecture
that the compiler you build compiles binaries for. Since you are not building a
compiler you want to use either host or build architecture. The terminology is
explained in the dpkg-architecture man page.

> The linux-headers packages cannot be co-installed due to the not co-installable cpp-<x> packages.
> By that, cross-compilation of kernel modules for other Debian targets is currently not possible (at least without removing the hosts cpp infrastructure).
> What is the reason to depend on compilers here?
> Wouldn't be a "recommends" relation be sufficient here?
> An alternative might also be to depend via `:native`, but I did not check that yet.

You cannot add :native to runtime dependencies. The :native qualifier only
makes sense for build dependencies. See https://wiki.ubuntu.com/MultiarchCross

You can find the answer to your question in this thread:


Essentially, linux-headers-* should depend on gcc-10-for-host:arm64 but that is
blocked by us not having enough time to work on https://bugs.debian.org/666743

Fixing #666743 would be a major step forward in terms of making packages
cross-compilable on Debian and derivatives, so if you want to improve the
cross-building situation in Debian, then this is one of the big open tasks that
would bring us immensely forward.


cheers, josch

Attachment: signature.asc
Description: signature

Reply to: