diff mbox series

[18/19] module.bbclass: move environment setup to kernel_module.py

Message ID 20250918210754.477049-19-adrian.freihofer@siemens.com
State New
Headers show
Series devtool: ide-sdk: Enhance debugging and testing | expand

Commit Message

AdrianF Sept. 18, 2025, 9:07 p.m. UTC
From: Adrian Freihofer <adrian.freihofer@siemens.com>

Refactor: move kernel module environment setup from do_devshell to
kernel_module.py

Extract the kernel module environment variable setup from do_devshell
into oe.kernel_module.kernel_module_os_env(). This enables code reuse
for future features such as devtool ide-sdk.

Note: it would also be possible to e.g. bb.utils.py. But when every such
a widely used utility function gets changed, bitbake needs to recompile
a lot of code. Therefore it's probably better to put it into a
separate file. It also is a very specific function, so oe.kernel_module
seems to be a good place.

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
---
 meta/classes-recipe/module.bbclass | 21 ++-------------------
 meta/lib/oe/kernel_module.py       | 22 ++++++++++++++++++++++
 2 files changed, 24 insertions(+), 19 deletions(-)
 create mode 100644 meta/lib/oe/kernel_module.py
diff mbox series

Patch

diff --git a/meta/classes-recipe/module.bbclass b/meta/classes-recipe/module.bbclass
index 4948e995c5d..ca2dcba43e0 100644
--- a/meta/classes-recipe/module.bbclass
+++ b/meta/classes-recipe/module.bbclass
@@ -25,25 +25,8 @@  python do_package:prepend () {
 }
 
 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['OBJCOPY'] = d.getVar('KERNEL_OBJCOPY')
-    os.environ['STRIP'] = d.getVar('KERNEL_STRIP')
-    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'] = ''
+    import oe.kernel_module
+    oe.kernel_module.kernel_module_os_env(d, os.environ)
 }
 
 module_do_compile() {
diff --git a/meta/lib/oe/kernel_module.py b/meta/lib/oe/kernel_module.py
new file mode 100644
index 00000000000..678f7de03b4
--- /dev/null
+++ b/meta/lib/oe/kernel_module.py
@@ -0,0 +1,22 @@ 
+
+# Set up the environment for building kernel modules
+def kernel_module_os_env(d, env_dict):
+    env_dict['CFLAGS'] = ''
+    env_dict['CPPFLAGS'] = ''
+    env_dict['CXXFLAGS'] = ''
+    env_dict['LDFLAGS'] = ''
+
+    env_dict['KERNEL_PATH'] = d.getVar('STAGING_KERNEL_DIR')
+    env_dict['KERNEL_SRC'] = d.getVar('STAGING_KERNEL_DIR')
+    env_dict['KERNEL_VERSION'] = d.getVar('KERNEL_VERSION')
+    env_dict['CC'] = d.getVar('KERNEL_CC')
+    env_dict['LD'] = d.getVar('KERNEL_LD')
+    env_dict['AR'] = d.getVar('KERNEL_AR')
+    env_dict['OBJCOPY'] = d.getVar('KERNEL_OBJCOPY')
+    env_dict['STRIP'] = d.getVar('KERNEL_STRIP')
+    env_dict['O'] = d.getVar('STAGING_KERNEL_BUILDDIR')
+    kbuild_extra_symbols = d.getVar('KBUILD_EXTRA_SYMBOLS')
+    if kbuild_extra_symbols:
+        env_dict['KBUILD_EXTRA_SYMBOLS'] = kbuild_extra_symbols
+    else:
+        env_dict['KBUILD_EXTRA_SYMBOLS'] = ''