[oe] The coreutils-native race...
Tom Rini
tom_rini at mentor.com
Sun Apr 25 21:12:05 UTC 2010
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 <tom_rini at mentor.com>
Mentor Graphics Corporation
More information about the Openembedded-devel
mailing list