On 7/19/12 3:13 PM, Manuel Bessler wrote:
Hi all,

I'm using a vendor-supplied external (pre-built) toolchain in my build
(poky-denzil).
Is it possible to setup my toolchain such that it will be part of the
SDK package instead of the default {gcc,binutils}-cross-canadian?

It is possible, but the external toolchain needs to be provided via a crosssdk/cross-canadian binary. The external-csl-toolchain.bb can be used as a model for how to do this.

PREFERRED_PROVIDER and similar may also be needed to ensure you get the correct version, and not rebuilt from source versions.

I'm modeling my SDK after the meta-toolchain type SDK.

Right now when I build my image, all target code is built using my
pre-built external toolchain,
but when I 'bitbake <mysdk>', the toolchain built and distributed in
the SDK tarball is one built by bitbake.

That, in effect, makes my SDK unusable as the toolchain inside is
based on a different GCC/Binutils versions.

 From my digging around in the recipes and classes, I think if I could
somehow make my toolchain
look like it provides gcc-cross-canadian and binutils-cross-canadian,
it might work. However I'm not
quite sure what I need to set to make this happen.

I tried to add this to conf/distro/include/tcmode-external-xxx.inc in my layer:
PREFERRED_PROVIDER_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} =
"external-xxx-toolchain"
PREFERRED_PROVIDER_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} =
"external-xxx-toolchain"

For my stuff I did;

PREFERRED_PROVIDER_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "external-csl-toolchain-cross-canadian-${TRANSLATED_TARGET_ARCH}"

PREFERRED_PROVIDER_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "external-csl-toolchain-cross-canadian-${TRANSLATED_TARGET_ARCH}"

PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "external-csl-toolchain-cross-canadian-${TRANSLATED_TARGET_ARCH}"


That alone did not change anything.

Then I tried adding the following to
recipes-core/meta/external-xxx-toolchain_4.5.3.bb in my layer:
PROVIDES += " gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} "
PROVIDES += " binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} "

Within the external-cs-toolchain-cross-canadian.bb I had similar provides as 
well..

to which bitbake complained:
ERROR: Multiple .bb files are due to be built which each provide
gcc-cross-canadian-mipsel
(xxx/recipes-core/meta/external-xxx-toolchain_4.5.3.bb
xxx/meta/recipes-devtools/gcc/gcc-cross-canadian_4.6.bb).
  This usually means one provides something the other doesn't and should.
(and the same for binutils).

All I want is to dump the external toolchain tree into the SDK output.

Any clues as to what I might be missing, or am I on the wrong path?

Thanks,
Manuel

_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to