[oe] Usage of meta recipe external-toolchain-csl

Koen Kooi k.kooi at student.utwente.nl
Fri Apr 30 19:17:21 UTC 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 30-04-10 21:01, Jerry Jacobs wrote:
> On Fri, Apr 30, 2010 at 7:58 PM, Denys Dmytriyenko <denis at denix.org> wrote:
>>
>> On Fri, Apr 30, 2010 at 09:53:06AM -0700, Tom Rini wrote:
>>> On Fri, 2010-04-30 at 15:34 +0200, Jerry Jacobs wrote:
>>>> Dear all,
>>>>
>>>> I'm very new to openembedded and already have a clear view how it is
>>>> structured. My embedded board mini2440 is already in git and want to create
>>>> my own distro.
>>>> The problem where I bump against is how to use the Codesourcery external
>>>> toolchain for my target. I know there is the file in recipes/meta/
>>>> external-toolchain-csl.bb
>>>> but it not clear how to use it.
>>>
>>> There's 2 ways.  One way is, in local.conf:
>>> ### CSL public ARM does <arch>-none-<os>, so fill in the -none
>>> TARGET_VENDOR = "-none"
>>> ### Bring in external-toolchain-csl.bb
>>> TOOLCHAIN_BRAND = "csl"
>>> ### Where the CSL version is installed.
>>> TOOLCHAIN_PATH = "/full/path/to/arm-2009q3"
>>> ### Where inside the CSL install the target libraries exist.
>>> TOOLCHAIN_SYSPATH = "${TOOLCHAIN_PATH}/arm-none-linux-gnueabi"
>>> ### Add tools to the PATH automatically.
>>> PATH_prepend = "${TOOLCHAIN_PATH}/bin:"
>>> require conf/distro/include/toolchain-external.inc
>>>
>>> The other way has a few less variables in local.conf but assumes PATH is
>>> already updated.  Denys will reply shortly with that, I imagine.
>>
>> The only difference I have from Tom's setup is I expect the CSL toolchain
>> being already in the PATH variable:
>>
>> export PATH=/full/path/to/arm-2009q1/bin:$PATH
>>
>> And then set the other several BitBake variables accordingly (in local.conf
>> and toolchain-csl.conf):
>>
>> TARGET_VENDOR = "-none"
>> # no need to include/require toolchain-external.inc, as TOOLCHAIN_TYPE does it
>> TOOLCHAIN_TYPE = "external"
>> TOOLCHAIN_BRAND = "csl"
>>
>> [There I also set CPPFLAGS and LDFLAGS to point to CSL directly, but it's not
>> required as necessary files are staged by the recipe these days.]
>>
>> The "black magic" in the local.conf is basically a Python code to set
>> TOOLCHAIN_PATH and TOOLCHAIN_SYSPATH based on the user's PATH:
>>
>> TOOLCHAIN_PATH = "${@code-to-extract-csl-path-from-PATH}"
>> TOOLCHAIN_SYSPATH = ${TOOLCHAIN_PATH}/${TARGET_SYS}
>>
>> So, with my setup, no modifications to local.conf are required, as long as CSL
>> is in your PATH. With Tom's setup, users would need to add the CSL path to
>> local.conf.
>>
>> Hope this helps.
>>
>> --
>> Denys
> 
> This clears things up, bit still its not sufficient to get it working.
> 
> The DISTRO seems to overwrite the TOOLCHAIN rules. And this while I
> set the TOOLCHAIN variables in local.conf

DISTRO=micro overwrites the rules, DISTRO=angstrom-2008.1 doesn't.

regards,

Koen
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iD8DBQFL2yzBMkyGM64RGpERAvKlAJ4745jP9G7hJDuUQuru8Xav9d4JFACglCKR
tdktixAjXdjbh9wqGrxgXc8=
=1vNF
-----END PGP SIGNATURE-----





More information about the Openembedded-devel mailing list