[oe] Bitbake command to clean dependees ?

Paul Eggleton paul.eggleton at linux.intel.com
Mon Jan 20 15:34:00 UTC 2014


Hi Jacques,

On Monday 20 January 2014 15:57:39 Jacques Guillou wrote:
> By default (at least with Yocto), it seems like forcing the rebuild of a
> specific package (via "bitbake -c cleanall MyPackage") does not mark
> dependees as "to be rebuilt", which is a problem for me. Is there a way to
> change that behavior ? Maybe there is a specific command or parameters to
> be passed to bitbake so that performing a "cleanall" on a given package
> also performs a "cleanall" on all dependees ?

OpenEmbedded uses signatures for each task (derived from the task's 
dependencies, both in terms of variable values and other tasks) to determine 
whether tasks need re-executing; so, for example if you changed SRC_URI in a 
recipe then the system knows that do_fetch depends upon the value of SRC_URI, 
so the signature of do_fetch changes and it will re-execute followed by items 
it depends upon such as do_unpack, do_patch etc. for the same recipe. Just 
forcing a recipe to rebuild by cleaning it with -c cleanall and then building 
it again doesn't change any of its task signatures, so BitBake will assume no 
dependees need rebuilding.

The correct way to force a task and all of its dependencies to re-execute is 
to use bitbake -c <command> -f or bitbake -C <command>, where <command> is the 
task name without the do_ prefix. However, under most circumstances the build 
system is already capable of determining itself when tasks need re-executing, 
e.g. if you change a variable value or edit a local file mentioned in SRC_URI. 
The question is why do you want to do this forcing, i.e. what change(s) have 
you made that the build system otherwise would not be picking up?

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the Openembedded-devel mailing list