[oe] Cleaning up SDK/Toolchain

Koen Kooi k.kooi at student.utwente.nl
Thu Oct 18 17:30:45 UTC 2007


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

Richard Purdie schreef:
> On Thu, 2007-10-18 at 11:39 +0200, Koen Kooi wrote:
>> Apart from the libc flaw I pointed out in another mail, the naming of the toolchains is
>> broken as well:
>>
>> angstrom-2007.9-test-20071017-arm-linux-gnueabi-toolchain.tar.bz2
>> angstrom-2007.9-test-20071017-arm-linux-uclibcgnueabi-toolchain.tar.bz2
>> angstrom-2007.9-test-20071018-powerpc-linux-toolchain.tar.bz2
>> angstrom-2007.9-test-20071018-powerpc-linux-uclibc-toolchain.tar.bz2
>>
>> There's no way to see if the arm ones are armv4t, armv5te or armv6 and the powerpc ones
>> ppc405, ppc440 or ppc603e. For compiling 'hello world' that doesn't matter, but libc6.so
>> and libgcc_s.so will contain instruction not available on other cpus of that arch (e.g.
>> clz is not in armv4t), so your binary will probably not work on your device.
>>
>> My idea is to use PACKAGE_ARCH (e.g. armv5te or ppc603e) instead of TARGET_ARCH.
>>
>> Comments/hints/ideas?
> 
> We actually have a bigger problem. Staging uses an arm directory, not an
> armv5te one so the armv5te binaries mix up with the armv4 ones etc.
> 
> This isn't a problem with images built from packages where everything
> dynamically links since the right packages are used. The moment someone
> tries to statically link an armv4 binary with armv5te in staging, game
> over though.
> 
> So both the meta-toolchain and staging need some thought (and are
> related since meta-toolchain has knowledge to rebuild bits of staging
> for use in its "shortcut an OE build by skipping the toolchain" mode.
> 
> I agreed we probably need to add in some PACKAGE_ARCHs in places but its
> yet another thing that needs some careful thought and we'll probably
> break people's existing builds. I hope to look at/think about it soon if
> nobody beats me too it...

Actually, PACKAGE_ARCH (or whatever we will call it) needs to become a
first class citizen with its own overrides, since doing things like:

conf/distro/include/angstrom.inc:39:ENABLE_BINARY_LOCALE_GENERATION_mx31ads
= "0"
conf/distro/include/angstrom.inc:40:ENABLE_BINARY_LOCALE_GENERATION_nokia800
= "0"
conf/distro/include/angstrom.inc:41:ENABLE_BINARY_LOCALE_GENERATION_omap2420h4
= "0"
conf/distro/include/angstrom.inc:42:ENABLE_BINARY_LOCALE_GENERATION_omap2430sdp
= "0"

is tedious when you actually mean _armv6[1]

regards,

Koen

Speaking of armv6: http://maemo.org/news/announcements/view/1192708879.html


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

iD8DBQFHF5hFMkyGM64RGpERAouqAJsFXog8g382K6A53UmqA70HY10/LwCgkuhd
lsvuhF+mhxiDSCzgwoQW4iQ=
=YVdl
-----END PGP SIGNATURE-----




More information about the Openembedded-devel mailing list