problem with crosstool 0.28-pre28 supplied patch for gcc 3.3.[23] softfloat on ARM

Dimitry Andric dimitry@andric.com
Fri Aug 13 20:07:00 GMT 2004


On 2004-08-10 at 11:28:57 Lennert Buytenhek wrote:

> It does all seem rather confusing w.r.t. options:
> - mhard-float is hard FPA
> - msoft-float is soft FPA
> - no option specified is soft VFP

Yes.  I don't see any other way to be able to choose between the 3
alternatives.  You can of course choose another default, for example:

  -mhard-float --> hard FPA
  -msoft-float --> soft VFP
  no option    --> soft FPA

which seems reasonable, however:

  -mhard-float --> soft FPA
  -msoft-float --> soft VFP
  no option    --> hard FPA

is rather confusing. :)  As I've said in another post to this list, it
would probably be better to simply have 3 explicitly different options
for these floating point models.


> Also, the gcc 3.4.[01] default, when no options are specified, is to
> use FPA on all ELF platforms except NetBSD.  Are you sure you want to
> be changing that?

Well, maybe not, depending on which platform you are targeting.  I
think most ARM hardware out there is used without hardware FPU's,
since that keeps the cost down.  Therefore, using the fastest software
FP by default seems reasonable to me.  And you can always specify
-mhard-float if you're actually targeting a platform with FPU.


> BTW, Why are you forcing mcpu=xscale if no mcpu is specified?  This
> would seem like you're introducing a bug, no?

This is simply copied from Nicolas' original patch, here:
http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-October/006436.html

It seems to only choose -mcpu=xscale if you don't specify a -mcpu
option yourself.  I'm not sure what gcc's default is...


> The gcc/config/arm/t-linux hunk might seem submitworthy, but I don't
> know enough about gcc internals to say anything sensible about that.

In gcc 3.4.x, the ieee754-[ds]f.S files, which contain Nicolas' FP
emulation functions, have been added to gcc/config/arm.  (Previously,
they were included in the softfloat patches.)  However, the functions
they export are never included in any library!  Therefore I modified
the t-linux file to put them in libgcc, so they're linked in whenever
needed.

There also seems to be a possibility to put these in a separate
libfloat.a, but I never found out the proper way to have that
generated, either by the gcc build process or the glibc build process.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 183 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/crossgcc/attachments/20040813/dec8fc95/attachment.sig>


More information about the crossgcc mailing list