Re: Bug fix for glibc broke freebsd build in REL_11_STABLE
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Andrew Gierth <andrew@tao11.riddles.org.uk>, Victor Wagner <vitus@wagner.pp.ru>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2018-09-05T16:42:06Z
Lists: pgsql-hackers
Hi, On 2018-09-05 10:05:26 -0400, Tom Lane wrote: > Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes: > > On 05/09/2018 02:51, Andres Freund wrote: > >> My current proposal is thus to do add a check that does > >> #if defined(__clang__) && defined(__i386__) && !defined(__SSE2_MATH__) > >> something-that-fails > >> #endif > >> in an autoconf test, and have configure complain if that fails. > > > Would this not be invalidated if the bug you have filed gets fixed? 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. > Perhaps, but how would autoconf tell that? I wouldn't have any confidence > in a runtime test, as it might or might not trigger the bug depending on > all sorts of factors like -O level. > > In any case, it seems like "use -msse2 on x86" is good advice from a > performance standpoint even if it doesn't prevent a compiler bug. Indeed. > One thought is that maybe we should provide a way to override this, > in case somebody really can't or doesn't want to use -msse2, and > is willing to put up with platform-dependent float behavior. IDK, people that are capable of making that decision can just hack configure. Greetings, Andres Freund
Commits
-
Error out for clang on x86-32 without SSE2 support, no -fexcess-precision.
- 978515df2278 9.3.25 landed
- 29196e13cd70 9.4.20 landed
- dbbc98a9ef67 9.5.15 landed
- e553997e3f59 9.6.11 landed
- 1b8f09dbd352 10.6 landed
- 84f14fb78852 11.0 landed
- bd1463e348fc 12.0 landed
-
Fix 8a934d677 for libc++ and make more include order resistant.
- 1f349aa7d9a6 11.0 cited