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: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Andres Freund <andres@anarazel.de>, Victor Wagner <vitus@wagner.pp.ru>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2018-09-05T00:47:52Z
Lists: pgsql-hackers
>>>>> "Tom" == Tom Lane <tgl@sss.pgh.pa.us> writes:

 >> I kinda wonder if we should add -mno-x87 or such in configure when
 >> we detect clang, obviously it doesn't deal correctly with this.

 Tom> Seems worth looking into, but what happens if someone tries to
 Tom> compile for x87 hardware? Or do we care anymore?

Already discussed this one on IRC with Andres, but to put this on record
for future reference: we can't use -mno-x87 on 32bit intel, even with an
-march= option with an SSE2 capable CPU, because the 32-bit ABI requires
floats to be returned in the x87 registers and breaking that either
results in silently wrong results or in clang dying with "fatal error:
error in backend: X87 register return with X87 disabled" or similar.

-- 
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.