[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