This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: -mfloat-abi=softfp


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]