Commit | Line | Data |
---|---|---|
9d9173e9 PP |
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 | %.ko: FORCE | |
38 | @true | |
39 | ||
40 | clean: | |
41 | @rm -f $(OUT_RELOCS)/vmlinux.relocs | |
42 | ||
43 | PHONY += FORCE clean | |
44 | ||
45 | FORCE: | |
46 | ||
47 | .PHONY: $(PHONY) |