162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci# =========================================================================== 362306a36Sopenharmony_ci# Post-link x86 pass 462306a36Sopenharmony_ci# =========================================================================== 562306a36Sopenharmony_ci# 662306a36Sopenharmony_ci# 1. Separate relocations from vmlinux into vmlinux.relocs. 762306a36Sopenharmony_ci# 2. Strip relocations from vmlinux. 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciPHONY := __archpost 1062306a36Sopenharmony_ci__archpost: 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci-include include/config/auto.conf 1362306a36Sopenharmony_ciinclude $(srctree)/scripts/Kbuild.include 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciCMD_RELOCS = arch/x86/tools/relocs 1662306a36Sopenharmony_ciOUT_RELOCS = arch/x86/boot/compressed 1762306a36Sopenharmony_ciquiet_cmd_relocs = RELOCS $(OUT_RELOCS)/$@.relocs 1862306a36Sopenharmony_ci cmd_relocs = \ 1962306a36Sopenharmony_ci mkdir -p $(OUT_RELOCS); \ 2062306a36Sopenharmony_ci $(CMD_RELOCS) $@ > $(OUT_RELOCS)/$@.relocs; \ 2162306a36Sopenharmony_ci $(CMD_RELOCS) --abs-relocs $@ 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciquiet_cmd_strip_relocs = RSTRIP $@ 2462306a36Sopenharmony_ci cmd_strip_relocs = \ 2562306a36Sopenharmony_ci $(OBJCOPY) --remove-section='.rel.*' --remove-section='.rel__*' \ 2662306a36Sopenharmony_ci --remove-section='.rela.*' --remove-section='.rela__*' $@ 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci# `@true` prevents complaint when there is nothing to be done 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_civmlinux: FORCE 3162306a36Sopenharmony_ci @true 3262306a36Sopenharmony_ciifeq ($(CONFIG_X86_NEED_RELOCS),y) 3362306a36Sopenharmony_ci $(call cmd,relocs) 3462306a36Sopenharmony_ci $(call cmd,strip_relocs) 3562306a36Sopenharmony_ciendif 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci%.ko: FORCE 3862306a36Sopenharmony_ci @true 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciclean: 4162306a36Sopenharmony_ci @rm -f $(OUT_RELOCS)/vmlinux.relocs 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciPHONY += FORCE clean 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ciFORCE: 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci.PHONY: $(PHONY) 48