1# SPDX-License-Identifier: GPL-2.0 2# =========================================================================== 3# Post-link x86 pass 4# =========================================================================== 5# 6# 1. Separate relocations from vmlinux into vmlinux.relocs. 7# 2. Strip relocations from vmlinux. 8 9PHONY := __archpost 10__archpost: 11 12-include include/config/auto.conf 13include $(srctree)/scripts/Kbuild.include 14 15CMD_RELOCS = arch/x86/tools/relocs 16OUT_RELOCS = arch/x86/boot/compressed 17quiet_cmd_relocs = RELOCS $(OUT_RELOCS)/$@.relocs 18 cmd_relocs = \ 19 mkdir -p $(OUT_RELOCS); \ 20 $(CMD_RELOCS) $@ > $(OUT_RELOCS)/$@.relocs; \ 21 $(CMD_RELOCS) --abs-relocs $@ 22 23quiet_cmd_strip_relocs = RSTRIP $@ 24 cmd_strip_relocs = \ 25 $(OBJCOPY) --remove-section='.rel.*' --remove-section='.rel__*' \ 26 --remove-section='.rela.*' --remove-section='.rela__*' $@ 27 28# `@true` prevents complaint when there is nothing to be done 29 30vmlinux: FORCE 31 @true 32ifeq ($(CONFIG_X86_NEED_RELOCS),y) 33 $(call cmd,relocs) 34 $(call cmd,strip_relocs) 35endif 36 37%.ko: FORCE 38 @true 39 40clean: 41 @rm -f $(OUT_RELOCS)/vmlinux.relocs 42 43PHONY += FORCE clean 44 45FORCE: 46 47.PHONY: $(PHONY) 48