Patchwork [bitbake-devel] build.py: avoid deleting taint files when writing stamps

login
register
mail settings
Submitter Paul Eggleton
Date Feb. 21, 2013, 3:23 p.m.
Message ID <1361460215-30292-1-git-send-email-paul.eggleton@linux.intel.com>
Download mbox | patch
Permalink /patch/44979/
State Accepted
Commit e6db0ee31178d4386802e720d75303ec7dc21519
Headers show

Comments

Paul Eggleton - Feb. 21, 2013, 3:23 p.m.
The stamp cleaning process that occurs before writing out new stamps for
a task was deleting taint files as well. This resulted in tasks that
were forcibly re-executed using the -f or -C command line options to
have their previous output restored from shared state when called upon a
second time, because the taint value was no longer incorporated into the
task signature and thus it was reverting to its previous value. This
also affected the kernel menuconfig command in OE-Core.

Note that the taint file *is* still deleted when doing -c clean, which
is the desired behaviour.

Fixes [YOCTO #3919].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 lib/bb/build.py |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
Pr Pe - Feb. 21, 2013, 11:55 p.m.
I have an image recipe (appending to core-image-minimal) that builds
components specific to my project and I get a bzImage and a
core-image-minimal.iso out of it. I want to add some bootloader code to be
built as a separate entity  like bzImage and not as part of the
core-image-minimal.iso. Is there a way to do this in yocto?

Thanks,
Prana

Patch

diff --git a/lib/bb/build.py b/lib/bb/build.py
index 5f5a007..d91ff53 100644
--- a/lib/bb/build.py
+++ b/lib/bb/build.py
@@ -519,10 +519,13 @@  def make_stamp(task, d, file_name = None):
     """
     cleanmask = stamp_cleanmask_internal(task, d, file_name)
     for mask in cleanmask:
-        # Preserve sigdata files in the stamps directory
         for name in glob.glob(mask):
+            # Preserve sigdata files in the stamps directory
             if "sigdata" in name:
                 continue
+            # Preserve taint files in the stamps directory
+            if name.endswith('.taint'):
+                continue
             os.unlink(name)
     
     stamp = stamp_internal(task, d, file_name)