Skip to content

Commit 214c0ee

Browse files
committed
kbuild: add $(objtree)/ prefix to some in-kernel build artifacts
$(objtree) refers to the top of the output directory of kernel builds. This commit adds the explicit $(objtree)/ prefix to build artifacts needed for building external modules. This change has no immediate impact, as the top-level Makefile currently defines: objtree := . This commit prepares for supporting the building of external modules in a different directory. Signed-off-by: Masahiro Yamada <[email protected]> Reviewed-by: Nicolas Schier <[email protected]>
1 parent 0afd73c commit 214c0ee

File tree

11 files changed

+30
-30
lines changed

11 files changed

+30
-30
lines changed

Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ else # !mixed-build
354354
include $(srctree)/scripts/Kbuild.include
355355

356356
# Read KERNELRELEASE from include/config/kernel.release (if it exists)
357-
KERNELRELEASE = $(call read-file, include/config/kernel.release)
357+
KERNELRELEASE = $(call read-file, $(objtree)/include/config/kernel.release)
358358
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
359359
export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
360360

@@ -720,7 +720,7 @@ endif
720720
export KBUILD_MODULES KBUILD_BUILTIN
721721

722722
ifdef need-config
723-
include include/config/auto.conf
723+
include $(objtree)/include/config/auto.conf
724724
endif
725725

726726
ifeq ($(KBUILD_EXTMOD),)
@@ -783,13 +783,13 @@ else # !may-sync-config
783783
# and include/config/auto.conf but do not care if they are up-to-date.
784784
# Use auto.conf to show the error message
785785

786-
checked-configs := include/generated/autoconf.h include/generated/rustc_cfg include/config/auto.conf
786+
checked-configs := $(addprefix $(objtree)/, include/generated/autoconf.h include/generated/rustc_cfg include/config/auto.conf)
787787
missing-configs := $(filter-out $(wildcard $(checked-configs)), $(checked-configs))
788788

789789
ifdef missing-configs
790-
PHONY += include/config/auto.conf
790+
PHONY += $(objtree)/include/config/auto.conf
791791

792-
include/config/auto.conf:
792+
$(objtree)/include/config/auto.conf:
793793
@echo >&2 '***'
794794
@echo >&2 '*** ERROR: Kernel configuration is invalid. The following files are missing:'
795795
@printf >&2 '*** - %s\n' $(missing-configs)

arch/arm/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,13 +264,13 @@ stack_protector_prepare: prepare0
264264
-mstack-protector-guard=tls \
265265
-mstack-protector-guard-offset=$(shell \
266266
awk '{if ($$2 == "TSK_STACK_CANARY") print $$3;}'\
267-
include/generated/asm-offsets.h))
267+
$(objtree)/include/generated/asm-offsets.h))
268268
else
269269
stack_protector_prepare: prepare0
270270
$(eval SSP_PLUGIN_CFLAGS := \
271271
-fplugin-arg-arm_ssp_per_task_plugin-offset=$(shell \
272272
awk '{if ($$2 == "TSK_STACK_CANARY") print $$3;}'\
273-
include/generated/asm-offsets.h))
273+
$(objtree)/include/generated/asm-offsets.h))
274274
$(eval KBUILD_CFLAGS += $(SSP_PLUGIN_CFLAGS))
275275
$(eval GCC_PLUGINS_CFLAGS += $(SSP_PLUGIN_CFLAGS))
276276
endif

arch/arm64/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ stack_protector_prepare: prepare0
7171
-mstack-protector-guard-reg=sp_el0 \
7272
-mstack-protector-guard-offset=$(shell \
7373
awk '{if ($$2 == "TSK_STACK_CANARY") print $$3;}' \
74-
include/generated/asm-offsets.h))
74+
$(objtree)/include/generated/asm-offsets.h))
7575
endif
7676

7777
ifeq ($(CONFIG_ARM64_BTI_KERNEL),y)

arch/powerpc/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -402,9 +402,9 @@ prepare: stack_protector_prepare
402402
PHONY += stack_protector_prepare
403403
stack_protector_prepare: prepare0
404404
ifdef CONFIG_PPC64
405-
$(eval KBUILD_CFLAGS += -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "PACA_CANARY") print $$3;}' include/generated/asm-offsets.h))
405+
$(eval KBUILD_CFLAGS += -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "PACA_CANARY") print $$3;}' $(objtree)/include/generated/asm-offsets.h))
406406
else
407-
$(eval KBUILD_CFLAGS += -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "TASK_CANARY") print $$3;}' include/generated/asm-offsets.h))
407+
$(eval KBUILD_CFLAGS += -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "TASK_CANARY") print $$3;}' $(objtree)/include/generated/asm-offsets.h))
408408
endif
409409
endif
410410

arch/riscv/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ stack_protector_prepare: prepare0
129129
-mstack-protector-guard-reg=tp \
130130
-mstack-protector-guard-offset=$(shell \
131131
awk '{if ($$2 == "TSK_STACK_CANARY") print $$3;}' \
132-
include/generated/asm-offsets.h))
132+
$(objtree)/include/generated/asm-offsets.h))
133133
endif
134134

135135
# arch specific predefines for sparse

scripts/Kbuild.include

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ if_changed_dep = $(if $(if-changed-cond),$(cmd_and_fixdep),@:)
205205

206206
cmd_and_fixdep = \
207207
$(cmd); \
208-
scripts/basic/fixdep $(depfile) $@ '$(make-cmd)' > $(dot-target).cmd;\
208+
$(objtree)/scripts/basic/fixdep $(depfile) $@ '$(make-cmd)' > $(dot-target).cmd;\
209209
rm -f $(depfile)
210210

211211
# Usage: $(call if_changed_rule,foo)

scripts/Makefile.build

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ subdir-asflags-y :=
3434
subdir-ccflags-y :=
3535

3636
# Read auto.conf if it exists, otherwise ignore
37-
-include include/config/auto.conf
37+
-include $(objtree)/include/config/auto.conf
3838

3939
include $(srctree)/scripts/Kbuild.include
4040
include $(srctree)/scripts/Makefile.compiler
@@ -107,7 +107,7 @@ cmd_cpp_i_c = $(CPP) $(c_flags) -o $@ $<
107107
$(obj)/%.i: $(obj)/%.c FORCE
108108
$(call if_changed_dep,cpp_i_c)
109109

110-
genksyms = scripts/genksyms/genksyms \
110+
genksyms = $(objtree)/scripts/genksyms/genksyms \
111111
$(if $(1), -T $(2)) \
112112
$(if $(KBUILD_PRESERVE), -p) \
113113
-r $(or $(wildcard $(2:.symtypes=.symref)), /dev/null)

scripts/Makefile.modfinal

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
PHONY := __modfinal
77
__modfinal:
88

9-
include include/config/auto.conf
9+
include $(objtree)/include/config/auto.conf
1010
include $(srctree)/scripts/Kbuild.include
1111

1212
# for c_flags
@@ -37,15 +37,15 @@ quiet_cmd_ld_ko_o = LD [M] $@
3737
cmd_ld_ko_o = \
3838
$(LD) -r $(KBUILD_LDFLAGS) \
3939
$(KBUILD_LDFLAGS_MODULE) $(LDFLAGS_MODULE) \
40-
-T scripts/module.lds -o $@ $(filter %.o, $^)
40+
-T $(objtree)/scripts/module.lds -o $@ $(filter %.o, $^)
4141

4242
quiet_cmd_btf_ko = BTF [M] $@
4343
cmd_btf_ko = \
44-
if [ ! -f vmlinux ]; then \
44+
if [ ! -f $(objtree)/vmlinux ]; then \
4545
printf "Skipping BTF generation for %s due to unavailability of vmlinux\n" $@ 1>&2; \
4646
else \
47-
LLVM_OBJCOPY="$(OBJCOPY)" $(PAHOLE) -J $(PAHOLE_FLAGS) $(MODULE_PAHOLE_FLAGS) --btf_base vmlinux $@; \
48-
$(RESOLVE_BTFIDS) -b vmlinux $@; \
47+
LLVM_OBJCOPY="$(OBJCOPY)" $(PAHOLE) -J $(PAHOLE_FLAGS) $(MODULE_PAHOLE_FLAGS) --btf_base $(objtree)/vmlinux $@; \
48+
$(RESOLVE_BTFIDS) -b $(objtree)/vmlinux $@; \
4949
fi;
5050

5151
# Same as newer-prereqs, but allows to exclude specified extra dependencies
@@ -57,8 +57,8 @@ if_changed_except = $(if $(call newer_prereqs_except,$(2))$(cmd-check), \
5757
printf '%s\n' 'savedcmd_$@ := $(make-cmd)' > $(dot-target).cmd, @:)
5858

5959
# Re-generate module BTFs if either module's .ko or vmlinux changed
60-
%.ko: %.o %.mod.o $(extmod_prefix).module-common.o scripts/module.lds $(and $(CONFIG_DEBUG_INFO_BTF_MODULES),$(KBUILD_BUILTIN),vmlinux) FORCE
61-
+$(call if_changed_except,ld_ko_o,vmlinux)
60+
%.ko: %.o %.mod.o $(extmod_prefix).module-common.o $(objtree)/scripts/module.lds $(and $(CONFIG_DEBUG_INFO_BTF_MODULES),$(KBUILD_BUILTIN),$(objtree)/vmlinux) FORCE
61+
+$(call if_changed_except,ld_ko_o,$(objtree)/vmlinux)
6262
ifdef CONFIG_DEBUG_INFO_BTF_MODULES
6363
+$(if $(newer-prereqs),$(call cmd,btf_ko))
6464
endif

scripts/Makefile.modinst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
PHONY := __modinst
77
__modinst:
88

9-
include include/config/auto.conf
9+
include $(objtree)/include/config/auto.conf
1010
include $(srctree)/scripts/Kbuild.include
1111

1212
install-y :=

scripts/Makefile.modpost

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
PHONY := __modpost
3636
__modpost:
3737

38-
include include/config/auto.conf
38+
include $(objtree)/include/config/auto.conf
3939
include $(srctree)/scripts/Kbuild.include
4040

41-
MODPOST = scripts/mod/modpost
41+
MODPOST = $(objtree)/scripts/mod/modpost
4242

4343
modpost-args = \
4444
$(if $(CONFIG_MODULES),-M) \
@@ -119,11 +119,11 @@ include $(kbuild-file)
119119

120120
output-symdump := $(KBUILD_EXTMOD)/Module.symvers
121121

122-
ifeq ($(wildcard Module.symvers),)
123-
missing-input := Module.symvers
122+
ifeq ($(wildcard $(objtree)/Module.symvers),)
123+
missing-input := $(objtree)/Module.symvers
124124
else
125-
modpost-args += -i Module.symvers
126-
modpost-deps += Module.symvers
125+
modpost-args += -i $(objtree)/Module.symvers
126+
modpost-deps += $(objtree)/Module.symvers
127127
endif
128128

129129
modpost-args += -e $(addprefix -i , $(KBUILD_EXTRA_SYMBOLS))

scripts/depmod.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ KERNELRELEASE=$1
1212

1313
: ${DEPMOD:=depmod}
1414

15-
if ! test -r System.map ; then
15+
if ! test -r "${objtree}/System.map" ; then
1616
echo "Warning: modules_install: missing 'System.map' file. Skipping depmod." >&2
1717
exit 0
1818
fi
@@ -25,7 +25,7 @@ if [ -z $(command -v $DEPMOD) ]; then
2525
exit 0
2626
fi
2727

28-
set -- -ae -F System.map
28+
set -- -ae -F "${objtree}/System.map"
2929
if test -n "$INSTALL_MOD_PATH"; then
3030
set -- "$@" -b "$INSTALL_MOD_PATH"
3131
fi

0 commit comments

Comments
 (0)