[OE-core] OE gcc-cross with builtin sysroot, BUG?

Richard Purdie richard.purdie at linuxfoundation.org
Wed Sep 11 12:03:34 UTC 2013


On Wed, 2013-09-11 at 12:33 +0100, Tomas Frydrych wrote:
> Hi,
> 
> On 11/09/13 11:29, Nicolas Dechesne wrote:
> > To me the problem is that gcc-cross 'embedds' some $MACHINE data in its
> > package, but it is not marked as 'machine specific, but arch specific.
> >  So several machines will end up sharing the same gcc-cross package.
> 
> The cross compiler should not be machine specific, that makes no sense.
> It seems to me that your problem comes entirely from the introduction of
> the machine element into the location of the *architecture* sysroot,
> which is not how the OE system is designed to work -- if your sysroot
> (i.e., the tmp dir) is in different place for different builds, then
> they are entirely separate builds, you should not share sstate between
> them. If you want to share the sstate, you need to share the sysroot.

Nearly, but not quite. The sstate is designed to be able to relocate to
any tmpdir. We play with the RPATHs and other things to ensure this
works. In the gcc-cross case, we need to pass in the option to the right
sysroot but we do that. If you stop passing in the right options, you
might get lucky or you might not...

> But it might be worth having some sort of sanity checker to catch this
> kind of misconfiguration.

Poisoning the defaults for gcc-cross would seem to be the best way of
avoiding confusion.

Cheers,

Richard




More information about the Openembedded-core mailing list