Skip to content

Commit

Permalink
package/zfs: fix zfs autotools cross-compilation
Browse files Browse the repository at this point in the history
This commit addresses a long-standing bug encountered during ZFS
compilation in cross-platform environments. The issue arises because ZFS
autoconf triggers a `make modules` to detect if the kernel can compile
modules [1]. The problem occurs when autoconf uses the host environment
instead of the cross-platform environment.

To fix this, we export necessary environment variables to ensure that ZFS
autoconf utilizes the cross-platform environment correctly.

This patch resolves ZFS cross-platform compilations:
- http://autobuild.buildroot.net/results/ebeab256101bcba38c35fd55075c414e62f92caa/
- http://autobuild.buildroot.net/results/03b9f12a106bf100eec695a92b83bf09b22c68b0/
- http://autobuild.buildroot.net/results/c2da90337463607c2fadfeac7ad72e5c3899a61f/
- http://autobuild.buildroot.net/results/465a249f92d2f5db7ac4b61b4111e6cbaaa15688/
- http://autobuild.buildroot.net/results/7e2d3277e26fa5b0c8073a0e8b9e82f47ade9697/
- http://autobuild.buildroot.net/results/a8fb87336b09fef8787a7889dfcccf14fe1215b9/
- https://gitlab.com/kubu93/buildroot/-/jobs/1522848483

And fix a few emails:
- alpine.DEB.2.22.394.2108181630280.2028262@ridzo [build zfs into buildroot for raspberry pi 4]
- https://lists.buildroot.org/pipermail/buildroot/2021-August/621696.html
- https://lists.buildroot.org/pipermail/buildroot/2021-August/621345.html
- https://lists.buildroot.org/pipermail/buildroot/2022-July/646379.html
- https://lists.buildroot.org/pipermail/buildroot/2023-June/668467.html

[1] This is the full callback, you can just check the last link:
- https://github.com/openzfs/zfs/blob/zfs-2.1.12/config/kernel-declare-event-class.m4#L7C11-L7C11
- https://github.com/openzfs/zfs/blob/zfs-2.1.12/config/kernel.m4#L883
- https://github.com/openzfs/zfs/blob/zfs-2.1.12/config/kernel.m4#L868
- https://github.com/openzfs/zfs/blob/zfs-2.1.12/config/kernel.m4#L668

Signed-off-by: José Luis Salvador Rufo <salvador.joseluis@gmail.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
(cherry picked from commit 7fe685c)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
  • Loading branch information
jlsalvador authored and jacmet committed Nov 30, 2023
1 parent 76699a7 commit 29e2700
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions package/zfs/zfs.mk
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,14 @@ else
ZFS_CONF_OPTS += --disable-pam
endif

# Sets the environment for the `make` that will be run ZFS autotools checks.
ZFS_CONF_ENV += \
ARCH=$(KERNEL_ARCH) \
CROSS_COMPILE="$(TARGET_CROSS)"
ZFS_MAKE_ENV += \
ARCH=$(KERNEL_ARCH) \
CROSS_COMPILE="$(TARGET_CROSS)"

# ZFS userland tools are unfunctional without the Linux kernel modules.
ZFS_MODULE_SUBDIRS = \
module/avl \
Expand Down

0 comments on commit 29e2700

Please sign in to comment.