Re: Bug fix for glibc broke freebsd build in REL_11_STABLE

Tom Lane <tgl@sss.pgh.pa.us>

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

Well, the bigger problem is that we don't really know exactly where
nonstandard precision semantics might cause visible behavior changes.
It's just about a dead certainty, IMO, that there are some other
places we don't know about because the regression tests don't expose
them; or that future code rearrangements might create new problems.

Given that (if I understand Andres correctly) -fexcess-precision=standard
behavior is required by C99, it's hard to get excited about expending
a whole lot of work here.  I'm fine with adding some compiler options
or telling the user to do so, but I don't think we should do anything
much beyond that.

			regards, tom lane


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.