Subject: Re: Softfloat and GCC
To: Ian Lance Taylor <ian@wasabisystems.com>
From: Ben Harris <bjh21@NetBSD.org>
List: tech-toolchain
Date: 09/16/2003 17:34:40
On 16 Sep 2003, Ian Lance Taylor wrote:
> Ben Harris <bjh21@NetBSD.org> writes:
>
> > Oops. Serves me right for not checking. In that case, something in the
> > main program used __fixunsdfsi, which uses __fixdfsi, which pulls in
> > softfloat.o from libc, which tries to redefine __fixunsdfsi, which causes
> > doom.
>
> That may be a gcc misconfiguration. libgcc is normally complete with
> respect to math operations. Normally when using soft floating point
> gcc will provide its own soft floating point routines which are then
> included in libgcc. In this case it seems that it did not.
>
> The gcc/config/sh/t-sh file does include the soft floating point
> support (fp-bit.c). I don't know which t-* files are being used here,
> though.
Oh. I hadn't known that GCC came with it's own soft float library. If
I'd known that I wouldn't have bothered integrating a new version of
SoftFloat into libc. I kind of assumed that gcc.info's comments about the
need to provide one's own floating-point implementation when using
-msoft-float on ARM were actually true.
Of course, the GCC library doesn't provide rounding-mode control or
exceptions, so it's arguable that our implementation is (temporarily)
better. Also, we still need SoftFloat for sparc64 "long double" support,
I think.
Of course, using the libgcc version would lose the "no unresolved
references in libc" property. How much does this matter?
--
Ben Harris <bjh21@NetBSD.org>
Portmaster, NetBSD/acorn26 <URL:http://www.NetBSD.org/Ports/acorn26/>