[OE-core] Quick question about OE-core/bitbake's re-building

Joel Fernandes joelf at ti.com
Mon May 5 00:34:38 UTC 2014


On 05/04/2014 04:52 PM, Tyler Hall wrote:
> On Sun, May 4, 2014 at 4:53 PM, Joel Fernandes <joelf at ti.com
> <mailto:joelf at ti.com>> wrote:
> 
>     How does it figure out when it needs to rebuild a package?
> 
>  
> Bitbake generates hashes for every task that are based on the data that
> will be used when running the task. This includes the body of the task
> function, any variables it references, checksums of required files, and
> hashes of tasks it depends on. This data is stored for each task in
> $BUILDDIR/tmp/stamps. The task will re-run if a matching sigdata file
> does not exist in the stamps directory. You can run bitbake-dumpsig on a
> sigdata file to see what metadata changes will cause the task to rebuild.
> 
>     For example if I modify the file:
>      ../meta/recipes-core/systemd/systemd-serialgetty/serial-getty at .service
> 
>     Does it track the modification time to know it needs to rebuild
>     "systemd-serialgetty"?
> 
>     Because doing such a modification didn't cause it to rebuild.
> 

Thanks for your reply, that was helpful.

> The modification time won't trigger a rebuild since the contents hash
> the same. Changing the contents of the file should trigger a rebuild,
> though.

Makes sense. That's what I observed.

However one thing, is the updates don't happen if you revert the changes
back to what it used to be in an earlier revision.

For example if I make changes such that task hash is now X
Then I build, and its called r0.0.
Then I make some more changes such that the hash is now Y
And it becomes r0.1.

Then after some more changes, it becomes X. Now instead of rebuilding
and calling it r0.2, the rebuild doesn't happen. I wonder if this is the
right thing, or the updates should continue to roll.

-Joel



More information about the Openembedded-core mailing list