Makefiles: Use KBUILD_EXTRA_SYMBOLS instead of copying Module.symvers

Copying Module.symvers is the oldest supported method for building external
kernel modules that depend on another external kernel module. Since support
for that method will be removed from Linux kernel v5.5, use
KBUILD_EXTRA_SYMBOLS instead to specify the external symbols SCST kernel
modules depend on. Support for KBUILD_EXTRA_SYMBOLS was introduced in
upstream kernel v2.6.26 so this patch drops support for kernels before
v2.6.26.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8686 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Bart Van Assche
2019-12-16 23:29:42 +00:00
parent d0183001e4
commit a169500590
7 changed files with 28 additions and 55 deletions
+3 -5
View File
@@ -67,8 +67,9 @@ SCST_DIR := $(shell echo "$$PWD")/../scst/src
MODULE_SYMVERS:=$(shell if [ -e "$(KDIR)/Modules.symvers" ]; then \ MODULE_SYMVERS:=$(shell if [ -e "$(KDIR)/Modules.symvers" ]; then \
echo Modules.symvers; else echo Module.symvers; fi) echo Modules.symvers; else echo Module.symvers; fi)
all: $(MODULE_SYMVERS) all:
$(MAKE) -C $(KDIR) M=$(shell pwd) $(MAKE) -C $(KDIR) M=$(shell pwd) \
KBUILD_EXTRA_SYMBOLS=$(SCST_DIR)/$(MODULE_SYMVERS)
install: all install: all
KDIR=$(KDIR) ../scripts/sign-modules KDIR=$(KDIR) ../scripts/sign-modules
@@ -80,9 +81,6 @@ ins:
./config ./config
insmod fcst.ko insmod fcst.ko
$(MODULE_SYMVERS): $(SCST_DIR)/$(MODULE_SYMVERS)
cp $< $@
uninstall: uninstall:
rm -f $(INSTALL_DIR)/$(MODULE_NAME).ko rm -f $(INSTALL_DIR)/$(MODULE_NAME).ko
-/sbin/depmod -b $(INSTALL_MOD_PATH)/ -a $(KVER) -/sbin/depmod -b $(INSTALL_MOD_PATH)/ -a $(KVER)
+8 -11
View File
@@ -51,7 +51,7 @@ MODULE_SYMVERS:=$(shell if [ -e "$(KDIR)/Modules.symvers" ]; then \
all: progs mods all: progs mods
ISER_SYMVERS:=$(KMOD)/$(MODULE_SYMVERS) ISER_SYMVERS:=$(SCST_DIR)/$(MODULE_SYMVERS) $(KMOD)/$(MODULE_SYMVERS)
OFED_CFLAGS:= OFED_CFLAGS:=
OFED_FLAVOR=$(shell if [ -e /usr/bin/ofed_info ]; then /usr/bin/ofed_info 2>/dev/null | head -n1 | sed -n 's/^\(MLNX_OFED\|OFED-internal\).*/MOFED/p;s/^OFED-.*/OFED/p'; else echo in-tree; fi) OFED_FLAVOR=$(shell if [ -e /usr/bin/ofed_info ]; then /usr/bin/ofed_info 2>/dev/null | head -n1 | sed -n 's/^\(MLNX_OFED\|OFED-internal\).*/MOFED/p;s/^OFED-.*/OFED/p'; else echo in-tree; fi)
@@ -84,7 +84,7 @@ ifeq ($(OFED_FLAVOR),MOFED)
-include $(OFED_DIR)/include/linux/compat-2.6.h \ -include $(OFED_DIR)/include/linux/compat-2.6.h \
-DMOFED_MAJOR=$(shell echo $(OFED_VERS) | cut -f1 -d.)\ -DMOFED_MAJOR=$(shell echo $(OFED_VERS) | cut -f1 -d.)\
-DMOFED_MINOR=$(shell echo $(OFED_VERS) | cut -f2 -d.) -DMOFED_MINOR=$(shell echo $(OFED_VERS) | cut -f2 -d.)
ISER_SYMVERS:="$(ISER_SYMVERS) $(OFED_DIR)/$(MODULE_SYMVERS)" ISER_SYMVERS:=$(ISER_SYMVERS) $(OFED_DIR)/$(MODULE_SYMVERS)
OFED_CONFIG:= CONFIG_DTRACE= OFED_CONFIG:= CONFIG_DTRACE=
else else
# Whether or not the OFED kernel-ib-devel RPM has been installed. # Whether or not the OFED kernel-ib-devel RPM has been installed.
@@ -98,12 +98,12 @@ else
# BACKPORT_INCLUDES. # BACKPORT_INCLUDES.
include /usr/src/ofa_kernel/config.mk include /usr/src/ofa_kernel/config.mk
OFED_CFLAGS:=$(shell echo $(BACKPORT_INCLUDES) -I/usr/src/ofa_kernel/include) OFED_CFLAGS:=$(shell echo $(BACKPORT_INCLUDES) -I/usr/src/ofa_kernel/include)
ISER_SYMVERS:="$(ISER_SYMVERS) /usr/src/ofa_kernel/$(MODULE_SYMVERS)" ISER_SYMVERS:=$(ISER_SYMVERS) /usr/src/ofa_kernel/$(MODULE_SYMVERS)
endif endif
ifeq ($(OFED_COMPAT_RDMA_DEVEL_RPM_INSTALLED),true) ifeq ($(OFED_COMPAT_RDMA_DEVEL_RPM_INSTALLED),true)
OFED_CFLAGS:=-I/usr/src/compat-rdma/include -include /usr/src/compat-rdma/include/linux/compat-2.6.h OFED_CFLAGS:=-I/usr/src/compat-rdma/include -include /usr/src/compat-rdma/include/linux/compat-2.6.h
ISER_SYMVERS:="$(ISER_SYMVERS) /usr/src/compat-rdma/$(MODULE_SYMVERS)" ISER_SYMVERS:=$(ISER_SYMVERS) /usr/src/compat-rdma/$(MODULE_SYMVERS)
endif endif
endif endif
@@ -124,13 +124,14 @@ PRE_CFLAGS = $(shell \
ISER_CFLAGS = $(OFED_CFLAGS) -DOFED_FLAVOR=$(OFED_FLAVOR) $(PRE_CFLAGS) ISER_CFLAGS = $(OFED_CFLAGS) -DOFED_FLAVOR=$(OFED_FLAVOR) $(PRE_CFLAGS)
mods: include/iscsi_scst_itf_ver.h $(MODULE_SYMVERS) $(CONFTEST_OUTPUTS) mods: include/iscsi_scst_itf_ver.h $(CONFTEST_OUTPUTS)
$(MAKE) -C $(KDIR) M=$(KMOD) PRE_CFLAGS="$(PRE_CFLAGS)" modules $(MAKE) -C $(KDIR) M=$(KMOD) PRE_CFLAGS="$(PRE_CFLAGS)" modules \
KBUILD_EXTRA_SYMBOLS=$(SCST_DIR)/$(MODULE_SYMVERS)
echo "$@: INFINIBAND_ENABLED = $(INFINIBAND_ENABLED)" echo "$@: INFINIBAND_ENABLED = $(INFINIBAND_ENABLED)"
if $(INFINIBAND_ENABLED); then \ if $(INFINIBAND_ENABLED); then \
echo " Building against $(OFED_FLAVOR) InfiniBand kernel headers."; \ echo " Building against $(OFED_FLAVOR) InfiniBand kernel headers."; \
$(MAKE) -C $(KDIR) M=$(ISERTMOD) PRE_CFLAGS="$(ISER_CFLAGS)" \ $(MAKE) -C $(KDIR) M=$(ISERTMOD) PRE_CFLAGS="$(ISER_CFLAGS)" \
KBUILD_EXTRA_SYMBOLS=$(ISER_SYMVERS) $(OFED_CONFIG) modules; \ KBUILD_EXTRA_SYMBOLS="$(ISER_SYMVERS)" $(OFED_CONFIG) modules; \
fi fi
progs: include/iscsi_scst_itf_ver.h progs: include/iscsi_scst_itf_ver.h
@@ -171,10 +172,6 @@ uninstall:
$(INSTALL_DIR)/isert-scst.ko $(INSTALL_DIR)/isert-scst.ko
-/sbin/depmod -b $(INSTALL_MOD_PATH)/ -a $(KVER) -/sbin/depmod -b $(INSTALL_MOD_PATH)/ -a $(KVER)
$(MODULE_SYMVERS): $(SCST_DIR)/$(MODULE_SYMVERS)
cp $< kernel/
if $(INFINIBAND_ENABLED); then cp $< kernel/isert-scst; fi
clean: clean:
$(MAKE) -C usr $@ $(MAKE) -C usr $@
$(MAKE) -C $(KDIR) M=$(KMOD) $@ $(MAKE) -C $(KDIR) M=$(KMOD) $@
+3 -13
View File
@@ -84,18 +84,14 @@ INSTALL_DIR := $(INSTALL_MOD_PATH)/lib/modules/$(KVER)/extra
SCST_DIR := $(shell echo "$$PWD/../../scst/src") SCST_DIR := $(shell echo "$$PWD/../../scst/src")
ifneq ($(BUILD_2X_MODULE),)
# We need to make qla2xxx_scst before Module.symvers
.NOTPARALLEL:
endif
# The file Modules.symvers has been renamed in the 2.6.18 kernel to # The file Modules.symvers has been renamed in the 2.6.18 kernel to
# Module.symvers. Find out which name to use by looking in $(KDIR). # Module.symvers. Find out which name to use by looking in $(KDIR).
MODULE_SYMVERS:=$(shell if [ -e "$(KDIR)/Modules.symvers" ]; then \ MODULE_SYMVERS:=$(shell if [ -e "$(KDIR)/Modules.symvers" ]; then \
echo Modules.symvers; else echo Module.symvers; fi) echo Modules.symvers; else echo Module.symvers; fi)
all: $(QLA2XXX_SCST) $(MODULE_SYMVERS) all: $(QLA2XXX_SCST)
$(MAKE) -C $(KDIR) M=$(shell pwd) $(MAKE) -C $(KDIR) M=$(shell pwd) \
KBUILD_EXTRA_SYMBOLS="$(SCST_DIR)/$(MODULE_SYMVERS) $(QLA2XXX_DIR)/$(MODULE_SYMVERS)"
install: all install: all
ifneq ($(BUILD_2X_MODULE),) ifneq ($(BUILD_2X_MODULE),)
@@ -119,12 +115,6 @@ qla2xxx_scst:
M=$(QLA2XXX_DIR) -C $(QLA2XXX_DIR) all M=$(QLA2XXX_DIR) -C $(QLA2XXX_DIR) all
endif endif
$(MODULE_SYMVERS): $(SCST_DIR)/$(MODULE_SYMVERS)
cp $< .
ifneq ($(BUILD_2X_MODULE),)
cat $(QLA2XXX_DIR)/$(MODULE_SYMVERS) >>$(MODULE_SYMVERS)
endif
########## END OUT-OF-TREE RULES ########## ########## END OUT-OF-TREE RULES ##########
endif endif
+5 -14
View File
@@ -83,18 +83,14 @@ INSTALL_DIR := $(INSTALL_MOD_PATH)/lib/modules/$(KVER)/extra
SCST_DIR := $(shell echo "$$PWD/../../scst/src") SCST_DIR := $(shell echo "$$PWD/../../scst/src")
ifneq ($(BUILD_2X_MODULE),)
# We need to make qla2xxx_scst before Module.symvers
.NOTPARALLEL:
endif
# The file Modules.symvers has been renamed in the 2.6.18 kernel to # The file Modules.symvers has been renamed in the 2.6.18 kernel to
# Module.symvers. Find out which name to use by looking in $(KDIR). # Module.symvers. Find out which name to use by looking in $(KDIR).
MODULE_SYMVERS:=$(shell if [ -e "$(KDIR)/Modules.symvers" ]; then \ MODULE_SYMVERS:=$(shell if [ -e "$(KDIR)/Modules.symvers" ]; then \
echo Modules.symvers; else echo Module.symvers; fi) echo Modules.symvers; else echo Module.symvers; fi)
all: $(QLA2XXX_SCST) $(MODULE_SYMVERS) all: $(QLA2XXX_SCST)
$(MAKE) -C $(KDIR) M=$(shell pwd) $(MAKE) -C $(KDIR) M=$(shell pwd) \
KBUILD_EXTRA_SYMBOLS="$(SCST_DIR)/$(MODULE_SYMVERS) $(QLA2XXX_DIR)/$(MODULE_SYMVERS)"
install: all install: all
ifneq ($(BUILD_2X_MODULE),) ifneq ($(BUILD_2X_MODULE),)
@@ -115,13 +111,8 @@ endif
ifneq ($(BUILD_2X_MODULE),) ifneq ($(BUILD_2X_MODULE),)
qla2xxx_scst: qla2xxx_scst:
$(MAKE) BUILD_2X_MODULE=$(BUILD_2X_MODULE) CONFIG_SCSI_QLA2XXX_TARGET=y \ $(MAKE) BUILD_2X_MODULE=$(BUILD_2X_MODULE) CONFIG_SCSI_QLA2XXX_TARGET=y \
M=$(QLA2XXX_DIR) -C $(QLA2XXX_DIR) all M=$(QLA2XXX_DIR) -C $(QLA2XXX_DIR) all \
endif KBUILD_EXTRA_SYMBOLS=$(QLA2XXX_DIR)/$(MODULE_SYMVERS)
$(MODULE_SYMVERS): $(SCST_DIR)/$(MODULE_SYMVERS)
cp $< .
ifneq ($(BUILD_2X_MODULE),)
cat $(QLA2XXX_DIR)/$(MODULE_SYMVERS) >>$(MODULE_SYMVERS)
endif endif
########## END OUT-OF-TREE RULES ########## ########## END OUT-OF-TREE RULES ##########
+2 -1
View File
@@ -115,7 +115,8 @@ $(SCST_INTF_VER_FILE): $(SCST_INC_DIR)/scst.h $(SCST_INC_DIR)/scst_const.h $(SCS
all: $(SCST_INTF_VER_FILE) all: $(SCST_INTF_VER_FILE)
$(MAKE) -C certs KDIR=$(KDIR) $(MAKE) -C certs KDIR=$(KDIR)
$(MAKE) -C $(KDIR) M=$(shell pwd) BUILD_DEV=m $(MAKE) -C $(KDIR) M=$(shell pwd) BUILD_DEV=m \
KBUILD_EXTRA_SYMBOLS=$(SCST_DIR)/$(MODULE_SYMVERS)
scst: scst:
$(MAKE) -C $(KDIR) M=$(shell pwd) BUILD_DEV=n $(MAKE) -C $(KDIR) M=$(shell pwd) BUILD_DEV=n
+3 -5
View File
@@ -47,8 +47,9 @@ SCST_DIR := $(shell echo "$$PWD")/../scst/src
MODULE_SYMVERS:=$(shell if [ -e "$(KDIR)/Modules.symvers" ]; then \ MODULE_SYMVERS:=$(shell if [ -e "$(KDIR)/Modules.symvers" ]; then \
echo Modules.symvers; else echo Module.symvers; fi) echo Modules.symvers; else echo Module.symvers; fi)
all: $(MODULE_SYMVERS) all:
$(MAKE) -C $(KDIR) M=$(shell pwd) $(MAKE) -C $(KDIR) M=$(shell pwd) \
KBUILD_EXTRA_SYMBOLS=$(SCST_DIR)/$(MODULE_SYMVERS)
install: all install: all
KDIR=$(KDIR) ../scripts/sign-modules KDIR=$(KDIR) ../scripts/sign-modules
@@ -56,9 +57,6 @@ install: all
$$([ -n "$(DEPMOD)" ] && echo "DEPMOD=$(DEPMOD)") \ $$([ -n "$(DEPMOD)" ] && echo "DEPMOD=$(DEPMOD)") \
CONFIG_MODULE_SIG_ALL= modules_install CONFIG_MODULE_SIG_ALL= modules_install
$(MODULE_SYMVERS): $(SCST_DIR)/$(MODULE_SYMVERS)
cp $< $@
uninstall: uninstall:
rm -f $(INSTALL_DIR)/scst_local.ko rm -f $(INSTALL_DIR)/scst_local.ko
-/sbin/depmod -b $(INSTALL_MOD_PATH)/ -a $(KVER) -/sbin/depmod -b $(INSTALL_MOD_PATH)/ -a $(KVER)
+4 -6
View File
@@ -97,12 +97,10 @@ PRE_CFLAGS = $(OFED_CFLAGS) \
cat $$t/result-$(KVER).txt 2>/dev/null; \ cat $$t/result-$(KVER).txt 2>/dev/null; \
done) done)
all: check src/$(MODULE_SYMVERS) $(CONFTEST_OUTPUTS) all: check $(CONFTEST_OUTPUTS)
$(MAKE) -C $(KDIR) M=$(shell pwd)/src PRE_CFLAGS="$(PRE_CFLAGS)" $(OFED_CONFIG) modules $(MAKE) -C $(KDIR) M=$(shell pwd)/src PRE_CFLAGS="$(PRE_CFLAGS)"\
$(OFED_CONFIG) modules\
src/$(MODULE_SYMVERS): $(SCST_DIR)/$(MODULE_SYMVERS) $(OFED_MODULE_SYMVERS) KBUILD_EXTRA_SYMBOLS="$(SCST_DIR)/$(MODULE_SYMVERS) $(OFED_MODULE_SYMVERS)"
cat $^ | \
awk '{sym[$$2]=$$0} END {for (s in sym){print sym[s]}}' >"$@"
install: all install: all
@[ -z "$(DESTDIR)$(INSTALL_MOD_PATH)" ] && \ @[ -z "$(DESTDIR)$(INSTALL_MOD_PATH)" ] && \