Building newlib without -mhard-float

Jeff Johnston
Thu Sep 6 21:21:00 GMT 2007

Rick Mann wrote:
> On Sep 5, 2007, at 6:31 PM, Rick Mann wrote:
>> Thanks. I'm in the middle of it now, but one thing that's not clear 
>> is: do I need to also configure and make newlib, after "make 
>> install-gcc"? Okay, I checked, and it didn't get installed.
>> Here's the question, then: do I make newlib in the same build dir as 
>> gcc, or in a separate one?
> Okay, I thought about it some more, and realized it really should be 
> built in its own directory.
> After all is said and done, I'm still getting a lame result:
> $  arm-elf-gcc --print-multi-lib
> .;
> thumb;@mthumb
> I've run out of ideas; I was better off with my non-multilib versions, 
> but I'm still stuck there WRT math support. Sigh.


   I've been looking quickly at the gcc.  I noticed that if you 
configure xscale-elf, you then have the compiler use xscale-elf.h which 
has the following in it.  Note that -mfpu=softvfp is the default.  I 
think this is what you want.  Also note the different multilibs.

/* Note - there are three possible -mfpu= arguments that can be passed to
    the assembler:

      -mfpu=softvfp   This is the default.  It indicates thats doubles are
                      stored in a format compatible with the VFP
                      specification.  This is the newer double format, 
                      the endian-ness of the doubles matches the endian-ness
                      of the memory architecture.

      -mfpu=fpa       This is when -mhard-float is specified.
                      [It is not known if any XScale's have been made with
                      hardware floating point support, but nevertheless this
                      is what happens].

      -mfpu=softfpa   This is when -msoft-float is specified.
                      This is the normal behavior of other arm 
                      which for backwards compatibility purposes default to
                      supporting the old FPA format which was always big
                      endian, regardless of the endian-ness of the memory
                      system.  */

#define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
   %{mhard-float:-mfpu=fpa} \
   %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}"

   { "mlittle-endian", "mno-thumb-interwork", "marm", "msoft-float" }

-- Jeff J.

More information about the Newlib mailing list