Re: configure optimization feature update

Esben Haabendal <eha@...>

On Sun, 2011-06-19 at 16:49 -0700, Khem Raj wrote:
On Sun, Jun 19, 2011 at 1:02 PM, Esben Haabendal
<eha@...> 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@...> 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:

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.


Join to automatically receive all group messages.