Public bug reported:

Cross-compiling the Ubuntu kernel using the standard debian/rules
methods produces a linux-headers-{version}-{flavour} package which
contains executables (e.g. fixdep, several others) built for the build
host architecture, not the target host architecture.  Those executables
are unusable when that linux-headers package gets installed on the
target.

Example from an ARM64 cross-compiled linux-headers package (note the x86-64 
executable):
usr/src/linux-headers-5.10.0-14-generic/scripts/basic/fixdep: ELF 64-bit LSB 
shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter 
/lib64/ld-linux-x86-64.so.2, 
BuildID[sha1]=77b1c89ff5560389ea272ec0e81a4770246481a1, for GNU/Linux 3.2.0, 
not stripped

The kernel itself, of course, gets properly cross-compiled and the
generated packages (including linux-headers) will install fine on the
target.  But the bogus executables prevent full functionality on that
installation, i.e. it cannot be used for kernel driver development.

The fundamental reason why this occurs is that the build host needs to
run some of those compiled executables itself during the build, but
those executables should NOT get packaged.  Instead, the build should be
reorganized so that it compiles a set of temporary host-arch-execs for
use during the build, but then separately (cross)-compiles them as
target-arch-execs for inclusion in the linux-headers package.

This bug is Importance:Wishlist because:
 - cross-compiled Ubuntu kernel package builds aren't technically "supported".
 - this glitch only happens with engineer-built cross-compiled test kernels.
 - building natively instead (i.e. in a Launchpad PPA) avoids the problem.
 - this is not a new misbehavior; our cross-compile build rules have always 
been this way.

** Affects: linux (Ubuntu)
     Importance: Wishlist
         Status: Confirmed

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1916782

Title:
  fixdep, etc. gets built for wrong arch when cross-compiling Ubuntu
  kernel

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1916782/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to