[yocto] configure optimization feature update

Esben Haabendal eha at dev.doredevelopment.dk
Sun Jun 19 21:53:37 PDT 2011


On Sun, 2011-06-19 at 16:49 -0700, Khem Raj wrote:
> On Sun, Jun 19, 2011 at 1:02 PM, Esben Haabendal
> <eha at dev.doredevelopment.dk> wrote:
> > On Wed, 2011-06-15 at 18:28 -0700, Khem Raj wrote:
> >> On Wed, Jun 15, 2011 at 5:57 PM, Xu, Dongxiao <dongxiao.xu at intel.com> wrote:
> >> > Hi Richard,
> >> >
> >> > Recently I was doing the "configure optimization" feature and collecting data for it.
> >> >
> >> > The main logic of this feature is straight forward:
> >> >
> >> > 1. Use the diff file as autoreconf cache. (I use command: "diff -ruN SOURCE-ORIG SOURCE", here "SOURCE-ORIG" is the source directory before running autoreconf, while "SOURCE" is the directory after running autoreconf).
> >> > 2. Add SRC_URI checksum for all patches of the source code.
> >> > 3. Tag each autoreconf cache file with ${PN} and the SRC_URI checksum of source code and all patches.
> >> > 4. If the currently SRC_URI checksum matches the cached checksum, then we can patch the cache instead of running "autoreconf" stage.
> >> >
> >>
> >> The autoconf'ing is sort of arbitrary at the moment. Depending on what
> >> is staged the results may vary.
> >
> > Which can be properly fixed by using per-recipe (per-workdir) staging.
> >
> 
>  you seem to be stuck in this tight while(1) loop
>  per recipe staging is not panacea

Well, panacea is a very strong work.  But per recipe staging does
improve build reproducability and reliability quite a bit.  As for what
it is not, I think you might want to try it before speaking to strongly
against it.

>  Do you have some prototypes ?

Yes. OE-lite: http://oe-lite.org

And it works so well, that I cannot understand why OE do not have a plan
for how to achieve the same.  I hope you are able to accept this
pointers to when per-recipe staging would help you in a positive manner.
But if OE community and YP as a whole would rather not hear anymore
about it, just say so.

> where you can control what staging is presented
> and its like beaning coffee when it comes to autoconf options.

I am not sure about the coffee part, but as it specifically creates a
staging dir in each workdir, autoconf results is not influenced by
anything else than the recipe meta-data and it's dependencies.  There is
no shared "state" between recipes/builds.

/Esben




More information about the yocto mailing list