GNU Linux-libre 6.7.9-gnu
[releases.git] / arch / x86 / Makefile.postlink
1 # SPDX-License-Identifier: GPL-2.0
2 # ===========================================================================
3 # Post-link x86 pass
4 # ===========================================================================
5 #
6 # 1. Separate relocations from vmlinux into vmlinux.relocs.
7 # 2. Strip relocations from vmlinux.
8
9 PHONY := __archpost
10 __archpost:
11
12 -include include/config/auto.conf
13 include $(srctree)/scripts/Kbuild.include
14
15 CMD_RELOCS = arch/x86/tools/relocs
16 OUT_RELOCS = arch/x86/boot/compressed
17 quiet_cmd_relocs = RELOCS  $(OUT_RELOCS)/$@.relocs
18       cmd_relocs = \
19         mkdir -p $(OUT_RELOCS); \
20         $(CMD_RELOCS) $@ > $(OUT_RELOCS)/$@.relocs; \
21         $(CMD_RELOCS) --abs-relocs $@
22
23 quiet_cmd_strip_relocs = RSTRIP  $@
24       cmd_strip_relocs = \
25         $(OBJCOPY) --remove-section='.rel.*' --remove-section='.rel__*' \
26                    --remove-section='.rela.*' --remove-section='.rela__*' $@
27
28 # `@true` prevents complaint when there is nothing to be done
29
30 vmlinux: FORCE
31         @true
32 ifeq ($(CONFIG_X86_NEED_RELOCS),y)
33         $(call cmd,relocs)
34         $(call cmd,strip_relocs)
35 endif
36
37 clean:
38         @rm -f $(OUT_RELOCS)/vmlinux.relocs
39
40 PHONY += FORCE clean
41
42 FORCE:
43
44 .PHONY: $(PHONY)