From 819a4ba019020780142d71c6ebebdb091d3ed173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Salvador=20Rufo?= Date: Sun, 12 Nov 2023 23:11:17 +0100 Subject: [PATCH] package/zfs: fix zfs autotools cross-compilation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Yann E. MORIN (cherry picked from commit 7fe685c510578435b8b7c0448478e71a3db4d9e4) Signed-off-by: Peter Korsgaard --- package/zfs/zfs.mk | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/package/zfs/zfs.mk b/package/zfs/zfs.mk index 43a10a0de9..aa2e72b2e0 100644 --- a/package/zfs/zfs.mk +++ b/package/zfs/zfs.mk @@ -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 \