diff options
Diffstat (limited to 'scripts/Makefile.modver')
| -rw-r--r-- | scripts/Makefile.modver | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/scripts/Makefile.modver b/scripts/Makefile.modver index 372d6aff5a32..95c9a772eda4 100644 --- a/scripts/Makefile.modver +++ b/scripts/Makefile.modver @@ -14,25 +14,30 @@ modules := $(patsubst ./%,%,$(shell cd $(MODVERDIR); find . -name \*.ko)) __modversions: $(modules) @: +# The final module link + quiet_cmd_ld_ko_o = LD [M] $@ cmd_ld_ko_o = $(LD) $(LDFLAGS) $(LDFLAGS_MODULE) -o $@ \ $(filter-out FORCE,$^) init/vermagic.o: ; -$(modules): %.ko :%.o $(MODVERDIR)/%.o init/vermagic.o FORCE +$(modules): %.ko :%.o %.ver.o init/vermagic.o FORCE $(call if_changed,ld_ko_o) targets += $(modules) +# Compile version info for unresolved symbols quiet_cmd_cc_o_c = CC $@ cmd_cc_o_c = $(CC) $(CFLAGS) -c -o $@ $< -$(addprefix $(MODVERDIR)/,$(modules:.ko=.o)): %.o: %.c FORCE +$(modules:.ko=.ver.o): %.ver.o: %.ver.c FORCE $(call if_changed,cc_o_c) -targets += $(addprefix $(MODVERDIR)/,$(modules:.ko=.o)) +targets += $(modules:.ko=.ver.o) + +# Generate C source with version info for unresolved symbols define rule_mkver_o_c echo ' MKVER $@'; \ @@ -48,11 +53,12 @@ define rule_mkver_o_c ) > $@ endef -$(addprefix $(MODVERDIR)/,$(modules:.ko=.c)): \ -$(MODVERDIR)/%.c: %.o .tmp_all-versions FORCE +$(modules:.ko=.ver.c): %.ver.c: %.o .tmp_all-versions FORCE $(call if_changed_rule,mkver_o_c) -targets += $(addprefix $(MODVERDIR)/,$(modules:.ko=.o.c)) +targets += $(modules:.ko=.ver.c)) + +# Extract all checksums for all exported symbols export-objs := $(shell for m in vmlinux $(modules:.ko=.o); do objdump -h $$m | grep -q __ksymtab && echo $$m; done) |
