<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Aug 29, 2016 at 5:19 AM, Ioan-Adrian Ratiu <span dir="ltr"><<a href="mailto:adrian.ratiu@ni.com" target="_blank">adrian.ratiu@ni.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">do_kernel_configme calls merge_config.sh (installed in the sysroot by<br>
the kern-tools-native recipe) which calls make to fill in any missing<br>
symbols from the resulting merged config.</blockquote><div><br></div><div>That's not what it does ... but that isn't important. <br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
This errors out on my system because of sysroot poisoning [1]. Here is<br>
a partial output from my .kernel-meta/cfg/merge_config_<wbr>build.log (this<br>
file is created in do_kernel_configme() while callig merge_config.sh):<br>
<br>
make[1]: Entering directory '/media/adi/ssd/nilrt-master/<wbr>build/tmp-glibc/work/x64-<wbr>nilrt-linux/linux-nilrt/4.1+<wbr>gitAUTOINC+a7e53ecc27-r0/<wbr>linux-x64-standard-build'<br>
HOSTCC scripts/basic/fixdep<br>
/media/adi/ssd/nilrt-master/<wbr>build/tmp-glibc/work-shared/<wbr>x64/kernel-source/scripts/<wbr>basic/fixdep.c:106:23: fatal error: sys/types.h: No such file or directory<br>
compilation terminated.<br>
make[2]: *** [/media/adi/ssd/nilrt-master/<wbr>build/tmp-glibc/work-shared/<wbr>x64/kernel-source/scripts/<wbr>basic/Makefile:22: scripts/basic/x86_64-nilrt-<wbr>linux-fixdep] Error 1<br></blockquote><div><br></div><div>This just means that we are missing a dependency. Everything that merge_config</div><div>needs should be already in place before it runs, i.e. do_kernel_metadata should</div><div>have already run and built any host tools that it needs.</div><div><br></div><div>How are you managing to trigger this error ? I've done plenty of builds, and haven't</div><div>seen this one before.</div><div><br></div><div>Bruce</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
This issue is hard to debug because merge_config.sh does NOT check the<br>
error output of its make call (this is added in the second patch) and<br>
even though make errors out, the build continues as if nothing happened<br>
and compiles a kernel with garbage configs (the .config generated by<br>
do_kernel_configme is empty and gets filled later) which doesn't boot.<br>
<br>
Adding $TOOLCHAIN_OPTIONS to $CFLAGS before calling merge_configs.sh<br>
fixes the error because $TOOLCHAIN_OPTIONS defines the sysroot and make<br>
uses it to correctly compile & fill all missing kernel config options.<br>
<br>
[1] <a href="http://lists.openembedded.org/pipermail/openembedded-core/2014-October/098253.html" rel="noreferrer" target="_blank">http://lists.openembedded.org/<wbr>pipermail/openembedded-core/<wbr>2014-October/098253.html</a><br>
<br>
Signed-off-by: Ioan-Adrian Ratiu <<a href="mailto:adrian.ratiu@ni.com">adrian.ratiu@ni.com</a>><br>
---<br>
meta/classes/kernel-yocto.<wbr>bbclass | 2 +-<br>
1 file changed, 1 insertion(+), 1 deletion(-)<br>
<br>
diff --git a/meta/classes/kernel-yocto.<wbr>bbclass b/meta/classes/kernel-yocto.<wbr>bbclass<br>
index 8650e55..4397a9d 100644<br>
--- a/meta/classes/kernel-yocto.<wbr>bbclass<br>
+++ b/meta/classes/kernel-yocto.<wbr>bbclass<br>
@@ -249,7 +249,7 @@ do_kernel_configme() {<br>
bbfatal_log "Could not find configuration queue (${meta_dir}/config.queue)"<br>
fi<br>
<br>
- ARCH=${ARCH} merge_config.sh -O ${B} ${config_flags} ${configs} > ${meta_dir}/cfg/merge_config_<wbr>build.log 2>&1<br>
+ CFLAGS="${CFLAGS} ${TOOLCHAIN_OPTIONS}" ARCH=${ARCH} merge_config.sh -O ${B} ${config_flags} ${configs} > ${meta_dir}/cfg/merge_config_<wbr>build.log 2>&1<br>
if [ $? -ne 0 ]; then<br>
bbfatal_log "Could not configure ${KMACHINE}-${LINUX_KERNEL_<wbr>TYPE}"<br>
fi<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.9.3<br>
<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">"Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end"</div>
</div></div>