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


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: Building newlib without -mhard-float


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.



Rick,


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, whereby
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 configurations,
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}}"

#ifndef MULTILIB_DEFAULTS
#define MULTILIB_DEFAULTS \
  { "mlittle-endian", "mno-thumb-interwork", "marm", "msoft-float" }
#endif

-- Jeff J.


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