mirror of
https://github.com/torvalds/linux.git
synced 2025-11-01 00:58:39 +02:00
kbuild: always create intermediate vmlinux.unstripped
Generate the intermediate vmlinux.unstripped regardless of CONFIG_ARCH_VMLINUX_NEEDS_RELOCS. If CONFIG_ARCH_VMLINUX_NEEDS_RELOCS is unset, vmlinux.unstripped and vmlinux are identiacal. This simplifies the build rule, and allows to strip more sections by adding them to remove-section-y. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Reviewed-by: Nicolas Schier <nsc@kernel.org> Link: https://patch.msgid.link/a48ca543fa2305bd17324f41606dcaed9b19f2d4.1758182101.git.legion@kernel.org Signed-off-by: Nathan Chancellor <nathan@kernel.org>
This commit is contained in:
parent
8d18ef04f9
commit
0ce5139fd9
1 changed files with 22 additions and 23 deletions
|
|
@ -9,20 +9,6 @@ include $(srctree)/scripts/Makefile.lib
|
|||
|
||||
targets :=
|
||||
|
||||
ifdef CONFIG_ARCH_VMLINUX_NEEDS_RELOCS
|
||||
vmlinux-final := vmlinux.unstripped
|
||||
|
||||
quiet_cmd_strip_relocs = RSTRIP $@
|
||||
cmd_strip_relocs = $(OBJCOPY) --remove-section='.rel*' --remove-section=!'.rel*.dyn' $< $@
|
||||
|
||||
vmlinux: $(vmlinux-final) FORCE
|
||||
$(call if_changed,strip_relocs)
|
||||
|
||||
targets += vmlinux
|
||||
else
|
||||
vmlinux-final := vmlinux
|
||||
endif
|
||||
|
||||
%.o: %.c FORCE
|
||||
$(call if_changed_rule,cc_o_c)
|
||||
|
||||
|
|
@ -61,19 +47,19 @@ targets += .builtin-dtbs-list
|
|||
|
||||
ifdef CONFIG_GENERIC_BUILTIN_DTB
|
||||
targets += .builtin-dtbs.S .builtin-dtbs.o
|
||||
$(vmlinux-final): .builtin-dtbs.o
|
||||
vmlinux.unstripped: .builtin-dtbs.o
|
||||
endif
|
||||
|
||||
# vmlinux
|
||||
# vmlinux.unstripped
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
ifdef CONFIG_MODULES
|
||||
targets += .vmlinux.export.o
|
||||
$(vmlinux-final): .vmlinux.export.o
|
||||
vmlinux.unstripped: .vmlinux.export.o
|
||||
endif
|
||||
|
||||
ifdef CONFIG_ARCH_WANTS_PRE_LINK_VMLINUX
|
||||
$(vmlinux-final): arch/$(SRCARCH)/tools/vmlinux.arch.o
|
||||
vmlinux.unstripped: arch/$(SRCARCH)/tools/vmlinux.arch.o
|
||||
|
||||
arch/$(SRCARCH)/tools/vmlinux.arch.o: vmlinux.o FORCE
|
||||
$(Q)$(MAKE) $(build)=arch/$(SRCARCH)/tools $@
|
||||
|
|
@ -86,17 +72,30 @@ cmd_link_vmlinux = \
|
|||
$< "$(LD)" "$(KBUILD_LDFLAGS)" "$(LDFLAGS_vmlinux)" "$@"; \
|
||||
$(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true)
|
||||
|
||||
targets += $(vmlinux-final)
|
||||
$(vmlinux-final): scripts/link-vmlinux.sh vmlinux.o $(KBUILD_LDS) FORCE
|
||||
targets += vmlinux.unstripped
|
||||
vmlinux.unstripped: scripts/link-vmlinux.sh vmlinux.o $(KBUILD_LDS) FORCE
|
||||
+$(call if_changed_dep,link_vmlinux)
|
||||
ifdef CONFIG_DEBUG_INFO_BTF
|
||||
$(vmlinux-final): $(RESOLVE_BTFIDS)
|
||||
vmlinux.unstripped: $(RESOLVE_BTFIDS)
|
||||
endif
|
||||
|
||||
ifdef CONFIG_BUILDTIME_TABLE_SORT
|
||||
$(vmlinux-final): scripts/sorttable
|
||||
vmlinux.unstripped: scripts/sorttable
|
||||
endif
|
||||
|
||||
# vmlinux
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
remove-section-y :=
|
||||
remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel*'
|
||||
|
||||
quiet_cmd_strip_relocs = OBJCOPY $@
|
||||
cmd_strip_relocs = $(OBJCOPY) $(addprefix --remove-section=,$(remove-section-y)) $< $@
|
||||
|
||||
targets += vmlinux
|
||||
vmlinux: vmlinux.unstripped FORCE
|
||||
$(call if_changed,strip_relocs)
|
||||
|
||||
# modules.builtin.ranges
|
||||
# ---------------------------------------------------------------------------
|
||||
ifdef CONFIG_BUILTIN_MODULE_RANGES
|
||||
|
|
@ -110,7 +109,7 @@ modules.builtin.ranges: $(srctree)/scripts/generate_builtin_ranges.awk \
|
|||
modules.builtin vmlinux.map vmlinux.o.map FORCE
|
||||
$(call if_changed,modules_builtin_ranges)
|
||||
|
||||
vmlinux.map: $(vmlinux-final)
|
||||
vmlinux.map: vmlinux.unstripped
|
||||
@:
|
||||
|
||||
endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue