Skip to contentSkip to conversation

Ensure -c menuconfig forces kernel rebuild

PATCH Applied Paul Eggleton 2 participants 3 messages Jun 18, 2012 – Jun 22, 2012

lore
Share & tools
lore
#0 lore raw

cover Ensure -c menuconfig forces kernel rebuild

Note: to have any effect, this change requires a patch just sent to the bitbake-devel list; without it -c menuconfig will behave as it did before.

The following change since commit 6d761ae17ddbd3d936e7fe985b40825ad62b2418:

debian.bbclass: invoke target objdump (2012-06-18 13:20:29 +0100)

is available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib paule/menuconfig-rebuild
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/menuconfig-rebuild

Paul Eggleton (1):
classes/cml1: ensure -c menuconfig forces a rebuild next time

 meta/classes/cml1.bbclass |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 1/1 classes/cml1: ensure -c menuconfig forces a rebuild next time

Ensure the following results in the kernel being rebuilt, repackaged and re-deployed in the final step:

bitbake virtual/kernel
bitbake -c menuconfig virtual/kernel
[ make changes to the kernel configuration and save ] bitbake virtual/kernel

If there are no changes to the configuration saved, the rebuild will not be triggered.

Note that this relies on a function recently added to BitBake and requires full hashing (i.e. BB_SIGNATURE_HANDLER must be set to a signature handler that inherits from BasicHash) - if this is not the case or the function is not available in the version of BitBake being used this change will do nothing.

Fixes [YOCTO #2256].

---
 meta/classes/cml1.bbclass |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)
meta/classes/cml1.bbclass +16 -0
index bd25311..fd80c18 100644
@@ -15,7 +15,23 @@ HOSTLDFLAGS = "${BUILD_LDFLAGS}"
 HOST_LOADLIBES = "-lncurses"
 
 python do_menuconfig() {
+        try:
+            mtime = os.path.getmtime(".config")
+        except OSError:
+            mtime = 0
+
         oe_terminal("${SHELL} -c \"make menuconfig; echo 'Pausing for 5 seconds'; sleep 5\"", '${PN} Configuration', d)
+
+        # FIXME this check can be removed when the minimum bitbake version has been bumped
+        if hasattr(bb.build, 'write_taint'):
+            try:
+                newmtime = os.path.getmtime(".config")
+            except OSError:
+                newmtime = 0
+
+            if newmtime > mtime:
+                bb.note("Configuration changed, recompile will be forced")
+                bb.build.write_taint('do_compile', d)
 }
 do_menuconfig[depends] += "ncurses-native:do_populate_sysroot"
 do_menuconfig[nostamp] = "1"
Signature · 1 line
1.7.9.5
Applied
#2 lore raw
In reply to Paul Eggleton
Quoted 11 lines · Paul Eggleton

Note: to have any effect, this change requires a patch just sent to the bitbake-devel list; without it -c menuconfig will behave as it did before.

The following change since commit 6d761ae17ddbd3d936e7fe985b40825ad62b2418:

   debian.bbclass: invoke target objdump (2012-06-18 13:20:29 +0100)

is available in the git repository at:

Quoted 9 lines

git://git.openembedded.org/openembedded-core-contrib paule/menuconfig-rebuild
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/menuconfig-rebuild

Paul Eggleton (1):
classes/cml1: ensure -c menuconfig forces a rebuild next time

  meta/classes/cml1.bbclass |   16 ++++++++++++++++
  1 file changed, 16 insertions(+)

Merged into OE-Core

Thanks
Sau!