
Hi Masahiro,
On Fri, Apr 17, 2020 at 3:02 PM Masahiro Yamada masahiroy@kernel.org wrote:
On Thu, Apr 16, 2020 at 11:15 PM Bin Meng bmeng.cn@gmail.com wrote:
Hi Masahiro,
On Thu, Apr 16, 2020 at 12:39 PM Masahiro Yamada masahiroy@kernel.org wrote:
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.
Thank you very much for doing this.
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/.
This patch does not apply on top of u-boot/master, unfortunately.
Requested-by: Bin Meng bmeng.cn@gmail.com Signed-off-by: Masahiro Yamada masahiroy@kernel.org
Kbuild | 4 ++-- scripts/Makefile.spl | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-)
I manually applied the changes and had a test, but it failed to build. See below:
diff --git a/Kbuild b/Kbuild index 6014f7c34a..1eac091594 100644 --- a/Kbuild +++ b/Kbuild @@ -10,7 +10,7 @@ generic-offsets-file := include/generated/generic-asm-offsets.h always := $(generic-offsets-file) targets := lib/asm-offsets.s
-$(obj)/$(generic-offsets-file): lib/asm-offsets.s FORCE +$(obj)/$(generic-offsets-file): $(obj)/lib/asm-offsets.s FORCE
CC spl/./lib/asm-offsets.s cc1: fatal error: can't open 'spl/./lib/asm-offsets.s' for writing: No such file or directory compilation terminated. scripts/Makefile.build:166: recipe for target 'spl/./lib/asm-offsets.s' failed make[2]: *** [spl/./lib/asm-offsets.s] Error 1 scripts/Makefile.spl:432: recipe for target 'prepare' failed make[1]: *** [prepare] Error 2 Makefile:1917: recipe for target 'spl/u-boot-spl' failed make: *** [spl/u-boot-spl] Error 2
When I removed the changes for this line, and the line below, the build could pass. The spl/include/generated/(generic-)asm-offsets.h were generated, and I verified the macro values are correct and different with the U-Boot proper one.
But since there is no $(obj) prepended to lib/asm-offsets.s, I believe this is still not perfect.
This is because you remove the needed changes.
I applied patch 1, and manually applied patch 3 in this series. Do you mean patch 2 is needed for patch 3 to work properly?
Regards, Bin