-mfloat-abi=softfp

ng@piments.com ng@piments.com
Tue Apr 27 10:13:00 GMT 2010


On 04/19/10 11:51, Martin Guy wrote:
> On 4/19/10, ng@piments.com<ng@piments.com>  wrote:
>> On 04/18/10 20:58, Martin Guy wrote:
>>> On 4/18/10, ng@piments.com<ng@piments.com>   wrote:
>>>>   I am experimenting with building a toolchain with maverick enabled
>> based on
>>>> patching gcc according to Martin Guy's patch set.
>>>> http://martinwguy.co.uk/martin/crunch/
>>>>
>>>>   He suggests using -mfpu=maverick -mfloat-abi=softfp
>>> probably be called LIBCFLAGS or something like that;
>>
>>    CT_LIBC_GLIBC_EXTRA_CFLAGS:
>>    Extra target CFLAGS to use when building.
>>
>>   I've added the following to the latter option only :
>>   -mfpu=maverick -mfloat-abi=softfp
>>
>>   Does that look like the correct place to put this?
>
> That sounds like the one. There must also be -mcpu=ep9312, otherwise
> the assembler fails to recognize the maverick asm instructions, even
> though it is told -mfpu=maverick.
>
> I tried building native glibc to get faster sin/cos etc but found that
> it went into an infinite loop on certain values of sin(). However,
> that was with an unmodified glibc source.
> There are patches to put Maverick hacks into glibc, to do with
> endianness, rounding modes, the FPU control word and more.
>
> One is large: martinwguy.co.uk/crunch/glibc-crunch.patch
> Another is very small and looks half-finished but may be worth investigating
> martinwguy.co.uk/crunch/glibc-crunch2.patch
>
> If you have any joy with these let me know.
>
> Good luck!
>
>     M
>
Thanks Martin.

I'm having another stab at this . I've applied the two patches you 
suggest on your site.

I have built a 2.6.32.3 , non-crunch config that will create a toolchain 
capable of building a kernel .

So now  I've put
  LIBC_GLIBC_EXTRA_CFLAGS= -mfpu=maverick -mfloat-abi=softfp  -mcpu=ep9312

and selected hardware FP instructions.


It's throwing ICE in glibc.:


ux-gnueabi/build/gcc-core-shared/lib/gcc/arm-maverick-linux-gnueabi/4.3.4/include 
-isystem 
/back/ts/ct-ng/targets/arm-maverick-linux-gnueabi/build/gcc-core-shared/lib/gcc/arm-maverick-linux-gnueabi/4.3.4/include-fixed 
-isystem 
/back/ts/ct-ng/x-tools/arm-maverick-linux-gnueabi/arm-maverick-linux-gnueabi//sys-root/usr/include 
-D_LIBC_REENTRANT -include ../include/libc-symbols.h  -DPIC -DSHARED 
   -DNOT_IN_libc -o 
/back/ts/ct-ng/targets/arm-maverick-linux-gnueabi/build/build-libc/iconvdata/ibm420.os 
-MD -MP -MF 
/back/ts/ct-ng/targets/arm-maverick-linux-gnueabi/build/build-libc/iconvdata/ibm420.os.dt 
-MT 
/back/ts/ct-ng/targets/arm-maverick-linux-gnueabi/build/build-libc/iconvdata/ibm420.os
[ALL  ]    ibm420.c:1: warning: switch -mcpu=ep9312 conflicts with 
-march= switch
[ALL  ]    ../iconv/skeleton.c: In function 'gconv':
[ERROR]    ../iconv/skeleton.c:801: internal compiler error: 
Segmentation fault
[ALL  ]    Please submit a full bug report,
[ALL  ]    with preprocessed source if appropriate.



I ran ct-ng libc and it failed at the same point so that seems to rule 
out a hardware glitch.


I'm still uncertain about the -march warnings though Yann says to 
"forget" it.

  warning: switch -mcpu=ep9312 conflicts with -march= switch

I have left -mcpu -mtune empty in menuconfig giving just -march=armv4t

I was under the impression that maverick crunch issues were now resolved 
(at least within the bounds of the c++ caveats). Where am I going wrong?


best regards.


--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list