Skip to content

Commit 09208a4

Browse files
author
Phil Sutter
committed
Support for cross-compiling kernel modules
In order to correctly cross-compile, one has to pass ARCH and CROSS_COMPILE make flags to kernel module build calls. Facilitate this in the same way as for custom CC flag by recognizing KERNEL_-prefixed configure environment variables of same name. Signed-off-by: Phil Sutter <[email protected]>
1 parent d35f9f2 commit 09208a4

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

config/kernel.m4

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -681,11 +681,16 @@ AC_DEFUN([ZFS_LINUX_COMPILE], [
681681
building kernel modules])
682682
AC_ARG_VAR([KERNEL_LLVM], [Binary option to
683683
build kernel modules with LLVM/CLANG toolchain])
684+
AC_ARG_VAR([KERNEL_CROSS_COMPILE], [Cross compile prefix
685+
for kernel module builds])
686+
AC_ARG_VAR([KERNEL_ARCH], [Architecture to build kernel modules for])
684687
AC_TRY_COMMAND([
685688
KBUILD_MODPOST_NOFINAL="$5" KBUILD_MODPOST_WARN="$6"
686689
make modules -k -j$TEST_JOBS ${KERNEL_CC:+CC=$KERNEL_CC}
687690
${KERNEL_LD:+LD=$KERNEL_LD} ${KERNEL_LLVM:+LLVM=$KERNEL_LLVM}
688691
CONFIG_MODULES=y CFLAGS_MODULE=-DCONFIG_MODULES
692+
${KERNEL_CROSS_COMPILE:+CROSS_COMPILE=$KERNEL_CROSS_COMPILE}
693+
${KERNEL_ARCH:+ARCH=$KERNEL_ARCH}
689694
-C $LINUX_OBJ $ARCH_UM M=$PWD/$1 >$1/build.log 2>&1])
690695
AS_IF([AC_TRY_COMMAND([$2])], [$3], [$4])
691696
])

module/Makefile.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ modules-Linux:
5555
mkdir -p $(sort $(dir $(zfs-objs) $(zfs-)))
5656
$(MAKE) -C @LINUX_OBJ@ $(if @KERNEL_CC@,CC=@KERNEL_CC@) \
5757
$(if @KERNEL_LD@,LD=@KERNEL_LD@) $(if @KERNEL_LLVM@,LLVM=@KERNEL_LLVM@) \
58+
$(if @KERNEL_CROSS_COMPILE@,CROSS_COMPILE=@KERNEL_CROSS_COMPILE@) \
59+
$(if @KERNEL_ARCH@,ARCH=@KERNEL_ARCH@) \
5860
M="$$PWD" @KERNEL_MAKE@ CONFIG_ZFS=m modules
5961

6062
modules-FreeBSD:

0 commit comments

Comments
 (0)