On 10/17/20 2:57 PM, Tom Rini wrote: > On Sat, Oct 17, 2020 at 02:46:27PM +0200, Heinrich Schuchardt wrote: >> On 10/17/20 2:15 PM, Tom Rini wrote: >>> On Sat, Oct 17, 2020 at 01:43:25PM +0200, Heinrich Schuchardt wrote: >>>> Hello Tom, hello Simon, >>>> >>>> make sandbox_defconfig >>>> make V=1 >>>> >>>> yields: >>>> >>>> make -f ./scripts/Makefile.build obj=test/log >>>> gcc -Wp,-MD,test/log/.syslog_test.o.d -nostdinc -isystem >>>> /usr/lib/gcc/x86_64-linux-gnu/10/include -Iinclude >>>> -I./arch/sandbox/include -include ./include/linux/kconfig.h -D__KERNEL__ >>>> -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin >>>> -ffreestanding -std=gnu11 -fshort-wchar -fno-strict-aliasing -fno-PIE >>>> -Os -fno-stack-protector -fno-delete-null-pointer-checks >>>> -Wno-stringop-truncation -Wno-maybe-uninitialized -fmacro-prefix-map=./= >>>> -g -fstack-usage -Wno-format-nonliteral -Wno-address-of-packed-member >>>> -Wno-unused-but-set-variable -Werror=date-time -Werror -D__SANDBOX__ >>>> -U_FORTIFY_SOURCE -DCONFIG_ARCH_MAP_SYSMEM -fPIC -I/usr/include/SDL2 >>>> -D_REENTRANT -pipe -DKBUILD_BASENAME='"syslog_test"' >>>> -DKBUILD_MODNAME='"syslog_test"' -c -o test/log/syslog_test.o >>>> test/log/syslog_test.c >>>> test/log/syslog_test.c:21:10: fatal error: syslog_test.h: No such file >>>> or directory >>>> 21 | #include <syslog_test.h> >>>> | ^~~~~~~~~~~~~~~ >>>> compilation terminated. >>>> >>>> git bisect: >>>> >>>> 52d3df7fefe30b05677db9055e68c666a071d89a is the first bad commit >>>> commit 52d3df7fefe30b05677db9055e68c666a071d89a >>>> Author: Simon Glass <s...@chromium.org> >>>> Date: Sat Sep 12 11:13:34 2020 -0600 >>>> >>>> log: Allow LOG_DEBUG to always enable log output >>>> >>>> @Tom: >>>> Why are such build failures not detected before merging? >>> >>> I think because we have no tests for building in the source directory. >> >> You are right >> >> make -j8 O=build >> >> works while >> >> make -j8 >> >> fails. >> >> Why do we generate >> >> -I../test/log -Itest/log >> >> as gcc parameters when building out of source? If we avoid this, we will >> get consistent test results. >> >> gcc -Wp,-MD,test/log/.syslog_test.o.d -nostdinc -isystem >> /usr/lib/gcc/x86_64-linux-gnu/10/include -Iinclude -I../include >> -I../arch/sandbox/include -include ../include/linux/kconfig.h >> -I../test/log -Itest/log -D__KERNEL__ -D__UBOOT__ -Wall >> -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding >> -std=gnu11 -fshort-wchar -fno-strict-aliasing -fno-PIE -Os >> -fno-stack-protector -fno-delete-null-pointer-checks >> -Wno-stringop-truncation -Wno-maybe-uninitialized >> -fmacro-prefix-map=../= -g -fstack-usage -Wno-format-nonliteral >> -Wno-address-of-packed-member -Wno-unused-but-set-variable >> -Werror=date-time -Werror -D__SANDBOX__ -U_FORTIFY_SOURCE >> -DCONFIG_ARCH_MAP_SYSMEM -fPIC -I/usr/include/SDL2 -D_REENTRANT -pipe >> -DKBUILD_BASENAME='"syslog_test"' -DKBUILD_MODNAME='"syslog_test"' -c >> -o test/log/syslog_test.o ../test/log/syslog_test.c > > A quick poke around and I don't see us doing anything special for CFLAGS > there, so that's how kbuild as of our last sync with the Linux kernel > works is I suppose the answer. >
Cf. [PATCH 1/1] Makefile: consistent include path for out of tree build https://lists.denx.de/pipermail/u-boot/2020-October/429780.html Best regards Heinrich