1c2dea0bcSAlexandre Ghiti# SPDX-License-Identifier: GPL-2.0 2c2dea0bcSAlexandre Ghiti# =========================================================================== 3c2dea0bcSAlexandre Ghiti# Post-link riscv pass 4c2dea0bcSAlexandre Ghiti# =========================================================================== 5c2dea0bcSAlexandre Ghiti# 6c2dea0bcSAlexandre Ghiti# Check that vmlinux relocations look sane 7c2dea0bcSAlexandre Ghiti 8c2dea0bcSAlexandre GhitiPHONY := __archpost 9c2dea0bcSAlexandre Ghiti__archpost: 10c2dea0bcSAlexandre Ghiti 11c2dea0bcSAlexandre Ghiti-include include/config/auto.conf 12c2dea0bcSAlexandre Ghitiinclude $(srctree)/scripts/Kbuild.include 13c2dea0bcSAlexandre Ghiti 14c2dea0bcSAlexandre Ghitiquiet_cmd_relocs_check = CHKREL $@ 15c2dea0bcSAlexandre Ghiticmd_relocs_check = \ 16c2dea0bcSAlexandre Ghiti $(CONFIG_SHELL) $(srctree)/arch/riscv/tools/relocs_check.sh "$(OBJDUMP)" "$(NM)" "$@" 17c2dea0bcSAlexandre Ghiti 18*559d1e45SAlexandre Ghitiifdef CONFIG_RELOCATABLE 19*559d1e45SAlexandre Ghitiquiet_cmd_cp_vmlinux_relocs = CPREL vmlinux.relocs 20*559d1e45SAlexandre Ghiticmd_cp_vmlinux_relocs = cp vmlinux vmlinux.relocs 21*559d1e45SAlexandre Ghiti 22*559d1e45SAlexandre Ghitiquiet_cmd_relocs_strip = STRIPREL $@ 23*559d1e45SAlexandre Ghiticmd_relocs_strip = $(OBJCOPY) --remove-section='.rel.*' \ 24*559d1e45SAlexandre Ghiti --remove-section='.rel__*' \ 25*559d1e45SAlexandre Ghiti --remove-section='.rela.*' \ 26*559d1e45SAlexandre Ghiti --remove-section='.rela__*' $@ 27*559d1e45SAlexandre Ghitiendif 28*559d1e45SAlexandre Ghiti 29c2dea0bcSAlexandre Ghiti# `@true` prevents complaint when there is nothing to be done 30c2dea0bcSAlexandre Ghiti 31c2dea0bcSAlexandre Ghitivmlinux: FORCE 32c2dea0bcSAlexandre Ghiti @true 33c2dea0bcSAlexandre Ghitiifdef CONFIG_RELOCATABLE 34c2dea0bcSAlexandre Ghiti $(call if_changed,relocs_check) 35*559d1e45SAlexandre Ghiti $(call if_changed,cp_vmlinux_relocs) 36*559d1e45SAlexandre Ghiti $(call if_changed,relocs_strip) 37c2dea0bcSAlexandre Ghitiendif 38c2dea0bcSAlexandre Ghiti 39c2dea0bcSAlexandre Ghiticlean: 40c2dea0bcSAlexandre Ghiti @true 41c2dea0bcSAlexandre Ghiti 42c2dea0bcSAlexandre GhitiPHONY += FORCE clean 43c2dea0bcSAlexandre Ghiti 44c2dea0bcSAlexandre GhitiFORCE: 45c2dea0bcSAlexandre Ghiti 46c2dea0bcSAlexandre Ghiti.PHONY: $(PHONY) 47