aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Wiehler <stefan.wiehler@missinglinkelectronics.com>2017-05-05 17:01:06 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-05-30 10:14:32 +0100
commit08e366a386caab547e0dbcad2d4ee08f44814262 (patch)
tree0e281ec51afd27b8a4d100b0858cf9c6e9ce3bb2
parentc768c536e4dbee69690d0dc131df05a74b4eac8c (diff)
downloadopenembedded-core-contrib-08e366a386caab547e0dbcad2d4ee08f44814262.tar.gz
module.bbclass: Add devshell support
Adds development shell support for out-of-tree kernel modules by reproducing the build environment of the compile task. Signed-off-by: Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/module.bbclass20
1 files changed, 20 insertions, 0 deletions
diff --git a/meta/classes/module.bbclass b/meta/classes/module.bbclass
index 802476bc7a..391776db22 100644
--- a/meta/classes/module.bbclass
+++ b/meta/classes/module.bbclass
@@ -18,6 +18,26 @@ python __anonymous () {
d.setVar('KBUILD_EXTRA_SYMBOLS', " ".join(extra_symbols))
}
+python do_devshell_prepend () {
+ os.environ['CFLAGS'] = ''
+ os.environ['CPPFLAGS'] = ''
+ os.environ['CXXFLAGS'] = ''
+ os.environ['LDFLAGS'] = ''
+
+ os.environ['KERNEL_PATH'] = d.getVar('STAGING_KERNEL_DIR')
+ os.environ['KERNEL_SRC'] = d.getVar('STAGING_KERNEL_DIR')
+ os.environ['KERNEL_VERSION'] = d.getVar('KERNEL_VERSION')
+ os.environ['CC'] = d.getVar('KERNEL_CC')
+ os.environ['LD'] = d.getVar('KERNEL_LD')
+ os.environ['AR'] = d.getVar('KERNEL_AR')
+ os.environ['O'] = d.getVar('STAGING_KERNEL_BUILDDIR')
+ kbuild_extra_symbols = d.getVar('KBUILD_EXTRA_SYMBOLS')
+ if kbuild_extra_symbols:
+ os.environ['KBUILD_EXTRA_SYMBOLS'] = kbuild_extra_symbols
+ else:
+ os.environ['KBUILD_EXTRA_SYMBOLS'] = ''
+}
+
module_do_compile() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR} \