Blame view
scripts/Makefile.modfinal
2.39 KB
9b9a3f20c kbuild: split fin... |
1 2 3 4 5 6 7 |
# SPDX-License-Identifier: GPL-2.0-only # =========================================================================== # Module final link # =========================================================================== PHONY := __modfinal __modfinal: |
ba01e93b4 FROMLIST: kbuild:... |
8 |
include $(objtree)/include/config/auto.conf |
9b9a3f20c kbuild: split fin... |
9 |
include $(srctree)/scripts/Kbuild.include |
6dd43b98c FROMLIST: kbuild:... |
10 |
# for c_flags and objtool_args |
9b9a3f20c kbuild: split fin... |
11 12 13 14 15 16 17 |
include $(srctree)/scripts/Makefile.lib # find all modules listed in modules.order modules := $(sort $(shell cat $(MODORDER))) __modfinal: $(modules) @: |
eb27ea5ce kbuild: move modk... |
18 |
# modname and part-of-module are set to make c_flags define proper module flags |
9b9a3f20c kbuild: split fin... |
19 |
modname = $(notdir $(@:.mod.o=)) |
eb27ea5ce kbuild: move modk... |
20 |
part-of-module = y |
9b9a3f20c kbuild: split fin... |
21 22 |
quiet_cmd_cc_o_c = CC [M] $@ |
2c351bb70 ANDROID: add supp... |
23 24 25 |
cmd_cc_o_c = \ $(CC) $(filter-out $(CC_FLAGS_CFI) $(CC_FLAGS_FTRACE), \ $(c_flags)) -c -o $@ $< |
9b9a3f20c kbuild: split fin... |
26 27 28 29 30 |
%.mod.o: %.mod.c FORCE $(call if_changed_dep,cc_o_c) ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink) |
ba01e93b4 FROMLIST: kbuild:... |
31 32 33 34 |
ifdef CONFIG_LTO_CLANG # With CONFIG_LTO_CLANG, reuse the object file we compiled for modpost to # avoid a second slow LTO link prelink-ext := .lto |
6dd43b98c FROMLIST: kbuild:... |
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# ELF processing was skipped earlier because we didn't have native code, # so let's now process the prelinked binary before we link the module. ifdef CONFIG_STACK_VALIDATION ifneq ($(SKIP_STACK_VALIDATION),1) cmd_ld_ko_o += \ $(objtree)/tools/objtool/objtool $(objtool_args) \ $(@:.ko=$(prelink-ext).o); endif # SKIP_STACK_VALIDATION endif # CONFIG_STACK_VALIDATION endif # CONFIG_LTO_CLANG |
ba01e93b4 FROMLIST: kbuild:... |
49 |
|
9b9a3f20c kbuild: split fin... |
50 |
quiet_cmd_ld_ko_o = LD [M] $@ |
6dd43b98c FROMLIST: kbuild:... |
51 |
cmd_ld_ko_o += \ |
9b9a3f20c kbuild: split fin... |
52 53 |
$(LD) -r $(KBUILD_LDFLAGS) \ $(KBUILD_LDFLAGS_MODULE) $(LDFLAGS_MODULE) \ |
596b0474d kbuild: preproces... |
54 |
-T scripts/module.lds -o $@ $(filter %.o, $^); \ |
9b9a3f20c kbuild: split fin... |
55 |
$(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true) |
ba01e93b4 FROMLIST: kbuild:... |
56 |
$(modules): %.ko: %$(prelink-ext).o %.mod.o scripts/module.lds FORCE |
9b9a3f20c kbuild: split fin... |
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
+$(call if_changed,ld_ko_o) targets += $(modules) $(modules:.ko=.mod.o) # Add FORCE to the prequisites of a target to force it to be always rebuilt. # --------------------------------------------------------------------------- PHONY += FORCE FORCE: # Read all saved command lines and dependencies for the $(targets) we # may be building above, using $(if_changed{,_dep}). As an # optimization, we don't need to read them if the target does not # exist, we will rebuild anyway in that case. existing-targets := $(wildcard $(sort $(targets))) -include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd) .PHONY: $(PHONY) |