summaryrefslogtreecommitdiff
path: root/arch/x86/Makefile.postlink
blob: 936093d291605ebcae5284bfacf1db8b6d5c9b1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# SPDX-License-Identifier: GPL-2.0
# ===========================================================================
# Post-link x86 pass
# ===========================================================================
#
# 1. Separate relocations from vmlinux into vmlinux.relocs.
# 2. Strip relocations from vmlinux.

PHONY := __archpost
__archpost:

-include include/config/auto.conf
include $(srctree)/scripts/Kbuild.include

CMD_RELOCS = arch/x86/tools/relocs
OUT_RELOCS = arch/x86/boot/compressed
quiet_cmd_relocs = RELOCS  $(OUT_RELOCS)/$@.relocs
      cmd_relocs = \
	mkdir -p $(OUT_RELOCS); \
	$(CMD_RELOCS) $@ > $(OUT_RELOCS)/$@.relocs; \
	$(CMD_RELOCS) --abs-relocs $@

quiet_cmd_strip_relocs = RSTRIP  $@
      cmd_strip_relocs = \
	$(OBJCOPY) --remove-section='.rel.*' --remove-section='.rel__*' \
		   --remove-section='.rela.*' --remove-section='.rela__*' $@

# `@true` prevents complaint when there is nothing to be done

vmlinux: FORCE
	@true
ifeq ($(CONFIG_X86_NEED_RELOCS),y)
	$(call cmd,relocs)
	$(call cmd,strip_relocs)
endif

%.ko: FORCE
	@true

clean:
	@rm -f $(OUT_RELOCS)/vmlinux.relocs

PHONY += FORCE clean

FORCE:

.PHONY: $(PHONY)