xref: /linux/arch/riscv/Makefile.postlink (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
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