Skip to content

Commit 39cfd5b

Browse files
masahir0ynathanchance
authored andcommitted
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: Masahiro Yamada <[email protected]> Signed-off-by: Alexey Gladkov <[email protected]> Reviewed-by: Nicolas Schier <[email protected]> Link: https://patch.msgid.link/cdb3e5b9a739666b755cd0097dc34ab69c350e51.1758182101.git.legion@kernel.org Signed-off-by: Nathan Chancellor <[email protected]>
1 parent 3e86e4d commit 39cfd5b

File tree

2 files changed

+27
-25
lines changed

2 files changed

+27
-25
lines changed

scripts/Makefile.vmlinux

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,32 @@ targets += vmlinux
9999
vmlinux: vmlinux.unstripped FORCE
100100
$(call if_changed,strip_relocs)
101101

102+
# modules.builtin.modinfo
103+
# ---------------------------------------------------------------------------
104+
105+
OBJCOPYFLAGS_modules.builtin.modinfo := -j .modinfo -O binary
106+
107+
targets += modules.builtin.modinfo
108+
modules.builtin.modinfo: vmlinux.unstripped FORCE
109+
$(call if_changed,objcopy)
110+
111+
# modules.builtin
112+
# ---------------------------------------------------------------------------
113+
114+
__default: modules.builtin
115+
116+
# The second line aids cases where multiple modules share the same object.
117+
118+
quiet_cmd_modules_builtin = GEN $@
119+
cmd_modules_builtin = \
120+
tr '\0' '\n' < $< | \
121+
sed -n 's/^[[:alnum:]:_]*\.file=//p' | \
122+
tr ' ' '\n' | uniq | sed -e 's:^:kernel/:' -e 's/$$/.ko/' > $@
123+
124+
targets += modules.builtin
125+
modules.builtin: modules.builtin.modinfo FORCE
126+
$(call if_changed,modules_builtin)
127+
102128
# modules.builtin.ranges
103129
# ---------------------------------------------------------------------------
104130
ifdef CONFIG_BUILTIN_MODULE_RANGES

scripts/Makefile.vmlinux_o

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0-only
22

33
PHONY := __default
4-
__default: vmlinux.o modules.builtin.modinfo modules.builtin
4+
__default: vmlinux.o
55

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

7474
targets += vmlinux.o
7575

76-
# modules.builtin.modinfo
77-
# ---------------------------------------------------------------------------
78-
79-
OBJCOPYFLAGS_modules.builtin.modinfo := -j .modinfo -O binary
80-
81-
targets += modules.builtin.modinfo
82-
modules.builtin.modinfo: vmlinux.o FORCE
83-
$(call if_changed,objcopy)
84-
85-
# modules.builtin
86-
# ---------------------------------------------------------------------------
87-
88-
# The second line aids cases where multiple modules share the same object.
89-
90-
quiet_cmd_modules_builtin = GEN $@
91-
cmd_modules_builtin = \
92-
tr '\0' '\n' < $< | \
93-
sed -n 's/^[[:alnum:]:_]*\.file=//p' | \
94-
tr ' ' '\n' | uniq | sed -e 's:^:kernel/:' -e 's/$$/.ko/' > $@
95-
96-
targets += modules.builtin
97-
modules.builtin: modules.builtin.modinfo FORCE
98-
$(call if_changed,modules_builtin)
99-
10076
# Add FORCE to the prerequisites of a target to force it to be always rebuilt.
10177
# ---------------------------------------------------------------------------
10278

0 commit comments

Comments
 (0)