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

View File

@@ -67,8 +67,9 @@ SCST_DIR := $(shell echo "$$PWD")/../scst/src
MODULE_SYMVERS:=$(shell if [ -e "$(KDIR)/Modules.symvers" ]; then \
echo Modules.symvers; else echo Module.symvers; fi)
all: $(MODULE_SYMVERS)
$(MAKE) -C $(KDIR) M=$(shell pwd)
all:
$(MAKE) -C $(KDIR) M=$(shell pwd) \
KBUILD_EXTRA_SYMBOLS=$(SCST_DIR)/$(MODULE_SYMVERS)
install: all
KDIR=$(KDIR) ../scripts/sign-modules
@@ -80,9 +81,6 @@ ins:
./config
insmod fcst.ko
$(MODULE_SYMVERS): $(SCST_DIR)/$(MODULE_SYMVERS)
cp $< $@
uninstall:
rm -f $(INSTALL_DIR)/$(MODULE_NAME).ko
-/sbin/depmod -b $(INSTALL_MOD_PATH)/ -a $(KVER)

View File

@@ -51,7 +51,7 @@ MODULE_SYMVERS:=$(shell if [ -e "$(KDIR)/Modules.symvers" ]; then \
all: progs mods
ISER_SYMVERS:=$(KMOD)/$(MODULE_SYMVERS)
ISER_SYMVERS:=$(SCST_DIR)/$(MODULE_SYMVERS) $(KMOD)/$(MODULE_SYMVERS)
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)
@@ -84,7 +84,7 @@ ifeq ($(OFED_FLAVOR),MOFED)
-include $(OFED_DIR)/include/linux/compat-2.6.h \
-DMOFED_MAJOR=$(shell echo $(OFED_VERS) | cut -f1 -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=
else
# Whether or not the OFED kernel-ib-devel RPM has been installed.
@@ -98,12 +98,12 @@ else
# BACKPORT_INCLUDES.
include /usr/src/ofa_kernel/config.mk
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
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
ISER_SYMVERS:="$(ISER_SYMVERS) /usr/src/compat-rdma/$(MODULE_SYMVERS)"
ISER_SYMVERS:=$(ISER_SYMVERS) /usr/src/compat-rdma/$(MODULE_SYMVERS)
endif
endif
@@ -124,13 +124,14 @@ PRE_CFLAGS = $(shell \
ISER_CFLAGS = $(OFED_CFLAGS) -DOFED_FLAVOR=$(OFED_FLAVOR) $(PRE_CFLAGS)
mods: include/iscsi_scst_itf_ver.h $(MODULE_SYMVERS) $(CONFTEST_OUTPUTS)
$(MAKE) -C $(KDIR) M=$(KMOD) PRE_CFLAGS="$(PRE_CFLAGS)" modules
mods: include/iscsi_scst_itf_ver.h $(CONFTEST_OUTPUTS)
$(MAKE) -C $(KDIR) M=$(KMOD) PRE_CFLAGS="$(PRE_CFLAGS)" modules \
KBUILD_EXTRA_SYMBOLS=$(SCST_DIR)/$(MODULE_SYMVERS)
echo "$@: INFINIBAND_ENABLED = $(INFINIBAND_ENABLED)"
if $(INFINIBAND_ENABLED); then \
echo " Building against $(OFED_FLAVOR) InfiniBand kernel headers."; \
$(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
progs: include/iscsi_scst_itf_ver.h
@@ -171,10 +172,6 @@ uninstall:
$(INSTALL_DIR)/isert-scst.ko
-/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:
$(MAKE) -C usr $@
$(MAKE) -C $(KDIR) M=$(KMOD) $@

View File

@@ -84,18 +84,14 @@ INSTALL_DIR := $(INSTALL_MOD_PATH)/lib/modules/$(KVER)/extra
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
# Module.symvers. Find out which name to use by looking in $(KDIR).
MODULE_SYMVERS:=$(shell if [ -e "$(KDIR)/Modules.symvers" ]; then \
echo Modules.symvers; else echo Module.symvers; fi)
all: $(QLA2XXX_SCST) $(MODULE_SYMVERS)
$(MAKE) -C $(KDIR) M=$(shell pwd)
all: $(QLA2XXX_SCST)
$(MAKE) -C $(KDIR) M=$(shell pwd) \
KBUILD_EXTRA_SYMBOLS="$(SCST_DIR)/$(MODULE_SYMVERS) $(QLA2XXX_DIR)/$(MODULE_SYMVERS)"
install: all
ifneq ($(BUILD_2X_MODULE),)
@@ -119,12 +115,6 @@ qla2xxx_scst:
M=$(QLA2XXX_DIR) -C $(QLA2XXX_DIR) all
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 ##########
endif

View File

@@ -83,18 +83,14 @@ INSTALL_DIR := $(INSTALL_MOD_PATH)/lib/modules/$(KVER)/extra
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
# Module.symvers. Find out which name to use by looking in $(KDIR).
MODULE_SYMVERS:=$(shell if [ -e "$(KDIR)/Modules.symvers" ]; then \
echo Modules.symvers; else echo Module.symvers; fi)
all: $(QLA2XXX_SCST) $(MODULE_SYMVERS)
$(MAKE) -C $(KDIR) M=$(shell pwd)
all: $(QLA2XXX_SCST)
$(MAKE) -C $(KDIR) M=$(shell pwd) \
KBUILD_EXTRA_SYMBOLS="$(SCST_DIR)/$(MODULE_SYMVERS) $(QLA2XXX_DIR)/$(MODULE_SYMVERS)"
install: all
ifneq ($(BUILD_2X_MODULE),)
@@ -115,13 +111,8 @@ endif
ifneq ($(BUILD_2X_MODULE),)
qla2xxx_scst:
$(MAKE) BUILD_2X_MODULE=$(BUILD_2X_MODULE) CONFIG_SCSI_QLA2XXX_TARGET=y \
M=$(QLA2XXX_DIR) -C $(QLA2XXX_DIR) all
endif
$(MODULE_SYMVERS): $(SCST_DIR)/$(MODULE_SYMVERS)
cp $< .
ifneq ($(BUILD_2X_MODULE),)
cat $(QLA2XXX_DIR)/$(MODULE_SYMVERS) >>$(MODULE_SYMVERS)
M=$(QLA2XXX_DIR) -C $(QLA2XXX_DIR) all \
KBUILD_EXTRA_SYMBOLS=$(QLA2XXX_DIR)/$(MODULE_SYMVERS)
endif
########## END OUT-OF-TREE RULES ##########

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)
$(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:
$(MAKE) -C $(KDIR) M=$(shell pwd) BUILD_DEV=n

View File

@@ -47,8 +47,9 @@ SCST_DIR := $(shell echo "$$PWD")/../scst/src
MODULE_SYMVERS:=$(shell if [ -e "$(KDIR)/Modules.symvers" ]; then \
echo Modules.symvers; else echo Module.symvers; fi)
all: $(MODULE_SYMVERS)
$(MAKE) -C $(KDIR) M=$(shell pwd)
all:
$(MAKE) -C $(KDIR) M=$(shell pwd) \
KBUILD_EXTRA_SYMBOLS=$(SCST_DIR)/$(MODULE_SYMVERS)
install: all
KDIR=$(KDIR) ../scripts/sign-modules
@@ -56,9 +57,6 @@ install: all
$$([ -n "$(DEPMOD)" ] && echo "DEPMOD=$(DEPMOD)") \
CONFIG_MODULE_SIG_ALL= modules_install
$(MODULE_SYMVERS): $(SCST_DIR)/$(MODULE_SYMVERS)
cp $< $@
uninstall:
rm -f $(INSTALL_DIR)/scst_local.ko
-/sbin/depmod -b $(INSTALL_MOD_PATH)/ -a $(KVER)

View File

@@ -97,12 +97,10 @@ PRE_CFLAGS = $(OFED_CFLAGS) \
cat $$t/result-$(KVER).txt 2>/dev/null; \
done)
all: check src/$(MODULE_SYMVERS) $(CONFTEST_OUTPUTS)
$(MAKE) -C $(KDIR) M=$(shell pwd)/src PRE_CFLAGS="$(PRE_CFLAGS)" $(OFED_CONFIG) modules
src/$(MODULE_SYMVERS): $(SCST_DIR)/$(MODULE_SYMVERS) $(OFED_MODULE_SYMVERS)
cat $^ | \
awk '{sym[$$2]=$$0} END {for (s in sym){print sym[s]}}' >"$@"
all: check $(CONFTEST_OUTPUTS)
$(MAKE) -C $(KDIR) M=$(shell pwd)/src PRE_CFLAGS="$(PRE_CFLAGS)"\
$(OFED_CONFIG) modules\
KBUILD_EXTRA_SYMBOLS="$(SCST_DIR)/$(MODULE_SYMVERS) $(OFED_MODULE_SYMVERS)"
install: all
@[ -z "$(DESTDIR)$(INSTALL_MOD_PATH)" ] && \