Unverified Commit 39cfd5b1 authored by Masahiro Yamada's avatar Masahiro Yamada Committed by Nathan Chancellor
Browse files

kbuild: extract modules.builtin.modinfo from vmlinux.unstripped



Currently, we assume all the data for modules.builtin.modinfo are
available in vmlinux.o.

This makes it impossible for modpost, which is invoked after vmlinux.o,
to add additional module info.

This commit moves the modules.builtin.modinfo rule after modpost.

Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
Signed-off-by: default avatarAlexey Gladkov <legion@kernel.org>
Reviewed-by: default avatarNicolas Schier <nsc@kernel.org>
Link: https://patch.msgid.link/cdb3e5b9a739666b755cd0097dc34ab69c350e51.1758182101.git.legion@kernel.org


Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
parent 3e86e4d7
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -99,6 +99,32 @@ targets += vmlinux
vmlinux: vmlinux.unstripped FORCE
	$(call if_changed,strip_relocs)

# modules.builtin.modinfo
# ---------------------------------------------------------------------------

OBJCOPYFLAGS_modules.builtin.modinfo := -j .modinfo -O binary

targets += modules.builtin.modinfo
modules.builtin.modinfo: vmlinux.unstripped FORCE
	$(call if_changed,objcopy)

# modules.builtin
# ---------------------------------------------------------------------------

__default: modules.builtin

# The second line aids cases where multiple modules share the same object.

quiet_cmd_modules_builtin = GEN     $@
      cmd_modules_builtin = \
	tr '\0' '\n' < $< | \
	sed -n 's/^[[:alnum:]:_]*\.file=//p' | \
	tr ' ' '\n' | uniq | sed -e 's:^:kernel/:' -e 's/$$/.ko/' > $@

targets += modules.builtin
modules.builtin: modules.builtin.modinfo FORCE
	$(call if_changed,modules_builtin)

# modules.builtin.ranges
# ---------------------------------------------------------------------------
ifdef CONFIG_BUILTIN_MODULE_RANGES
+1 −25
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only

PHONY := __default
__default: vmlinux.o modules.builtin.modinfo modules.builtin
__default: vmlinux.o

include include/config/auto.conf
include $(srctree)/scripts/Kbuild.include
@@ -73,30 +73,6 @@ vmlinux.o: $(initcalls-lds) vmlinux.a $(KBUILD_VMLINUX_LIBS) FORCE

targets += vmlinux.o

# modules.builtin.modinfo
# ---------------------------------------------------------------------------

OBJCOPYFLAGS_modules.builtin.modinfo := -j .modinfo -O binary

targets += modules.builtin.modinfo
modules.builtin.modinfo: vmlinux.o FORCE
	$(call if_changed,objcopy)

# modules.builtin
# ---------------------------------------------------------------------------

# The second line aids cases where multiple modules share the same object.

quiet_cmd_modules_builtin = GEN     $@
      cmd_modules_builtin = \
	tr '\0' '\n' < $< | \
	sed -n 's/^[[:alnum:]:_]*\.file=//p' | \
	tr ' ' '\n' | uniq | sed -e 's:^:kernel/:' -e 's/$$/.ko/' > $@

targets += modules.builtin
modules.builtin: modules.builtin.modinfo FORCE
	$(call if_changed,modules_builtin)

# Add FORCE to the prerequisites of a target to force it to be always rebuilt.
# ---------------------------------------------------------------------------