On Mon, 2010-04-26 at 00:42 +0400, Roman I Khimov wrote: > В сообщении от Воскресенье 25 апреля 2010 21:48:59 автор Tom Rini написал: > > Right now, with a big enough BB_NUM_THREADS we can get into a race where > > coreutils-native is installing programs and elsewhere we are in a > > do_fetch and either trying to use 'cp' or 'md5sum', and blam, we try and > > invoke the program while it's being installed (and see things like > > sh: /path/to/staging/i686-linux/usr/bin/cp: Textfile is busy). > > > > There's a few ways out of this: > > 1) Don't rely on 'cp' and 'md5sum' anymore but use python for it. > > I guess it couldn't really be done, since those could be invoked from any > shell script, right? Although it only is a concern for things before > do_configure, so there shouldn't be many scripts there.
We control (as it's in bbclasses) what's invoked in these tasks that are allowed to run before do_configure is invoked (the current choke point the world has on coreutils-native being complete). > > 2) Make an oe_cp and oe_md5sum to go with oe_sha256sum > > 3) IIRC, the big part of coreutils-native was a fully functional, > > always, 'install'. We could just copy the install we build or provide > > an install wrapper (oe_install) or so > > We've had install-native, but that was some broken dusty script that act like > a detonator - you build some package having it in DEPENDS (not many had, but > I > was lucky enough) and boom! random packages brake randomly in do_install > because of disfunctional install. True, but we could just as easily replace coreutils-native with oeinstall-native in base.bbclass. > I've proposed back then to just drop it. But there've been a concern that for > reliable builds it's better to be sure that we have known proper install and > that is provided by coreutils along with many other things, which are also > good to have in some known good state for an OS-independent build system. > > This is the way we've got to the point of having coreutils-native in all of > our builds. I think I forgot #5 5) Make coreutils-native:do_populate_sysroot (or whatever fully staged means at this point) before anything else is really allowed to go on. > Although, as I'm personally building my things on sane GNU hosts with sane > coreutils with known nice install, I've always had coreutils-native in > ASSUME_PROVIDED. Thus, not seeing any failures with usual 4 bb threads. This rarely happens with 4 threads here and is much more often at 6 or 8 threads. -- Tom Rini <[email protected]> Mentor Graphics Corporation _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
