Skip to content

Commit

Permalink
Linux 6.10 compat: fix rpm-kmod and builtin
Browse files Browse the repository at this point in the history
The 6.10 kernel broke our rpm-kmod builds.  The 6.10 kernel really
wants the source files in the same directory as the object files.
This workaround makes rpm-kmod work again.  It also updates
the builtin kernel codepath to work correctly with 6.10.

See kernel commits:

b1992c3772e6 kbuild: use $(src) instead of $(srctree)/$(src) for source
                     directory
9a0ebe5011f4 kbuild: use $(obj)/ instead of $(src)/ for common pattern
                     rules

Fixes: #16439
Signed-off-by: Tony Hutter <[email protected]>
  • Loading branch information
tonyhutter committed Aug 15, 2024
1 parent d06de4f commit 661a0d5
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
4 changes: 2 additions & 2 deletions module/Kbuild.in
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ src = @abs_srcdir@
obj = @abs_builddir@
else
zfs_include = $(srctree)/include/zfs
icp_include = $(srctree)/$(src)/icp/include
zstd_include = $(srctree)/$(src)/zstd/include
icp_include = $(src)/icp/include
zstd_include = $(src)/zstd/include
ZFS_MODULE_CFLAGS += -include $(zfs_include)/zfs_config.h
endif

Expand Down
18 changes: 18 additions & 0 deletions rpm/generic/zfs-kmod.spec.in
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,24 @@ for kernel_version in %{?kernel_versions}; do
%{?kernel_cc} \
%{?kernel_ld} \
%{?kernel_llvm}

# Pre-6.10 kernel builds didn't need to copy over the source files to the
# build directory. However we do need to do it though post-6.10 due to
# these commits:
#
# b1992c3772e6 kbuild: use $(src) instead of $(srctree)/$(src) for source
# directory
#
# 9a0ebe5011f4 kbuild: use $(obj)/ instead of $(src)/ for common pattern
# rules
#
# Note that kmodtool actually copies over the source into the build
# directory, so what we're doing here is normal. For efficiency reasons
# though we just use hardlinks instead of copying.
#
# See https://github.com/openzfs/zfs/issues/16439 for more info.
cp -lR ../%{module}-%{version}/module/* module/

make %{?_smp_mflags}
cd ..
done
Expand Down

0 comments on commit 661a0d5

Please sign in to comment.