This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/30370] [regression] Build failure in libgcc2 powitf2 with ICE in gen_reg_rtx
- From: "joseph at codesourcery dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 4 Jan 2007 20:34:02 -0000
- Subject: [Bug target/30370] [regression] Build failure in libgcc2 powitf2 with ICE in gen_reg_rtx
- References: <bug-30370-12574@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from joseph at codesourcery dot com 2007-01-04 20:34 -------
Subject: Re: New: [regression] Build failure in libgcc2
powitf2 with ICE in gen_reg_rtx
On Thu, 4 Jan 2007, rask at sygehus dot dk wrote:
> -isystem ./include -specs=ldblspecs -g -DIN_LIBGCC2
There's your problem: -specs=ldblspecs should not be used for this target,
where did it come from?
-specs=ldblspecs is a hack formerly used to disable 128-bit long double
for soft float but enable it for hard float when building libgcc. Ever
since it was added, building libgcc for E500 GNU/Linux has been broken
because -mlong-double-128 doesn't work there without my patch, so
resulting in undefined references in libgcc_s, so meaning that it was
necessary to disable -mlong-double-128 for E500 as well. However,
-spec=ldblspecs should never have been used on EABI, only on GNU/Linux;
EABI doesn't build the darwin-ldouble.c support file needed. With
toplevel libgcc, -specs=ldblspecs is no more; instead
libgcc/config/rs6000/t-ldbl128 adds -mlong-double-128 more directly for
hard float (with the same breakage for E500), but again only for certain
targets not including EABI.
To have long double actually work for E500 you'll need my patch
<http://gcc.gnu.org/ml/gcc-patches/2006-12/msg01388.html>.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30370