Petr Pavlu | 9d9173e | 2023-03-27 11:54:06 +0200 | [diff] [blame] | 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 | |
Petr Pavlu | 9d9173e | 2023-03-27 11:54:06 +0200 | [diff] [blame] | 37 | clean: |
| 38 | @rm -f $(OUT_RELOCS)/vmlinux.relocs |
| 39 | |
| 40 | PHONY += FORCE clean |
| 41 | |
| 42 | FORCE: |
| 43 | |
| 44 | .PHONY: $(PHONY) |