On Wednesday 27 December 2000 04:08, you wrote:
> I can't seem to find the equivalent of bugzilla for Mandrake so I'm
> reporting this here with the hopes it will make it back to appropriate
> parties.

https://qa.mandrakesoft.com

>
> I'm a developer in the process of packaging Perl 5.6.0 for another
> distribution. I'm all for optimization as long as the code still passes its
> tests.  With this in mind I tried Mandrake's 7.2 IMHO aggressive i586
> optimization flags for my build of Perl 5.6.0. After a lot of debugging I
> found out that the -ffast-math flag causes Perl to fail at least 7 subtests
> of the op/cmp.t test of the Perl regression tests.
>
> I tested perl-5.600-17mdk on a Mandrake 7.2 and it fails the same tests.
>
> FYI from GCC man page:
> -ffast-math "This option allows GCC to violate some ANSI or IEEE
> rules/specifications in the interest of optimizing code for speed."
>
> This led me to wonder what else is slightly undetectably broken as a result
> of -ffast-math. Having seen this, I certainly wouldn't want it on for every
> package as it is it seems to be in Mandrake.
>
> I have forced gcc not to use fast-math in my RPM by appending a
> -fno-fast-math to the optimization flags as below. I suggest you should do
> the same and unless you can assess the damage -ffast-math is causing to
> other programs (I certainly can't) I would suggest removing it from your
> global options.
>
> %build
> [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
> sh Configure -des -Doptimize="$RPM_OPT_FLAGS -fno-fast-math" \
>
> Name        : perl                         Relocations: (not relocateable)
> Version     : 5.600                             Vendor: MandrakeSoft
> Release     : 17mdk                         Build Date: Sat Sep 30 12:25:56
> 2000Install date: Sat Nov 25 19:41:42 2000      Build Host:
> debris.mandrakesoft.com Group       : Development/Perl              Source
> RPM: perl-5.600-17mdk.src.rpmSize        : 13907113                        
> License: GPL Packager    : Pixel <[EMAIL PROTECTED]>
> Summary     : The Perl programming language.
>
> Default i586 optimization flags from MDK7.2 rpmrc:
> i586 -O3 -fomit-frame-pointer -pipe -mcpu=pentiumpro -march=i586
> -ffast-math
>
> Test process:
> cd /usr/src/RPM/BUILD/perl-5.6.0/t
> perl op/cmp.t
>
> With -ffast-math this will fail:
> not ok 7 (s <=> NaN) gives: '-1'
> not ok 21 (N/A <=> NaN) gives: '-1'
> not ok 33 (a <=> NaN) gives: '-1'
> not ok 43 (NaN <=> NaN) gives: '-1'
> not ok 45 (NaN <=> -1) gives: '-1'
> not ok 47 (NaN <=> ) gives: '-1'
> not ok 49 (NaN <=> 0) gives: '-1'
> not ok 51 (NaN <=> 1) gives: '-1'


Cooker edition compiled with gcc 2.96 does not appear to reproduce this 
problem.  7.2 does reproduce it.  The default settings in gcc 2.96 appear to 
be a bit more conservative.

Civileme

>
> Regards,
> Rob
>
> --
> ---------------------"Happiness is understanding."----------------------
> Robert Hardy                                          C.E.O. Webcon Inc.
> [EMAIL PROTECTED]      PGP Key available by finger        (613) 276-6206

Reply via email to