[oe-commits] [openembedded-core] 10/27: classes/kernel: check OLDEST_KERNEL at configure time

git at git.openembedded.org git at git.openembedded.org
Thu May 19 22:55:52 UTC 2016


rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit 5c9e9e8ba93e896c3631c095e39f67323a4f8419
Author: Paul Eggleton <paul.eggleton at linux.intel.com>
AuthorDate: 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].
    
    Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
    Signed-off-by: Ross Burton <ross.burton at intel.com>
---
 meta/classes/kernel.bbclass | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

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 . => +

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list