kbuild: SPL/TPL: generate separate asm-offsets.h for SPL and TPL
Currently generic-asm-offsets.h and asm-offsets.h are generated based on U-Boot proper config options. The same asm-offsets headers are used for building U-Boot SPL/TPL, which causes potential offset mismatch if U-Boot proper has different config options from U-Boot SPL/TPL. This commit adds: spl/include/generated/(generic-)asm-offsets.h tpl/include/generated/(generic-)asm-offsets.h spl/include/generated/(generic-)asm-offsets.h is generated if CONFIG_SPL=y, and included when building SPL. tpl/include/generated/(generic-)asm-offsets.h is generated if CONFIG_TPL=y, and included when building TPL. They are created before Kbuild descends into SPL/TPL object directories and builds $(obj)/dts/dt-platdata.o because $(obj)/dts/dt-platdata.c includes a bunch of headers. Prepend -I$(obj)/include to $(UBOOTINCLUDE) so (generic-)asm-offsets.h is searched in {spl,tpl}/include/generated/. Requested-by: Bin Meng <bmeng.cn@gmail.com> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Tested-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
221c4d9826
commit
f34d0ad82e
2 changed files with 10 additions and 4 deletions
4
Kbuild
4
Kbuild
|
@ -10,7 +10,7 @@ generic-offsets-file := include/generated/generic-asm-offsets.h
|
||||||
always := $(generic-offsets-file)
|
always := $(generic-offsets-file)
|
||||||
targets := lib/asm-offsets.s
|
targets := lib/asm-offsets.s
|
||||||
|
|
||||||
$(obj)/$(generic-offsets-file): lib/asm-offsets.s FORCE
|
$(obj)/$(generic-offsets-file): $(obj)/lib/asm-offsets.s FORCE
|
||||||
$(call filechk,offsets,__GENERIC_ASM_OFFSETS_H__)
|
$(call filechk,offsets,__GENERIC_ASM_OFFSETS_H__)
|
||||||
|
|
||||||
#####
|
#####
|
||||||
|
@ -25,5 +25,5 @@ targets += arch/$(ARCH)/lib/asm-offsets.s
|
||||||
|
|
||||||
CFLAGS_asm-offsets.o := -DDO_DEPS_ONLY
|
CFLAGS_asm-offsets.o := -DDO_DEPS_ONLY
|
||||||
|
|
||||||
$(obj)/$(offsets-file): arch/$(ARCH)/lib/asm-offsets.s FORCE
|
$(obj)/$(offsets-file): $(obj)/arch/$(ARCH)/lib/asm-offsets.s FORCE
|
||||||
$(call filechk,offsets,__ASM_OFFSETS_H__)
|
$(call filechk,offsets,__ASM_OFFSETS_H__)
|
||||||
|
|
|
@ -22,6 +22,8 @@ include $(srctree)/scripts/Kbuild.include
|
||||||
-include include/config/auto.conf
|
-include include/config/auto.conf
|
||||||
-include $(obj)/include/autoconf.mk
|
-include $(obj)/include/autoconf.mk
|
||||||
|
|
||||||
|
UBOOTINCLUDE := -I$(obj)/include $(UBOOTINCLUDE)
|
||||||
|
|
||||||
KBUILD_CPPFLAGS += -DCONFIG_SPL_BUILD
|
KBUILD_CPPFLAGS += -DCONFIG_SPL_BUILD
|
||||||
ifeq ($(CONFIG_TPL_BUILD),y)
|
ifeq ($(CONFIG_TPL_BUILD),y)
|
||||||
KBUILD_CPPFLAGS += -DCONFIG_TPL_BUILD
|
KBUILD_CPPFLAGS += -DCONFIG_TPL_BUILD
|
||||||
|
@ -311,7 +313,7 @@ cmd_plat = $(CC) $(c_flags) -c $< -o $(filter-out $(PHONY),$@)
|
||||||
|
|
||||||
targets += $(obj)/dts/dt-platdata.o
|
targets += $(obj)/dts/dt-platdata.o
|
||||||
$(obj)/dts/dt-platdata.o: $(obj)/dts/dt-platdata.c \
|
$(obj)/dts/dt-platdata.o: $(obj)/dts/dt-platdata.c \
|
||||||
include/generated/dt-structs-gen.h FORCE
|
include/generated/dt-structs-gen.h prepare FORCE
|
||||||
$(call if_changed,plat)
|
$(call if_changed,plat)
|
||||||
|
|
||||||
PHONY += dts_dir
|
PHONY += dts_dir
|
||||||
|
@ -422,9 +424,13 @@ $(obj)/$(SPL_BIN): $(u-boot-spl-platdata) $(u-boot-spl-init) \
|
||||||
$(sort $(u-boot-spl-init) $(u-boot-spl-main)): $(u-boot-spl-dirs) ;
|
$(sort $(u-boot-spl-init) $(u-boot-spl-main)): $(u-boot-spl-dirs) ;
|
||||||
|
|
||||||
PHONY += $(u-boot-spl-dirs)
|
PHONY += $(u-boot-spl-dirs)
|
||||||
$(u-boot-spl-dirs): $(u-boot-spl-platdata)
|
$(u-boot-spl-dirs): $(u-boot-spl-platdata) prepare
|
||||||
$(Q)$(MAKE) $(build)=$@
|
$(Q)$(MAKE) $(build)=$@
|
||||||
|
|
||||||
|
PHONY += prepare
|
||||||
|
prepare:
|
||||||
|
$(Q)$(MAKE) $(build)=$(obj)/.
|
||||||
|
|
||||||
quiet_cmd_cpp_lds = LDS $@
|
quiet_cmd_cpp_lds = LDS $@
|
||||||
cmd_cpp_lds = $(CPP) -Wp,-MD,$(depfile) $(cpp_flags) $(LDPPFLAGS) -ansi \
|
cmd_cpp_lds = $(CPP) -Wp,-MD,$(depfile) $(cpp_flags) $(LDPPFLAGS) -ansi \
|
||||||
-D__ASSEMBLY__ -x assembler-with-cpp -std=c99 -P -o $@ $<
|
-D__ASSEMBLY__ -x assembler-with-cpp -std=c99 -P -o $@ $<
|
||||||
|
|
Loading…
Reference in a new issue