[poky] poky-image-sato-sdk failed at do_rootfs

Richard Purdie richard.purdie at linuxfoundation.org
Mon Jan 31 08:40:09 PST 2011


On Mon, 2011-01-31 at 23:24 +0800, Lu, Lianhao wrote:
> Lu, Lianhao wrote on 2011-01-30:
> > Tian, Kevin wrote on 2011-01-30:
> > Here is what I found using the master with the latest commit 
> > ffd12fc476d6061ba1e019a1e789cf1a2d3c82e6.
> > 
> > 1. set PACKAGE_CLASSES to "package_rpm package_ipk" and target machine 
> > to "qemumips" in conf/local.conf 2. bitbake poky-image-minimal from 
> > scratch, then bitbake meta-toolchain incrementally. Both got built successfully.
> > 3. set PACKAGE_CLASSES to "package_ipk package_rpm"
> > 4. bitbake poky-image-minimal incrementally, and it succeeded.
> > 5. bitbake meta-toolchain incrementally, it failed complaining about 
> > unsatisfied dependencies to eglibc during opkg installation. See 
> > attached file "log.do_populate_sdk" for details. This failure is then reproducible every time.
> > 6. set PACKAGE_CLASSES back to "package_rpm package_ipk"
> > 7. bitbake poky-image-minimal incrementally, it failed complaining 
> > about unsatisfied dependencies to eglibc during rpm installation. See 
> > attached file "log.do_rootfs" for details. This failure is then reproducible every time.
> > 
> 
> Just as Richard said, we've confirmed that this issue was caused by a
> race problem. We saw this issue because the libgcc's
> do_package_write_xxx task got executed before the eglibc's do_pacakge
> task finished. This problem might be there for some time, but somehow
> it was not exposed until the recent commit of adding a non stamp task
> do_populate_lic.(see the email chain named after "summary about recent
> do_populate_sdk failures" for details).  We should add dependency so
> that the task package_write_xxx of libgcc and libstdc++ is dependent
> upon "virtual/libc:do_package". 
> 
> Is there any package other than libgcc and gcc-runtime have such race
> problem with libc? I think many packages are implicitly dependent on
> virtual/libc, how those packages do_package_write_xxx's dependency
> upon libc's do_package get assured?

debian.bbclass ensures that things don't package until all a package's
dependencies have packaged:

do_package_write_ipk[rdeptask] = "do_package"
do_package_write_deb[rdeptask] = "do_package"
do_package_write_tar[rdeptask] = "do_package"
do_package_write_rpm[rdeptask] = "do_package"

This doesn't work in the special case of libgcc and libc since the cross
compiler bootstrap process confuses the dependency issues a lot. We need
to inject some manual dependencies at that point. We could probably even
make it RDEPENDS on libc but at this point I'm going to manually create
these dependencies to be safe and make the code clearer:

http://git.pokylinux.org/cgit.cgi/poky/commit/?id=21f2dae46b481dbf34f6874ae814dcd23fc86d54

Cheers,

Richard




More information about the poky mailing list