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