public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
From: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH] kernel-yocto: do_kernel_configme: Fix silent sysroot poisoning error
Date: Mon, 29 Aug 2016 12:19:58 +0300	[thread overview]
Message-ID: <20160829091958.1125-1-adrian.ratiu@ni.com> (raw)

do_kernel_configme calls merge_config.sh (installed in the sysroot by
the kern-tools-native recipe) which calls make to fill in any missing
symbols from the resulting merged config.

This errors out on my system because of sysroot poisoning [1]. Here is
a partial output from my .kernel-meta/cfg/merge_config_build.log (this
file is created in do_kernel_configme() while callig merge_config.sh):

make[1]: Entering directory '/media/adi/ssd/nilrt-master/build/tmp-glibc/work/x64-nilrt-linux/linux-nilrt/4.1+gitAUTOINC+a7e53ecc27-r0/linux-x64-standard-build'
  HOSTCC  scripts/basic/fixdep
/media/adi/ssd/nilrt-master/build/tmp-glibc/work-shared/x64/kernel-source/scripts/basic/fixdep.c:106:23: fatal error: sys/types.h: No such file or directory
compilation terminated.
make[2]: *** [/media/adi/ssd/nilrt-master/build/tmp-glibc/work-shared/x64/kernel-source/scripts/basic/Makefile:22: scripts/basic/x86_64-nilrt-linux-fixdep] Error 1

This issue is hard to debug because merge_config.sh does NOT check the
error output of its make call (this is added in the second patch) and
even though make errors out, the build continues as if nothing happened
and compiles a kernel with garbage configs (the .config generated by
do_kernel_configme is empty and gets filled later) which doesn't boot.

Adding $TOOLCHAIN_OPTIONS to $CFLAGS before calling merge_configs.sh
fixes the error because $TOOLCHAIN_OPTIONS defines the sysroot and make
uses it to correctly compile & fill all missing kernel config options.

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

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

diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 8650e55..4397a9d 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -249,7 +249,7 @@ do_kernel_configme() {
 		bbfatal_log "Could not find configuration queue (${meta_dir}/config.queue)"
 	fi
 
-	ARCH=${ARCH} merge_config.sh -O ${B} ${config_flags} ${configs} > ${meta_dir}/cfg/merge_config_build.log 2>&1
+	CFLAGS="${CFLAGS} ${TOOLCHAIN_OPTIONS}"	ARCH=${ARCH} merge_config.sh -O ${B} ${config_flags} ${configs} > ${meta_dir}/cfg/merge_config_build.log 2>&1
 	if [ $? -ne 0 ]; then
 		bbfatal_log "Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}"
 	fi
-- 
2.9.3



             reply	other threads:[~2016-08-29  9:21 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-29  9:19 Ioan-Adrian Ratiu [this message]
2016-08-29 12:10 ` [PATCH] kernel-yocto: do_kernel_configme: Fix silent sysroot poisoning error Bruce Ashfield
2016-08-29 13:14   ` Ioan-Adrian Ratiu
2016-08-29 13:23     ` Bruce Ashfield
2016-08-29 13:51       ` Ioan-Adrian Ratiu
2016-08-29 14:44         ` Bruce Ashfield
2016-08-29 14:05   ` Ioan-Adrian Ratiu
2016-08-29 14:46     ` Bruce Ashfield
2016-08-29 15:01       ` Bruce Ashfield
2016-08-29 15:34       ` Ioan-Adrian Ratiu
2016-08-29 15:39         ` Bruce Ashfield

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160829091958.1125-1-adrian.ratiu@ni.com \
    --to=adrian.ratiu@ni.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox