Re: Bug fix for glibc broke freebsd build in REL_11_STABLE

Andrew Gierth <andrew@tao11.riddles.org.uk>

From: Andrew Gierth <andrew@tao11.riddles.org.uk>
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: Andres Freund <andres@anarazel.de>, Tom Lane <tgl@sss.pgh.pa.us>, Victor Wagner <vitus@wagner.pp.ru>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2018-09-05T19:05:31Z
Lists: pgsql-hackers
>>>>> "Peter" == Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes:

 > On 05/09/2018 18:42, Andres Freund wrote:
 >> Realistically we're going to be running into old versions of clang
 >> for a long time. And the importance of running i386 without SSE2
 >> surely isn't increasing. So I don't really see an urgent need to do
 >> anything about it. And if it gets fixed, and we care, we can just
 >> add a clang version check to the test.

 Peter> Another option perhaps is to let this be and accept it as
 Peter> alternative floating point behavior. We already have some of
 Peter> those.

If it was only a matter of error handling, then the best fix would
likely to be just avoiding __builtin_isinf if (clang AND i386 AND not
sse2).

The problem is that if we're relying on -fexcess-precision=standard
semantics in places besides infinity checks, then we won't get those
semantics on clang/i386/no-sse2 since it has no comparable option. (What
are we doing about compilers for x86-32 other than clang and gcc?)

-- 
Andrew (irc:RhodiumToad)


Commits

  1. Error out for clang on x86-32 without SSE2 support, no -fexcess-precision.

  2. Fix 8a934d677 for libc++ and make more include order resistant.