mingw32 floating point diff

From: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: mingw32 floating point diff
Date: 2019-08-22 12:49:33
Message-ID: 18e57de7-3b46-ecdb-a2f4-d7506397c93e@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2019-08-20 14:59, Peter Eisentraut wrote:
> Running the regression tests on mingw32, I get the following diff in
> circle.out:
>
> @@ -111,8 +111,8 @@
> WHERE (c1.f1 < c2.f1) AND ((c1.f1 <-> c2.f1) > 0)
> ORDER BY distance, area(c1.f1), area(c2.f1);
> five | one | two | distance
> -------+----------------+----------------+------------------
> - | <(3,5),0> | <(1,2),3> | 0.60555127546399
> +------+----------------+----------------+-------------------
> + | <(3,5),0> | <(1,2),3> | 0.605551275463989
> | <(3,5),0> | <(5,1),3> | 1.47213595499958
> | <(100,200),10> | <(100,1),115> | 74
> | <(100,200),10> | <(1,2),100> | 111.370729772479
> 
> I only get this on master/PG12, but not on PG11, so I suspect that the
> new floating-point output routines could be the root of the issue.
>
> This happens only with the 32-bit build (mingw32), but not with a 64-bit
> build (mingw64).

OK, the problem isn't the new output routines. The result of the
computations is actually different. The test itself is new in PG12.

The difference in output is due to the mingw32 target using -mfpmath=387
by default. If you build with -mfpmath=sse -msee, the tests pass again.

Do we care to do anything about this? Pick slightly different test data
perhaps?

--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Paul Guo 2019-08-22 13:13:20 Re: standby recovery fails (tablespace related) (tentative patch and discussion)
Previous Message Kyotaro Horiguchi 2019-08-22 12:06:06 Re: [HACKERS] WAL logging problem in 9.4.3?