[oe] Prebuilt toolchains

Chris Conroy Chris.Conroy at hillcrestlabs.com
Wed Nov 11 20:39:50 UTC 2009


On Wed, 2009-11-11 at 10:00 -0700, Gary Thomas wrote:
> I'd like to use my own toolchains when building OpenEmbedded.
> I've tried to follow the information at:
>    http://docs.openembedded.org/usermanual/usermanual.html#commonuse_prebuilt_toolchain
> It's a bit terse and confusing, so I'm just trying to see
> what I need (I think the section tries to discuss too many
> concepts at once)
> 
> Anyway, I added these lines to my local.conf:
>    TARGET_SYS = "${TARGET_ARCH}-${TARGET_OS}"
>    ASSUME_PROVIDED += " virtual/${TARGET_PREFIX}gcc "
>    ASSUME_PROVIDED += " virtual/libc "
> 
> This led to a number of other inferences which I don't understand.
>    NOTE: selecting glibc to satisfy virtual/libintl due to PREFERRED_PROVIDERS
>    NOTE: selecting glibc to satisfy runtime libsegfault due to PREFERRED_PROVIDER_virtual/libc = glibc
>    NOTE: selecting linux-libc-headers to satisfy runtime linux-libc-headers-dev due to PREFERRED_PROVIDER_linux-libc-headers = linux-libc-headers
>    NOTE: selecting glibc to satisfy runtime glibc due to PREFERRED_PROVIDER_virtual/libc = glibc
>    NOTE: selecting gcc-cross-intermediate to satisfy virtual/powerpc-linux-gcc-intermediate due to PREFERRED_PROVIDERS
>    NOTE: selecting linux-libc-headers to satisfy linux-libc-headers due to PREFERRED_PROVIDERS
>    NOTE: selecting glibc to satisfy virtual/libiconv due to PREFERRED_PROVIDERS
>    NOTE: selecting gcc-cross to satisfy runtime libgcc due to PREFERRED_PROVIDER_virtual/powerpc-linux-gcc = gcc-cross
>    NOTE: selecting binutils-cross to satisfy virtual/powerpc-linux-binutils due to PREFERRED_PROVIDERS
>    NOTE: selecting glibc-initial to satisfy virtual/powerpc-linux-libc-initial due to PREFERRED_PROVIDERS
>    NOTE: selecting glibc to satisfy virtual/powerpc-linux-libc-for-gcc due to PREFERRED_PROVIDERS
>    NOTE: selecting gcc-cross-initial to satisfy virtual/powerpc-linux-gcc-initial due to PREFERRED_PROVIDERS
> 
> At which point, OE goes off on its merry way to build the
> internal toolchains.
> 
> What am I missing?

You may want to try using the external-toolchain recipe. Though it's
mainly used for toolchains built by OE, poky has recipes for
Codesourcery toolchains which you could certainly use as a starting
point for your toolchain.

Then in your conf file you need to set the external-toolchain as the
PREFERRED_PROVIDER for everything it provides (gcc, libc, libstdc++,
binutils, etc..). I think this is a bit cleaner than doing
ASSUME_PROVIDED because it makes the use of the external toolchain a bit
more explicit.

I guess this leads me to ask the rest of the list: should the user
manual be updated to include docs on the external-toolchain recipe?










More information about the Openembedded-devel mailing list