Proper support for DESTDIR and INSTALL_MOD_PATH
The environment variables DESTDIR and INSTALL_MOD_PATH must be mutually exclusive. https://www.gnu.org/prep/standards/html_node/DESTDIR.html https://www.kernel.org/doc/Documentation/kbuild/modules.txt This issue was discussed in this Buildroot thread: https://lists.buildroot.org/pipermail/buildroot/2021-August/621350.html I saw this behavior in other different projects, as: - Yocto Project: https://www.yoctoproject.org/pipermail/meta-freescale/2013-August/004307.html - Google IA Coral: https://coral.googlesource.com/linux-imx-debian/+/refs/heads/master/debian/rules For the above reasons, INSTALL_MOD_PATH will be set as DESTDIR by default. Reviewed-by: Tony Hutter <hutter2@llnl.gov> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: José Luis Salvador Rufo <salvador.joseluis@gmail.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Closes #12577
This commit is contained in:
parent
96ad227a9d
commit
ed3a3bdb0d
|
@ -1,6 +1,7 @@
|
||||||
include Kbuild
|
include Kbuild
|
||||||
|
|
||||||
INSTALL_MOD_DIR ?= extra
|
INSTALL_MOD_DIR ?= extra
|
||||||
|
INSTALL_MOD_PATH ?= $(DESTDIR)
|
||||||
|
|
||||||
SUBDIR_TARGETS = icp lua zstd
|
SUBDIR_TARGETS = icp lua zstd
|
||||||
|
|
||||||
|
@ -81,15 +82,15 @@ clean: clean-@ac_system@
|
||||||
modules_install-Linux:
|
modules_install-Linux:
|
||||||
@# Install the kernel modules
|
@# Install the kernel modules
|
||||||
$(MAKE) -C @LINUX_OBJ@ M=`pwd` modules_install \
|
$(MAKE) -C @LINUX_OBJ@ M=`pwd` modules_install \
|
||||||
INSTALL_MOD_PATH=$(DESTDIR)$(INSTALL_MOD_PATH) \
|
INSTALL_MOD_PATH=$(INSTALL_MOD_PATH) \
|
||||||
INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) \
|
INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) \
|
||||||
KERNELRELEASE=@LINUX_VERSION@
|
KERNELRELEASE=@LINUX_VERSION@
|
||||||
@# Remove extraneous build products when packaging
|
@# Remove extraneous build products when packaging
|
||||||
kmoddir=$(DESTDIR)$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \
|
kmoddir=$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \
|
||||||
if [ -n "$(DESTDIR)" ]; then \
|
if [ -n "$(DESTDIR)" ]; then \
|
||||||
find $$kmoddir -name 'modules.*' | xargs $(RM); \
|
find $$kmoddir -name 'modules.*' | xargs $(RM); \
|
||||||
fi
|
fi
|
||||||
sysmap=$(DESTDIR)$(INSTALL_MOD_PATH)/boot/System.map-@LINUX_VERSION@; \
|
sysmap=$(INSTALL_MOD_PATH)/boot/System.map-@LINUX_VERSION@; \
|
||||||
if [ -f $$sysmap ]; then \
|
if [ -f $$sysmap ]; then \
|
||||||
depmod -ae -F $$sysmap @LINUX_VERSION@; \
|
depmod -ae -F $$sysmap @LINUX_VERSION@; \
|
||||||
fi
|
fi
|
||||||
|
@ -102,7 +103,7 @@ modules_install: modules_install-@ac_system@
|
||||||
|
|
||||||
modules_uninstall-Linux:
|
modules_uninstall-Linux:
|
||||||
@# Uninstall the kernel modules
|
@# Uninstall the kernel modules
|
||||||
kmoddir=$(DESTDIR)$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \
|
kmoddir=$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \
|
||||||
for objdir in $(ZFS_MODULES); do \
|
for objdir in $(ZFS_MODULES); do \
|
||||||
$(RM) -R $$kmoddir/$(INSTALL_MOD_DIR)/$$objdir; \
|
$(RM) -R $$kmoddir/$(INSTALL_MOD_DIR)/$$objdir; \
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in New Issue