[PATCH] Fix PR target/6540
David S. Miller
davem@redhat.com
Thu May 2 11:10:00 GMT 2002
From: Jakub Jelinek <jakub@redhat.com>
Date: Thu, 2 May 2002 19:59:48 +0200
I couldn't find the start of "solaris2 float.h/limits.h conflict"
threads from early 1999 which would explain why exactly float_format=none
was used, but definitely using float_format=sparc instead of it on Solaris
is very wrong, since it has 128-bit long double even in 32-bit ABI.
And if float_format=sparc works on Solaris -m64, then float_format=i128
surely will (since the files are the same for 64-bit; and should work in
-m32 too).
While at it, I noticed float-sparc.h is wrong if -mlong-double-128 is used
on sparc-linux.
Heh, I was working on an independant solution.
I believe that the problem is even more deeply rooted in
the Sparc backend. Look at how many platforms get the
long double size thing work. Some specify the -mlong-double-*
options in SUBTARGET_SWITCHES, but don't define the
__LONG_DOUBLE_128__ CPP define properly. FreeBSD is one
such platform.
Once I started noticing this, I decided that the real solution
is to put all of this -mlong-double-* + -D__LONG_DOUBLE_128__
+ -D__LONG_DOUBLE_64__ machinery into sparc.h and be done with
it.
Then float-sparc.h just tests __LONG_DOUBLE_*__ macros and we
make every Sparc use float-sparc.h from your changes.
What do you guys think? I almost have the patch done.
More information about the Gcc-patches
mailing list