Re: was: bad datatypes time and timestamp - wrong gcc option
(copied to -hackers)
you were right about the wrong compiler-options: it was not the -O3 but
the -ffast-math option that made the wrong rounding (and other stuff) ;-)
I compiled a ManDrake source RPM that used the default rpmrc in
/usr/lib/rpm/rpmrc, in which the optflags are set incorrectly:... -O3 ... -ffast-math ...
But this behaviour may be found in any distribution based onto the RedHat
system, at least when utilizing the RPM-utility unchanged. My RPM is
version 3.0.3 here.
The manpage of gcc does not suggest to use the -ffast-math with any of the
-O options.
When I removed the -ffast-math option, your time and timestamp datatypes
worked perfectly.
A hot fix for the SPEC-file would be, to eliminate that option by
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e "s/-ffast-math//"`
after the %build line. On the long term there should be a discussion, if
that option is realy OK for doing all the packages...
BTW: I'm using ManDrake 7.0 and took a postgresql-7.0.2-2mdk.src.rpm from a
server and compiled it for a target i586-pc-linux-gnu on an i686.
Thanks for tracking this down. I'll look at my RPM setup for
Mandrake-7.1 to confirm the behavior, and then perhaps Lamar can
introduce an appropriate fix to the canonical spec file.
- Thomas
Import Notes
Reference msg id not found: D7CC0DC463B1D3118DB40000D11C208908F876@hdhexmbx05.ger02.heidelberg.com
Thomas Lockhart wrote:
you were right about the wrong compiler-options: it was not the -O3 but
the -ffast-math option that made the wrong rounding (and other stuff) ;-)
I compiled a ManDrake source RPM that used the default rpmrc in
/usr/lib/rpm/rpmrc, in which the optflags are set incorrectly:
... -O3 ... -ffast-math ...
But this behaviour may be found in any distribution based onto the RedHat
system, at least when utilizing the RPM-utility unchanged. My RPM is
version 3.0.3 here.
On my RedHat 6.2 buildbox, I get -02 -m486 -fno_strength_reduce (using
the very useful 'rpm --showrc|grep optflags' -- the optflags macro gets
placed in the RPM_OPT_FLAGS envvar during rpm startup) -- sounds like a
Mandrakeism.
A hot fix for the SPEC-file would be, to eliminate that option by
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e "s/-ffast-math//"`
Thanks for tracking this down. I'll look at my RPM setup for
Mandrake-7.1 to confirm the behavior, and then perhaps Lamar can
introduce an appropriate fix to the canonical spec file.
I will look into doing this, although Mandrake really should fix this,
if it is not recommended by the gcc people to combine -O stuff and
-ffast_math.
--
Lamar Owen
WGCR Internet Radio
1 Peter 4:11
Import Notes
Reference msg id not found: D7CC0DC463B1D3118DB40000D11C208908F876@hdhexmbx05.ger02.heidelberg.com