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/27/10 13:07, Martin Guy wrote:
On 4/27/10, ng@piments.com<ng@piments.com> wrote:
  So now  I've put
   LIBC_GLIBC_EXTRA_CFLAGS= -mfpu=maverick -mfloat-abi=softfp  -mcpu=ep9312

It's throwing ICE in glibc.:

  [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.

ICE is a bug in the GCC that you are using to build the cross-compiler - the "core compiler" - in this case, the output of your stage1 compilation. "Segmentation fault" is pretty severe :( To investigate further where it is segfaulting you can run the one specific command under gdb. I the core compiler is built using the system glibc, so it shouldn't be a bug in the glibc patches. For what it's worth, I've used the native gcc-4.3-crunch to build glibc again. natively).

Another strategy you could use is to build gcc-4.2, which runs faster,
uses less memory to compile things and produces smaller and faster
code than gcc-4.3 (yes, really!)

   warning: switch -mcpu=ep9312 conflicts with -march= switch
  I have left -mcpu -mtune empty in menuconfig giving just -march=armv4t

-march=ep9312 should be what you need, but I doubt that will fix the ICE.


M

Thanks Martin,

Uptil now I was using -march=armv4t , setting it ep9312 fails on 4.2.4


[ALL ] /back/ts/ct-ng/targets/src/gcc-4.2.4/gcc/crtstuff.c:1: warning: target CPU does not support interworking
[ALL ] Assembler messages:
[ALL ] Error: unknown architecture `ep9312'
[ALL ]
[ALL ] Error: unrecognized option -march=ep9312


man gcc (4.3.4) says:

`-march=NAME'
     This specifies the name of the target ARM architecture.  GCC uses
     this name to determine what kind of instructions it can emit when
     generating assembly code.  This option can be used in conjunction
     with or instead of the `-mcpu=' option.  Permissible names are:
     `armv2', `armv2a', `armv3', `armv3m', `armv4', `armv4t', `armv5',
     `armv5t', `armv5te', `armv6', `armv6j', `armv6t2', `armv6z',
     `armv6zk', `armv7', `armv7-a', `armv7-r', `armv7-m', `iwmmxt',
     `ep9312'.

:?
I did not try this config with 4.3.4.

Could this relate to the -march= switch message I was getting before. Is some other stage deciding this is invalid and replacing it with a null string?

Now trying your suggestion of 4.2.4

thx

--
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]