[poky] a new problem with sstate

Tian, Kevin kevin.tian at intel.com
Wed Nov 17 22:40:25 PST 2010


>From: Tian, Kevin
>Sent: Thursday, November 18, 2010 1:16 PM
>
>>From: Tom Rini
>>Sent: Wednesday, November 17, 2010 10:31 PM
>>
>>On 11/17/2010 07:28 AM, Joshua Lock wrote:
>>> 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
>>>
>>> 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=ecf2eb1efa145d5c8f350697e
>c6
>>05ea58beb9ba7
>>
>>With old style packaged-staging we workaround this by doing:
>>
>># We want to be certain that the scene is set for us only after it's set for
>># our dependencies, to avoid problems with pstage package install order.
>>do_setscene[deptask] = "do_setscene"
>>
>>Can something similar be done for the sstate way of the world?
>>
>
>Good to know that. I need to look into the detail to understand whether it
>works for the purpose here. :-)
>

I think this would work. With the dependency considered, then the sstate setscene
tasks become sorted. And then we could add a check to see whether previous 
libc/gcc bootstrap stages succeed on sstate installation. If any fails due to rebuild 
required, then later stages are not marked accelerable which will be rebuilt too.

However my desktop was powered down unexpectedly last night, which triggers
other issues in sstate whitelist handling which makes whole prebuilt not usable
any more after reboot. I'll need to fix that first and then try your suggestion later.

Thanks
Kevin



More information about the poky mailing list