Public bug reported:

I've been trying to cross-compile the Ubuntu kernel for arm64 with
sbuild using an amd64 chroot.  The main issue is that the Ubuntu kernel
rules does not differentiate between *host* and *build* dependency
items.  For example, `libssl-dev` is depended upon during the build by:

1) `sign-file` utility that should run on the build machine (amd64)
2) building `linux-tools`, as link-time deps for the host machine (arm64)

Same issue exists for other tools like `pahole`.  IMO the correct way to
handle this is how the Debian kernel team does it, i.e. mark build-arch
deps as :native like in [1]:

# used by upstream to build signing tools and to process certificates
 libssl-dev:native <!pkg.linux.nokernel>,
 libssl-dev <!pkg.linux.notools>,

In the current Ubuntu debian rules there's no :native dependencies at
all, resulting in only the host (arm64) version being installed, thus
the build tool `sign-file` failing to compile.

I discussed with Timo (tjaalton) on #kernel:ubuntu.com about this and it
seems like we could adopt the same method for declaring dependencies as
Debian, to allow cross-compiling the kernel package.

Thanks a lot!

[1]: https://salsa.debian.org/kernel-
team/linux/-/blob/8941549ed01ecdd8b9d2f84f2fb1d46507b76861/debian/templates/source.control.in#L19-21

ProblemType: Bug
DistroRelease: Ubuntu 22.04
Package: linux-image-5.15.0-122-generic 5.15.0-122.132
ProcVersionSignature: Ubuntu 5.15.0-122.132-generic 5.15.163
Uname: Linux 5.15.0-122-generic x86_64
NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
ApportVersion: 2.20.11-0ubuntu82.6
Architecture: amd64
AudioDevicesInUse:
 USER        PID ACCESS COMMAND
 /dev/snd/controlC0:  pengxu    215415 F.... pulseaudio
CRDA: N/A
CasperMD5CheckResult: unknown
Date: Sun Oct 20 09:13:56 2024
MachineType: ASUS System Product Name
ProcEnviron:
 TERM=xterm-256color
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=C.UTF-8
 SHELL=/bin/zsh
ProcFB: 0 i915drmfb
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-5.15.0-122-generic 
root=ZFS=tank/UBUNTU/rootfs ro
RebootRequiredPkgs: Error: path contained symlinks.
RelatedPackageVersions:
 linux-restricted-modules-5.15.0-122-generic N/A
 linux-backports-modules-5.15.0-122-generic  N/A
 linux-firmware                              20220329.git681281e4-0ubuntu3.34
RfKill:
 
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
WifiSyslog:
 
dmi.bios.date: 08/25/2022
dmi.bios.release: 20.3
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 2003
dmi.board.asset.tag: Default string
dmi.board.name: PRIME Z690M-PLUS D4
dmi.board.vendor: ASUSTeK COMPUTER INC.
dmi.board.version: Rev 1.xx
dmi.chassis.asset.tag: Default string
dmi.chassis.type: 3
dmi.chassis.vendor: Default string
dmi.chassis.version: Default string
dmi.modalias: 
dmi:bvnAmericanMegatrendsInc.:bvr2003:bd08/25/2022:br20.3:svnASUS:pnSystemProductName:pvrSystemVersion:rvnASUSTeKCOMPUTERINC.:rnPRIMEZ690M-PLUSD4:rvrRev1.xx:cvnDefaultstring:ct3:cvrDefaultstring:skuSKU:
dmi.product.family: To be filled by O.E.M.
dmi.product.name: System Product Name
dmi.product.sku: SKU
dmi.product.version: System Version
dmi.sys.vendor: ASUS

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug jammy

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/2085030

Title:
  Linux kernel fails to cross-compile with sbuild amd64 chroot

Status in linux package in Ubuntu:
  New

Bug description:
  I've been trying to cross-compile the Ubuntu kernel for arm64 with
  sbuild using an amd64 chroot.  The main issue is that the Ubuntu
  kernel rules does not differentiate between *host* and *build*
  dependency items.  For example, `libssl-dev` is depended upon during
  the build by:

  1) `sign-file` utility that should run on the build machine (amd64)
  2) building `linux-tools`, as link-time deps for the host machine (arm64)

  Same issue exists for other tools like `pahole`.  IMO the correct way
  to handle this is how the Debian kernel team does it, i.e. mark build-
  arch deps as :native like in [1]:

  # used by upstream to build signing tools and to process certificates
   libssl-dev:native <!pkg.linux.nokernel>,
   libssl-dev <!pkg.linux.notools>,

  In the current Ubuntu debian rules there's no :native dependencies at
  all, resulting in only the host (arm64) version being installed, thus
  the build tool `sign-file` failing to compile.

  I discussed with Timo (tjaalton) on #kernel:ubuntu.com about this and
  it seems like we could adopt the same method for declaring
  dependencies as Debian, to allow cross-compiling the kernel package.

  Thanks a lot!

  [1]: https://salsa.debian.org/kernel-
  
team/linux/-/blob/8941549ed01ecdd8b9d2f84f2fb1d46507b76861/debian/templates/source.control.in#L19-21

  ProblemType: Bug
  DistroRelease: Ubuntu 22.04
  Package: linux-image-5.15.0-122-generic 5.15.0-122.132
  ProcVersionSignature: Ubuntu 5.15.0-122.132-generic 5.15.163
  Uname: Linux 5.15.0-122-generic x86_64
  NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
  ApportVersion: 2.20.11-0ubuntu82.6
  Architecture: amd64
  AudioDevicesInUse:
   USER        PID ACCESS COMMAND
   /dev/snd/controlC0:  pengxu    215415 F.... pulseaudio
  CRDA: N/A
  CasperMD5CheckResult: unknown
  Date: Sun Oct 20 09:13:56 2024
  MachineType: ASUS System Product Name
  ProcEnviron:
   TERM=xterm-256color
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=C.UTF-8
   SHELL=/bin/zsh
  ProcFB: 0 i915drmfb
  ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-5.15.0-122-generic 
root=ZFS=tank/UBUNTU/rootfs ro
  RebootRequiredPkgs: Error: path contained symlinks.
  RelatedPackageVersions:
   linux-restricted-modules-5.15.0-122-generic N/A
   linux-backports-modules-5.15.0-122-generic  N/A
   linux-firmware                              20220329.git681281e4-0ubuntu3.34
  RfKill:
   
  SourcePackage: linux
  UpgradeStatus: No upgrade log present (probably fresh install)
  WifiSyslog:
   
  dmi.bios.date: 08/25/2022
  dmi.bios.release: 20.3
  dmi.bios.vendor: American Megatrends Inc.
  dmi.bios.version: 2003
  dmi.board.asset.tag: Default string
  dmi.board.name: PRIME Z690M-PLUS D4
  dmi.board.vendor: ASUSTeK COMPUTER INC.
  dmi.board.version: Rev 1.xx
  dmi.chassis.asset.tag: Default string
  dmi.chassis.type: 3
  dmi.chassis.vendor: Default string
  dmi.chassis.version: Default string
  dmi.modalias: 
dmi:bvnAmericanMegatrendsInc.:bvr2003:bd08/25/2022:br20.3:svnASUS:pnSystemProductName:pvrSystemVersion:rvnASUSTeKCOMPUTERINC.:rnPRIMEZ690M-PLUSD4:rvrRev1.xx:cvnDefaultstring:ct3:cvrDefaultstring:skuSKU:
  dmi.product.family: To be filled by O.E.M.
  dmi.product.name: System Product Name
  dmi.product.sku: SKU
  dmi.product.version: System Version
  dmi.sys.vendor: ASUS

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


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to