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