[gnome-continuous-yocto/gnomeostree-3.28-rocko: 435/8267] classes/kernel: check OLDEST_KERNEL at configure time
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 435/8267] classes/kernel: check OLDEST_KERNEL at configure time
- Date: Sat, 16 Dec 2017 20:25:22 +0000 (UTC)
commit 55159ef0567c9c5f47609a18cff8866a17e53173
Author: Paul Eggleton <paul eggleton linux intel com>
Date: Mon May 9 16:43:31 2016 +1200
classes/kernel: check OLDEST_KERNEL at configure time
If the kernel being built is older than OLDEST_KERNEL and we're building
with glibc, then the C library we're building is probably not going to
be compatible with the kernel and we should warn the user. (This is
easier to do here rather than when building glibc, because we don't
necessarily have the information we need to determine the kernel version
there, whereas we do here.)
Fixes [YOCTO #8653].
(From OE-Core rev: 2e66f57febe85a63ce2ab98eaf6318d47eb60939)
Signed-off-by: Paul Eggleton <paul eggleton linux intel com>
Signed-off-by: Ross Burton <ross burton intel com>
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
meta/classes/kernel.bbclass | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
---
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 75450ce..c5355cf 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -326,6 +326,20 @@ sysroot_stage_all () {
KERNEL_CONFIG_COMMAND ?= "oe_runmake_call -C ${S} O=${B} oldnoconfig || yes '' | oe_runmake -C ${S} O=${B}
oldconfig"
+python check_oldest_kernel() {
+ oldest_kernel = d.getVar('OLDEST_KERNEL', True)
+ kernel_version = d.getVar('KERNEL_VERSION', True)
+ tclibc = d.getVar('TCLIBC', True)
+ if tclibc == 'glibc':
+ kernel_version = kernel_version.split('-', 1)[0]
+ if oldest_kernel and kernel_version:
+ if bb.utils.vercmp_string(kernel_version, oldest_kernel) < 0:
+ bb.warn('%s: OLDEST_KERNEL is "%s" but the version of the kernel you are building is "%s" -
therefore %s as built may not be compatible with this kernel. Either set OLDEST_KERNEL to an older version,
or build a newer kernel.' % (d.getVar('PN', True), oldest_kernel, kernel_version, tclibc))
+}
+
+check_oldest_kernel[vardepsexclude] += "OLDEST_KERNEL KERNEL_VERSION"
+do_configure[prefuncs] += "check_oldest_kernel"
+
kernel_do_configure() {
# fixes extra + in /lib/modules/2.6.37+
# $ scripts/setlocalversion . => +
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]