[oe] [PATCH 0/3] Make multi-machine toolchains to co-exist.

Richard Purdie rpurdie at rpsys.net
Sun Jul 25 15:21:37 UTC 2010


On Sun, 2010-07-25 at 07:41 -0700, Khem Raj wrote:
> On Sun, Jul 25, 2010 at 5:31 AM, Koen Kooi <k.kooi at student.utwente.nl> wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > On 25-07-10 13:16, Koen Kooi wrote:
> >> On 25-07-10 10:32, Koen Kooi wrote:
> >>> On 24-07-10 23:25, Khem Raj wrote:
> >>>> On (24/07/10 22:51), Koen Kooi wrote:
> >>>>> -----BEGIN PGP SIGNED MESSAGE-----
> >>>>> Hash: SHA1
> >>>>>
> >>>>> On 24-07-10 11:32, Khem Raj wrote:
> >>>>>> Hi
> >>>>>>
> >>>>>> Following three patches are for making multi-machine toolchains co-exist with
> >>>>>> new cross staging for toolchain.
> >>>>>>
> >>>>>> It changes the toolchain triplet from TARGET_ARCH-VENDOR-OS to TARGET_SUB_ARCH-VENDOR-OS
> >>>>>>
> >>>>>> which means that a toolchain for armv7 is called armv7-oe-linux-gnueabi-*
> >>>>>> and for armv5te its called armv5te-oe-linux-gnueabi-*
> >>>>>>
> >>>>>> They can coexist in same native sysroot. The symlinks would mean that
> >>>>>> gcc will not accidently mix the assemblers or linkers.
> >>>>>>
> >>>>>> I have booted a minimal-image on qemuarm successfully. The build for
> >>>>>> beagleboard in same sysroot is underway.
> >>>>>>
> >>>>>> Please give it a shot in your environments (especially Koen's env)
> >>>>>
> >>>>> MACHINE=beagleboard bitbake nano ; MACHINE=hawkboard bitbake nano work,
> >>>>> going to try a bigger build now.
> >>
> >>>> You will need 4th patch which is attached here, for the sdk recipes.
> >>
> >>> OK, applied that as well, 'MACHINE=beagleboard bitbake console-image ;
> >>> MACHINE=hawkboard bitbake console-image' works as well.
> >>> Let's see what xbmc does :)
> >>
> >> xbmc builds, but mplayer and gstreamer-ti fail.
> >>
> >> The fix for mplayer is simple, change configure:2106 from
> >> arm|armv4t|armv5te) to arm*).
> >>
> >> The gstreamer-ti one is a bit harder to fix:
> >>
> >> | checking host system type... Invalid configuration
> >> `beagleboard-angstrom-linux-gnueabi': machine `beagleboard-angstrom' not
> >> recognized
> >> | configure: error: /bin/sh ./config.sub
> >> beagleboard-angstrom-linux-gnueabi failed
> >>
> >> That recipe is machine specific, so for TARGET_ARCH == MACHINE_ARCH we
> >> probably need to change things. Does anyone have a sample on how to do that?
> >
> > And cacao:
> >
> > | configure: error: armv7a systems are not supported at this time
> > | ERROR: Function do_configure failed
> 
> yes I was expecting that kind of problems. openssl also has similar issues.
> 
> another idea that struck me was that we could change the target triplet to drop
> TARGET_VENDOR and replace it with TARGET_SUB_ARCH and TARGET_SUBARCH
> could be anything
> we could even make it same as MACHINE_ARCH which means you will build
> toolchain per machine
> and they will live together.
> 
> then the tool names will be something like arm-v7-linux-gnueabi-*
> powerpc-e500-linux-gnu
> mips-mips2-linux etc. instead of *-angstrom-*- or *-oe-*-
> 
> or arm-beagleboad-linux-gnueabi-* etc if we go with MACHINE_ARCH
> 
> that would keep all recipe configury happy as the arch detected from
> config.guess will be what
> we had (arm, mips, mipsel powerpc etc) so no changes needed but we
> will have to drop the brand
> 
> does it sound good ? bad?

So we use the vendor part of the triplet? Its certainly an option that
should work but I'm nervous about assigning meaning into something we've
traditionally left to the distros.

The more I think about it, the more I suspect its the better way to
handle things though :/.

FWIW, I have got the other approach I mentioned working in Poky. Its
taken a few fixes to get it working right. In doing that I found a
number of areas in the toolchain that raised questions about exactly
what we're doing, and how fragile the current setup is. Symlinks in
gcc's libexec directory for the toolchain components like "as" and "ld"
are one thing I'm going to strongly recommend OE should consider.

Unfortunately I'm travelling for work next week and I'm not going to
have time to look at this until after that, much as I'd like to.

Cheers,

Richard






More information about the Openembedded-devel mailing list