1 # SPDX-License-Identifier: GPL-2.0 1 # SPDX-License-Identifier: GPL-2.0 2 # ============================================ 2 # =========================================================================== 3 # Post-link x86 pass !! 3 # Post-link MIPS pass 4 # ============================================ 4 # =========================================================================== 5 # 5 # 6 # 1. Separate relocations from vmlinux into vm !! 6 # 1. Check that Loongson3 LL/SC workarounds are applied correctly 7 # 2. Strip relocations from vmlinux. !! 7 # 2. Insert relocations into vmlinux 8 8 9 PHONY := __archpost 9 PHONY := __archpost 10 __archpost: 10 __archpost: 11 11 12 -include include/config/auto.conf 12 -include include/config/auto.conf 13 include $(srctree)/scripts/Kbuild.include 13 include $(srctree)/scripts/Kbuild.include 14 14 15 CMD_RELOCS = arch/x86/tools/relocs !! 15 CMD_LS3_LLSC = arch/mips/tools/loongson3-llsc-check 16 OUT_RELOCS = arch/x86/boot/compressed !! 16 quiet_cmd_ls3_llsc = LLSCCHK $@ 17 quiet_cmd_relocs = RELOCS $(OUT_RELOCS)/$@.re !! 17 cmd_ls3_llsc = $(CMD_LS3_LLSC) $@ 18 cmd_relocs = \ !! 18 19 mkdir -p $(OUT_RELOCS); \ !! 19 CMD_RELOCS = arch/mips/boot/tools/relocs 20 $(CMD_RELOCS) $@ > $(OUT_RELOCS)/$@.re !! 20 quiet_cmd_relocs = RELOCS $@ 21 $(CMD_RELOCS) --abs-relocs $@ !! 21 cmd_relocs = $(CMD_RELOCS) $@ 22 << 23 quiet_cmd_strip_relocs = RSTRIP $@ << 24 cmd_strip_relocs = \ << 25 $(OBJCOPY) --remove-section='.rel.*' - << 26 --remove-section='.rela.*' << 27 22 28 # `@true` prevents complaint when there is not 23 # `@true` prevents complaint when there is nothing to be done 29 24 30 vmlinux: FORCE 25 vmlinux: FORCE 31 @true 26 @true 32 ifeq ($(CONFIG_X86_NEED_RELOCS),y) !! 27 ifeq ($(CONFIG_CPU_LOONGSON3_WORKAROUNDS),y) 33 $(call cmd,relocs) !! 28 $(call if_changed,ls3_llsc) 34 $(call cmd,strip_relocs) << 35 endif 29 endif >> 30 ifeq ($(CONFIG_RELOCATABLE),y) >> 31 $(call if_changed,relocs) >> 32 endif >> 33 >> 34 %.ko: FORCE >> 35 @true 36 36 37 clean: 37 clean: 38 @rm -f $(OUT_RELOCS)/vmlinux.relocs !! 38 @true 39 39 40 PHONY += FORCE clean 40 PHONY += FORCE clean 41 41 42 FORCE: 42 FORCE: 43 43 44 .PHONY: $(PHONY) 44 .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.