[poky] a new problem with sstate
Tian, Kevin
kevin.tian at intel.com
Wed Nov 17 21:14:14 PST 2010
>From: Joshua Lock
>Sent: Wednesday, November 17, 2010 10:29 PM
>
>On Wed, 2010-11-17 at 21:21 +0800, Tian, Kevin wrote:
>> When looking into the problem why some prebuilts can't be reused, I've struggled with
>> another issue these days. It's more severe because the 2nd build can't even succeed
>> when prebuilt is used.
>>
>> The failure happened randomly on eglibc, eglibc-initial, and gcc-runtime. The error log
>> shows that either gcc libraries or eglibc headers are not correctly installed when building
>> those recipes. This first led me to think about potential dependency problem among
>> those recipes. However this only happens when prebuilt is used. A fresh build just
>> succeeds.
>>
>> Finally it turns out from two factors:
>>
>> o sstate.bbclass has special handling about -initial and -intermediate recipes. If
>> a complete (e.g. gcc-cross or eglibc) setscene function has been invoked already,
>> installation for those special sstate packages is skipped, while still marked as
>> accelerate-able
>
>The special casing in the sstate class was added to work around the fact
>that the toolchain bootstrap overwrites some pieces of the sysroot
>(bug#239).
>
>http://bugzilla.yoctoproject.org/show_bug.cgi?id=239
Yes, I can see the reason for that special case.
>
>If this is still not working is there anything stopping us from
>expanding the workaround Richard started in
>ecf2eb1efa145d5c8f350697ec605ea58beb9ba7 as a temporary fix until bug
>239 is fixed?
>
>http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=ecf2eb1efa145d5c8f350697ec6
>05ea58beb9ba7
>
I think that works for most case, if there's no change to libc/gcc bootstrap recipes.
If there happens to be one or several changed, the bootstrap process is actually
broken since some of them may be a null installation while marked finished. This
allows other tasks depending on them to continue but finally failed to find necessary
bits.
I'm thinking about expanding that. It'd be good to not use prebuilt for all libc/gcc
bootstrap recipes once any of them is changed. That way the normal bootstrap process
is started from scratch. However I haven't found a right way to achieve that yet. :/
Thanks
Kevin
More information about the poky
mailing list