The kernel configure step was broken by the sysroot poisoning in [1].
In linux-yocto.inc this was fixed by appending $TOOLCHAIN_OPTIONS to
KERNEL_CC, TOOLCHAIN_OPTIONS containing the needed --sysroot arg.

However, [1] also breaks the yocto configure fragment generation:
after parsing the fragments, when make is called on the merged file
to fill in any missing symbols with default values. The call chain is:

do_kernel_configme() -> configme -> merge_config.sh
-> make KCONFIG_ALLCONFIG=$TMP_FILE

This issue was uncaught until now because configme redirects all stdout
and stderr to merge_log.txt prior to calling merge_configs.sh and there
is no return value checking, so building continues and the silent error
is ignored.

Adding $TOOLCHAIN_OPTIONS to $CFLAGS before calling configme fixes this.

TODO: In a future patch this kind of error should be made loud and cause
the build to fail.

[1] 
http://lists.openembedded.org/pipermail/openembedded-core/2014-October/098253.html

Signed-off-by: Ioan-Adrian Ratiu <adrian.ra...@ni.com>
---
 meta/classes/kernel-yocto.bbclass | 1 +
 1 file changed, 1 insertion(+)

diff --git a/meta/classes/kernel-yocto.bbclass 
b/meta/classes/kernel-yocto.bbclass
index 231e08d..3a67238 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -248,6 +248,7 @@ do_kernel_configme() {
 
        cd ${S}
        PATH=${PATH}:${S}/scripts/util
+       CFLAGS="${CFLAGS} ${TOOLCHAIN_OPTIONS}"
        configme ${configmeflags} --reconfig --output ${B} ${LINUX_KERNEL_TYPE} 
${KMACHINE}
        if [ $? -ne 0 ]; then
                bbfatal_log "Could not configure 
${KMACHINE}-${LINUX_KERNEL_TYPE}"
-- 
2.1.4

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to