162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci# ===========================================================================
362306a36Sopenharmony_ci# Post-link riscv pass
462306a36Sopenharmony_ci# ===========================================================================
562306a36Sopenharmony_ci#
662306a36Sopenharmony_ci# Check that vmlinux relocations look sane
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciPHONY := __archpost
962306a36Sopenharmony_ci__archpost:
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci-include include/config/auto.conf
1262306a36Sopenharmony_ciinclude $(srctree)/scripts/Kbuild.include
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciquiet_cmd_relocs_check = CHKREL  $@
1562306a36Sopenharmony_cicmd_relocs_check = 							\
1662306a36Sopenharmony_ci	$(CONFIG_SHELL) $(srctree)/arch/riscv/tools/relocs_check.sh "$(OBJDUMP)" "$(NM)" "$@"
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciifdef CONFIG_RELOCATABLE
1962306a36Sopenharmony_ciquiet_cmd_cp_vmlinux_relocs = CPREL   vmlinux.relocs
2062306a36Sopenharmony_cicmd_cp_vmlinux_relocs = cp vmlinux vmlinux.relocs
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciquiet_cmd_relocs_strip = STRIPREL $@
2362306a36Sopenharmony_cicmd_relocs_strip = $(OBJCOPY)   --remove-section='.rel.*'       \
2462306a36Sopenharmony_ci                                --remove-section='.rel__*'      \
2562306a36Sopenharmony_ci                                --remove-section='.rela.*'      \
2662306a36Sopenharmony_ci                                --remove-section='.rela__*' $@
2762306a36Sopenharmony_ciendif
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci# `@true` prevents complaint when there is nothing to be done
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_civmlinux: FORCE
3262306a36Sopenharmony_ci	@true
3362306a36Sopenharmony_ciifdef CONFIG_RELOCATABLE
3462306a36Sopenharmony_ci	$(call if_changed,relocs_check)
3562306a36Sopenharmony_ci	$(call if_changed,cp_vmlinux_relocs)
3662306a36Sopenharmony_ci	$(call if_changed,relocs_strip)
3762306a36Sopenharmony_ciendif
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci%.ko: FORCE
4062306a36Sopenharmony_ci	@true
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciclean:
4362306a36Sopenharmony_ci	@true
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciPHONY += FORCE clean
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ciFORCE:
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci.PHONY: $(PHONY)
50