[oe] Packaged-staging and RPATH with native/cross/sdk

Richard Purdie rpurdie at rpsys.net
Fri Jul 31 14:50:12 UTC 2009


On Thu, 2009-07-30 at 17:34 -0400, Chris Conroy wrote:
> I'm trying to use packaged-staging to set up a sane prebuilt toolchain
> environment to share with other developers. I view packaged-staging as a
> promising route of creating a "Stage 3" version of OE (to use some
> Gentoo parlance). While building the toolchain isn't all that painful,
> even on a decent system it can add 1-2 hours to the build process, and
> every individual developer needs to redo the toolchain and base
> libraries for every feature branch. This is all needlessly wasted time
> since they're all ultimately building the same things if on the same
> arch.
> 
> Packaged-staging seems to give me everything we need in order to
> accomplish this except for the way RPATH is handled. This is a known
> issue which is worked around in packaged-staging with the following
> snippet:
> 
>     # These classes encode staging paths into the binary data so can
> only be
>     # reused if the path doesn't change/
>     if bb.data.inherits_class('native', d) or
> bb.data.inherits_class('cross', d) or bb.data.inherits_class('sdk', d):
>         path = bb.data.getVar('PSTAGE_PKGPATH', d, 1)
>         path = path + bb.data.getVar('TMPDIR', d, 1).replace('/', '-')
>         bb.data.setVar('PSTAGE_PKGPATH', path, d)

Not meaning to sound negative but I think you'll hit some interesting
edge cases and this is why packaged staging currently works as above.

You do have one other option which is an external toolchain. The idea
here is that you have OE build an SDK to install into
say /usr/local/OE-toolchain-foobar, then ask your users to install this
and point OE at the toolchain in that folder. It will still build some
-native packages but you get a big speedup as the toolchain is the heavy
part.

Also, I think the -cross packages could be made relocatable quite
easily, particularly with sysroot and its the -native ones which are
hard. If the -cross packages were fixed, a large chunk of your build
time also goes away.

There are plenty of options but they all need a little bit of time
investment unfortunately.

Cheers,

Richard





More information about the Openembedded-devel mailing list