On 17 July 2013 23:16, Siarhei Siamashka siarhei.siamashka@gmail.com wrote:
On Wed, 17 Jul 2013 16:52:49 +0200 Christophe Lyon christophe.lyon@linaro.org wrote:
Hi,
Linaro is NOT an alternative to the Yocto project; we are collaborating with them. For instance, there are recipes to build a Yocto distribution using Linaro packages (e.g. the toolchain).
Regarding the support of armv5te, if you build your toolchain from the sources we provide, the support is included. It's also present in the binary toolchains we provide, but these ones default to generating code for armv7-a processors: you'll have to force -march=XXX or -mcpu=YYY on your command line.
Are you sure about this? You can try to:
$ echo "int main(int argc,char *argv[]) {return 0xBADF00D/argc;}" >test.c $ arm-linux-gnueabihf-gcc -march=armv5te -marm test.c $ arm-linux-gnueabihf-objdump -d a.out And then have a look at the nice __aeabi_idiv implementation which gets linked in:
00008408 <__aeabi_idiv>: 8408: 2900 cmp r1, #0 840a: f000 813e beq.w 868a <.divsi3_skip_div0_test+0x27c>
0000840e <.divsi3_skip_div0_test>: 840e: ea80 0c01 eor.w ip, r0, r1 8412: bf48 it mi 8414: 4249 negmi r1, r1 8416: 1e4a subs r2, r1, #1 8418: f000 811f beq.w 865a <.divsi3_skip_div0_test+0x24c> 841c: 0003 movs r3, r0 841e: bf48 it mi 8420: 4243 negmi r3, r0 8422: 428b cmp r3, r1 8424: f240 811e bls.w 8664 <.divsi3_skip_div0_test+0x256> 8428: 4211 tst r1, r2 842a: f000 8123 beq.w 8674 <.divsi3_skip_div0_test+0x266> 842e: fab3 f283 clz r2, r3 8432: fab1 f081 clz r0, r1 8436: eba0 0202 sub.w r2, r0, r2 843a: f1c2 021f rsb r2, r2, #31
...
Or maybe you have some plans to eventually provide multiple libgcc variants with the same binary toolchain, so that it can select the right one based on -march/-mcpu options?
Please check your a.out with arm-linux-gnueabihf-readelf -A a.out
Linaro arm-linux-gnueabihf binary toolchain does support multilib:
arm-linux-gnueabihf-gcc --print-multi-lib .; arm-linux-gnueabi;@marm@march=armv4t@mfloat-abi=soft
But the armv4t is only expected for u-boot, which does not link the c libraries in toolchain tarball (which is armv7-a).
We have no plan for full multilib support.
Thanks! -Zhenqiang