| # SPDX-License-Identifier: GPL-2.0 |
| # =========================================================================== |
| # Post-link riscv pass |
| # =========================================================================== |
| # |
| # Check that vmlinux relocations look sane |
| |
| PHONY := __archpost |
| __archpost: |
| |
| -include include/config/auto.conf |
| include $(srctree)/scripts/Kbuild.include |
| |
| quiet_cmd_relocs_check = CHKREL $@ |
| cmd_relocs_check = \ |
| $(CONFIG_SHELL) $(srctree)/arch/riscv/tools/relocs_check.sh "$(OBJDUMP)" "$(NM)" "$@" |
| |
| ifdef CONFIG_RELOCATABLE |
| quiet_cmd_cp_vmlinux_relocs = CPREL vmlinux.relocs |
| cmd_cp_vmlinux_relocs = cp vmlinux vmlinux.relocs |
| |
| quiet_cmd_relocs_strip = STRIPREL $@ |
| cmd_relocs_strip = $(OBJCOPY) --remove-section='.rel.*' \ |
| --remove-section='.rel__*' \ |
| --remove-section='.rela.*' \ |
| --remove-section='.rela__*' $@ |
| endif |
| |
| # `@true` prevents complaint when there is nothing to be done |
| |
| vmlinux: FORCE |
| @true |
| ifdef CONFIG_RELOCATABLE |
| $(call if_changed,relocs_check) |
| $(call if_changed,cp_vmlinux_relocs) |
| $(call if_changed,relocs_strip) |
| endif |
| |
| clean: |
| @true |
| |
| PHONY += FORCE clean |
| |
| FORCE: |
| |
| .PHONY: $(PHONY) |