summaryrefslogtreecommitdiffstats
path: root/meta/classes/kernel-yocto.bbclass
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@windriver.com>2018-10-22 06:20:10 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-11-16 16:33:08 +0000
commit3728760048273c88d4e648911c13aaf869461ff4 (patch)
tree78d2c4bc33918aca4323d661c932031090f2f3c3 /meta/classes/kernel-yocto.bbclass
parent118724e4642b399d204aa4a1226d8d7d8766a716 (diff)
downloadpoky-3728760048273c88d4e648911c13aaf869461ff4.tar.gz
kernel: specify dependencies for compilation for config tasks
With recent kernels (i.e. 4.17+) the configuration phase of the kernel will check for capabilities/options of the compiler for CVE and other mitigation support. For a general kernel, we want to ensure that CC is fully defined when the config targets are invoked (so the proper compiler will be checked). For linux-yocto, we also need to specify the compiler/tools dependencies for the configme task since it executes before configure and hence the main kernel build DEPENDS will not always be in the sysroot before it executes. Without those dependencies the kernel will be incorrectly configured (i.e. bison is missing) or the configuration will fail the mitigation tests. [YOCTO #12757] (From OE-Core rev: ff1bdd75d50f0ebac3d599e461685ace29559a82) (From OE-Core rev: ec5cc387ca6828c5dbb3d36c9a92e2d7654c616a) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Sinan Kaya <okaya@kernel.org> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/kernel-yocto.bbclass')
-rw-r--r--meta/classes/kernel-yocto.bbclass5
1 files changed, 4 insertions, 1 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 4ac3a39e47..82d80741a9 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -275,6 +275,9 @@ addtask kernel_metadata after do_validate_branches do_unpack before do_patch
275do_kernel_metadata[depends] = "kern-tools-native:do_populate_sysroot" 275do_kernel_metadata[depends] = "kern-tools-native:do_populate_sysroot"
276do_validate_branches[depends] = "kern-tools-native:do_populate_sysroot" 276do_validate_branches[depends] = "kern-tools-native:do_populate_sysroot"
277 277
278do_kernel_configme[depends] += "virtual/${TARGET_PREFIX}binutils:do_populate_sysroot"
279do_kernel_configme[depends] += "virtual/${TARGET_PREFIX}gcc:do_populate_sysroot"
280do_kernel_configme[depends] += "bc-native:do_populate_sysroot bison-native:do_populate_sysroot"
278do_kernel_configme[dirs] += "${S} ${B}" 281do_kernel_configme[dirs] += "${S} ${B}"
279do_kernel_configme() { 282do_kernel_configme() {
280 set +e 283 set +e
@@ -304,7 +307,7 @@ do_kernel_configme() {
304 bbfatal_log "Could not find configuration queue (${meta_dir}/config.queue)" 307 bbfatal_log "Could not find configuration queue (${meta_dir}/config.queue)"
305 fi 308 fi
306 309
307 CFLAGS="${CFLAGS} ${TOOLCHAIN_OPTIONS}" ARCH=${ARCH} merge_config.sh -O ${B} ${config_flags} ${configs} > ${meta_dir}/cfg/merge_config_build.log 2>&1 310 CFLAGS="${CFLAGS} ${TOOLCHAIN_OPTIONS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}" CC="${KERNEL_CC}" ARCH=${ARCH} merge_config.sh -O ${B} ${config_flags} ${configs} > ${meta_dir}/cfg/merge_config_build.log 2>&1
308 if [ $? -ne 0 ]; then 311 if [ $? -ne 0 ]; then
309 bbfatal_log "Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}" 312 bbfatal_log "Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}"
310 fi 313 fi