On Wed, Nov 20, 2002 at 06:48:15PM +0100, Peter Eisentraut wrote:
> Tom Lane writes:
>
> > AFAIK, all modern hardware claims compliance to the IEEE floating-point
> > arithmetic standard, so failure to print minus zero as minus zero is
> > very likely to be a software issue not hardware. That suggests strongly
> > that the issue is netbsd version (specifically libc version) and not the
> > hardware platform.
>
> I could confirm my initial suspicion: it's a *printf() library issue. The
> FreeBSD CVS log tells the tale:
>
> http://www.de.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/stdio/vfprintf.c
>
> The next FreeBSD subrelease (4.8?) should have this fixed. OpenBSD is not
> fixed. NetBSD and Darwin seem to have temporarily hidden their cvsweb in
> shame, but I would assume it's the same issue. Not sure what HP-UX is
> doing about it.
Right, the equivalent for NetBSD vfprintf.c is:
revision 1.40
date: 2001/11/28 11:58:22; author: kleink; state: Exp; lines: +4 -4
Since we're returned the sign of a floating-point number by __dtoa(),
use that to decide whether to include a minus sign in the result.
Fixes printing -0.0, and thus PR lib/3137.
NetBSD 1.5 has revision 1.32, NetBSD 1.6 has revision 1.42
Well spotted,
Patrick