mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:44:45 +01:00
x86: Get rid of Makefile.postlink
Instead of generating the vmlinux.relocs file (needed by the
decompressor build to construct the KASLR relocation tables) as a
vmlinux postlink step, which is dubious because it depends on data that
is stripped from vmlinux before the build completes, generate it from
vmlinux.unstripped, which has been introduced specifically for this
purpose.
This ensures that each artifact is rebuilt as needed, rather than as a
side effect of another build rule.
This effectively reverts commit
9d9173e9ce ("x86/build: Avoid relocation information in final vmlinux")
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
parent
ac4f06789b
commit
e6a03a6669
2 changed files with 6 additions and 41 deletions
|
|
@ -1,38 +0,0 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
# ===========================================================================
|
||||
# Post-link x86 pass
|
||||
# ===========================================================================
|
||||
#
|
||||
# 1. Separate relocations from vmlinux into vmlinux.relocs.
|
||||
# 2. Strip relocations from vmlinux.
|
||||
|
||||
PHONY := __archpost
|
||||
__archpost:
|
||||
|
||||
-include include/config/auto.conf
|
||||
include $(srctree)/scripts/Kbuild.include
|
||||
|
||||
CMD_RELOCS = arch/x86/tools/relocs
|
||||
OUT_RELOCS = arch/x86/boot/compressed
|
||||
quiet_cmd_relocs = RELOCS $(OUT_RELOCS)/vmlinux.relocs
|
||||
cmd_relocs = \
|
||||
mkdir -p $(OUT_RELOCS); \
|
||||
$(CMD_RELOCS) $@ > $(OUT_RELOCS)/vmlinux.relocs; \
|
||||
$(CMD_RELOCS) --abs-relocs $@
|
||||
|
||||
# `@true` prevents complaint when there is nothing to be done
|
||||
|
||||
vmlinux vmlinux.unstripped: FORCE
|
||||
@true
|
||||
ifeq ($(CONFIG_X86_NEED_RELOCS),y)
|
||||
$(call cmd,relocs)
|
||||
endif
|
||||
|
||||
clean:
|
||||
@rm -f $(OUT_RELOCS)/vmlinux.relocs
|
||||
|
||||
PHONY += FORCE clean
|
||||
|
||||
FORCE:
|
||||
|
||||
.PHONY: $(PHONY)
|
||||
|
|
@ -117,9 +117,12 @@ $(obj)/vmlinux.bin: vmlinux FORCE
|
|||
|
||||
targets += $(patsubst $(obj)/%,%,$(vmlinux-objs-y)) vmlinux.bin.all vmlinux.relocs
|
||||
|
||||
# vmlinux.relocs is created by the vmlinux postlink step.
|
||||
$(obj)/vmlinux.relocs: vmlinux
|
||||
@true
|
||||
CMD_RELOCS = arch/x86/tools/relocs
|
||||
quiet_cmd_relocs = RELOCS $@
|
||||
cmd_relocs = $(CMD_RELOCS) $< > $@;$(CMD_RELOCS) --abs-relocs $<
|
||||
|
||||
$(obj)/vmlinux.relocs: vmlinux.unstripped FORCE
|
||||
$(call if_changed,relocs)
|
||||
|
||||
vmlinux.bin.all-y := $(obj)/vmlinux.bin
|
||||
vmlinux.bin.all-$(CONFIG_X86_NEED_RELOCS) += $(obj)/vmlinux.relocs
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue