1 # SPDX-License-Identifier: GPL-2.0 << 2 # ============================================ 1 # =========================================================================== 3 # Post-link x86 pass !! 2 # Post-link MIPS pass 4 # ============================================ 3 # =========================================================================== 5 # 4 # 6 # 1. Separate relocations from vmlinux into vm !! 5 # 1. Insert relocations into vmlinux 7 # 2. Strip relocations from vmlinux. << 8 6 9 PHONY := __archpost 7 PHONY := __archpost 10 __archpost: 8 __archpost: 11 9 12 -include include/config/auto.conf 10 -include include/config/auto.conf 13 include $(srctree)/scripts/Kbuild.include !! 11 include scripts/Kbuild.include 14 12 15 CMD_RELOCS = arch/x86/tools/relocs !! 13 CMD_RELOCS = arch/mips/boot/tools/relocs 16 OUT_RELOCS = arch/x86/boot/compressed !! 14 quiet_cmd_relocs = RELOCS $@ 17 quiet_cmd_relocs = RELOCS $(OUT_RELOCS)/$@.re !! 15 cmd_relocs = $(CMD_RELOCS) $@ 18 cmd_relocs = \ << 19 mkdir -p $(OUT_RELOCS); \ << 20 $(CMD_RELOCS) $@ > $(OUT_RELOCS)/$@.re << 21 $(CMD_RELOCS) --abs-relocs $@ << 22 << 23 quiet_cmd_strip_relocs = RSTRIP $@ << 24 cmd_strip_relocs = \ << 25 $(OBJCOPY) --remove-section='.rel.*' - << 26 --remove-section='.rela.*' << 27 16 28 # `@true` prevents complaint when there is not 17 # `@true` prevents complaint when there is nothing to be done 29 18 30 vmlinux: FORCE 19 vmlinux: FORCE 31 @true 20 @true 32 ifeq ($(CONFIG_X86_NEED_RELOCS),y) !! 21 ifeq ($(CONFIG_RELOCATABLE),y) 33 $(call cmd,relocs) !! 22 $(call if_changed,relocs) 34 $(call cmd,strip_relocs) << 35 endif 23 endif 36 24 >> 25 %.ko: FORCE >> 26 @true >> 27 37 clean: 28 clean: 38 @rm -f $(OUT_RELOCS)/vmlinux.relocs !! 29 @true 39 30 40 PHONY += FORCE clean 31 PHONY += FORCE clean 41 32 42 FORCE: 33 FORCE: 43 34 44 .PHONY: $(PHONY) 35 .PHONY: $(PHONY)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.