Blame view
scripts/Makefile.modfinal
2.7 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: |
5f9ae91f7 kbuild: Build ker... |
8 |
include include/config/auto.conf |
9b9a3f20c kbuild: split fin... |
9 |
include $(srctree)/scripts/Kbuild.include |
850ded46c kbuild: Fix TRIM_... |
10 |
# for c_flags and mod-prelink-ext |
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] $@ |
cf68fffb6 add support for C... |
23 |
cmd_cc_o_c = $(CC) $(filter-out $(CC_FLAGS_CFI), $(c_flags)) -c -o $@ $< |
9b9a3f20c kbuild: split fin... |
24 25 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) quiet_cmd_ld_ko_o = LD [M] $@ |
b1a1a1a09 kbuild: lto: post... |
31 |
cmd_ld_ko_o += \ |
9b9a3f20c kbuild: split fin... |
32 33 |
$(LD) -r $(KBUILD_LDFLAGS) \ $(KBUILD_LDFLAGS_MODULE) $(LDFLAGS_MODULE) \ |
596b0474d kbuild: preproces... |
34 |
-T scripts/module.lds -o $@ $(filter %.o, $^); \ |
9b9a3f20c kbuild: split fin... |
35 |
$(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true) |
5f9ae91f7 kbuild: Build ker... |
36 |
quiet_cmd_btf_ko = BTF [M] $@ |
e732b538f kbuild: Skip modu... |
37 38 |
cmd_btf_ko = \ if [ -f vmlinux ]; then \ |
0baced0e0 kbuild: Unify opt... |
39 |
LLVM_OBJCOPY="$(OBJCOPY)" $(PAHOLE) -J $(PAHOLE_FLAGS) --btf_base vmlinux $@; \ |
e732b538f kbuild: Skip modu... |
40 41 42 43 |
else \ printf "Skipping BTF generation for %s due to unavailability of vmlinux " $@ 1>&2; \ fi; |
5f9ae91f7 kbuild: Build ker... |
44 45 46 47 48 49 50 51 52 |
# Same as newer-prereqs, but allows to exclude specified extra dependencies newer_prereqs_except = $(filter-out $(PHONY) $(1),$?) # Same as if_changed, but allows to exclude specified extra dependencies if_changed_except = $(if $(call newer_prereqs_except,$(2))$(cmd-check), \ $(cmd); \ printf '%s ' 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd, @:) |
dc5723b02 kbuild: add suppo... |
53 |
|
5f9ae91f7 kbuild: Build ker... |
54 |
# Re-generate module BTFs if either module's .ko or vmlinux changed |
850ded46c kbuild: Fix TRIM_... |
55 |
$(modules): %.ko: %$(mod-prelink-ext).o %.mod.o scripts/module.lds $(if $(KBUILD_BUILTIN),vmlinux) FORCE |
5f9ae91f7 kbuild: Build ker... |
56 57 58 59 |
+$(call if_changed_except,ld_ko_o,vmlinux) ifdef CONFIG_DEBUG_INFO_BTF_MODULES +$(if $(newer-prereqs),$(call cmd,btf_ko)) endif |
9b9a3f20c kbuild: split fin... |
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
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) |