kbuild: re-run modpost when it is updated
Modpost generates .vmlinux.export.c and *.mod.c, which are prerequisites of vmlinux and modules, respectively. The modpost stage should be re-run when the modpost code is updated. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
parent
f73edc8951
commit
425937381e
@ -38,7 +38,7 @@ __modpost:
|
||||
include include/config/auto.conf
|
||||
include $(srctree)/scripts/Kbuild.include
|
||||
|
||||
MODPOST = scripts/mod/modpost \
|
||||
modpost-args = \
|
||||
$(if $(CONFIG_MODVERSIONS),-m) \
|
||||
$(if $(CONFIG_MODULE_SRCVERSION_ALL),-a) \
|
||||
$(if $(CONFIG_SECTION_MISMATCH_WARN_ONLY),,-E) \
|
||||
@ -48,7 +48,7 @@ MODPOST = scripts/mod/modpost \
|
||||
|
||||
# 'make -i -k' ignores compile errors, and builds as many modules as possible.
|
||||
ifneq ($(findstring i,$(filter-out --%,$(MAKEFLAGS))),)
|
||||
MODPOST += -n
|
||||
modpost-args += -n
|
||||
endif
|
||||
|
||||
ifeq ($(KBUILD_EXTMOD),)
|
||||
@ -100,16 +100,18 @@ module.symvers-if-present := $(wildcard Module.symvers)
|
||||
output-symdump := $(KBUILD_EXTMOD)/Module.symvers
|
||||
missing-input := $(filter-out $(module.symvers-if-present), Module.symvers)
|
||||
|
||||
MODPOST += -e $(addprefix -i ,$(module.symvers-if-present) $(KBUILD_EXTRA_SYMBOLS))
|
||||
modpost-args += -e $(addprefix -i ,$(module.symvers-if-present) $(KBUILD_EXTRA_SYMBOLS))
|
||||
|
||||
endif # ($(KBUILD_EXTMOD),)
|
||||
|
||||
ifneq ($(KBUILD_MODPOST_WARN)$(missing-input),)
|
||||
MODPOST += -w
|
||||
modpost-args += -w
|
||||
endif
|
||||
|
||||
modorder-if-needed := $(if $(KBUILD_MODULES), $(MODORDER))
|
||||
|
||||
MODPOST = scripts/mod/modpost
|
||||
|
||||
# Read out modules.order to pass in modpost.
|
||||
# Otherwise, allmodconfig would fail with "Argument list too long".
|
||||
quiet_cmd_modpost = MODPOST $@
|
||||
@ -118,10 +120,10 @@ quiet_cmd_modpost = MODPOST $@
|
||||
echo >&2 "WARNING: $(missing-input) is missing."; \
|
||||
echo >&2 " Modules may not have dependencies or modversions."; \
|
||||
echo >&2 " You may get many unresolved symbol warnings.";) \
|
||||
sed 's/ko$$/o/' $(or $(modorder-if-needed), /dev/null) | $(MODPOST) $(vmlinux.o-if-present) -T -
|
||||
sed 's/ko$$/o/' $(or $(modorder-if-needed), /dev/null) | $(MODPOST) $(modpost-args) $(vmlinux.o-if-present) -T -
|
||||
|
||||
targets += $(output-symdump)
|
||||
$(output-symdump): $(modorder-if-needed) $(vmlinux.o-if-present) $(moudle.symvers-if-present) FORCE
|
||||
$(output-symdump): $(modorder-if-needed) $(vmlinux.o-if-present) $(moudle.symvers-if-present) $(MODPOST) FORCE
|
||||
$(call if_changed,modpost)
|
||||
|
||||
__modpost: $(output-symdump)
|
||||
|
Loading…
x
Reference in New Issue
Block a user