Commit f65a4868 authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

kbuild: change module.order to list *.o instead of *.ko



scripts/Makefile.build replaces the suffix .o with .ko, then
scripts/Makefile.modpost calls the sed command to change .ko back
to the original .o suffix.

Instead of converting the suffixes back-and-forth, store the .o paths
in modules.order, and replace it with .ko in 'make modules_install'.

This avoids the unneeded sed command.

Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
Reviewed-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
parent 875ef1a5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1564,7 +1564,7 @@ __modinst_pre:
		rm -f $(MODLIB)/build ; \
		ln -s $(CURDIR) $(MODLIB)/build ; \
	fi
	@sed 's:^:kernel/:' modules.order > $(MODLIB)/modules.order
	@sed 's:^\(.*\)\.o$$:kernel/\1.ko:' modules.order > $(MODLIB)/modules.order
	@cp -f modules.builtin $(MODLIB)/
	@cp -f $(objtree)/modules.builtin.modinfo $(MODLIB)/

+1 −1
Original line number Diff line number Diff line
@@ -435,7 +435,7 @@ $(obj)/built-in.a: $(real-obj-y) FORCE
# modules.order unless contained modules are updated.

cmd_modules_order = { $(foreach m, $(real-prereqs), \
	$(if $(filter %/modules.order, $m), cat $m, echo $(patsubst %.o,%.ko,$m));) :; } \
	$(if $(filter %/modules.order, $m), cat $m, echo $m);) :; } \
	> $@

$(obj)/modules.order: $(obj-m) FORCE
+3 −3
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@ include $(srctree)/scripts/Makefile.lib
# find all modules listed in modules.order
modules := $(call read-file, $(MODORDER))

__modfinal: $(modules)
__modfinal: $(modules:%.o=%.ko)
	@:

# modname and part-of-module are set to make c_flags define proper module flags
@@ -57,13 +57,13 @@ if_changed_except = $(if $(call newer_prereqs_except,$(2))$(cmd-check), \
	printf '%s\n' 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd, @:)

# Re-generate module BTFs if either module's .ko or vmlinux changed
$(modules): %.ko: %.o %.mod.o scripts/module.lds $(and $(CONFIG_DEBUG_INFO_BTF_MODULES),$(KBUILD_BUILTIN),vmlinux) FORCE
%.ko: %.o %.mod.o scripts/module.lds $(and $(CONFIG_DEBUG_INFO_BTF_MODULES),$(KBUILD_BUILTIN),vmlinux) FORCE
	+$(call if_changed_except,ld_ko_o,vmlinux)
ifdef CONFIG_DEBUG_INFO_BTF_MODULES
	+$(if $(newer-prereqs),$(call cmd,btf_ko))
endif

targets += $(modules) $(modules:.ko=.mod.o)
targets += $(modules:%.o=%.ko) $(modules:%.o=%.mod.o)

# Add FORCE to the prequisites of a target to force it to be always rebuilt.
# ---------------------------------------------------------------------------
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ suffix-$(CONFIG_MODULE_COMPRESS_GZIP) := .gz
suffix-$(CONFIG_MODULE_COMPRESS_XZ)	:= .xz
suffix-$(CONFIG_MODULE_COMPRESS_ZSTD)	:= .zst

modules := $(patsubst $(extmod_prefix)%, $(dst)/%$(suffix-y), $(modules))
modules := $(patsubst $(extmod_prefix)%.o, $(dst)/%.ko$(suffix-y), $(modules))

__modinst: $(modules)
	@:
+5 −2
Original line number Diff line number Diff line
@@ -107,7 +107,10 @@ ifneq ($(KBUILD_MODPOST_WARN)$(missing-input),)
modpost-args += -w
endif

modorder-if-needed := $(if $(KBUILD_MODULES), $(MODORDER))
ifdef KBUILD_MODULES
modorder-if-needed := $(MODORDER)
modpost-args += -T $(MODORDER)
endif

MODPOST = scripts/mod/modpost

@@ -119,7 +122,7 @@ 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) $(modpost-args) -T - $(vmlinux.o-if-present)
	$(MODPOST) $(modpost-args) $(vmlinux.o-if-present)

targets += $(output-symdump)
$(output-symdump): $(modorder-if-needed) $(vmlinux.o-if-present) $(module.symvers-if-present) $(MODPOST) FORCE
Loading