48 lines
1.1 KiB
Makefile
48 lines
1.1 KiB
Makefile
|
# 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)
|