Unverified Commit 0ce5139f authored by Masahiro Yamada's avatar Masahiro Yamada Committed by Nathan Chancellor
Browse files

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: default avatarMasahiro Yamada <masahiroy@kernel.org>
Reviewed-by: default avatarNicolas Schier <nsc@kernel.org>
Link: https://patch.msgid.link/a48ca543fa2305bd17324f41606dcaed9b19f2d4.1758182101.git.legion@kernel.org


Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
parent 8d18ef04
Loading
Loading
Loading
Loading
+22 −23
Original line number Diff line number Diff line
@@ -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