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: Thomas Munro <thomas.munro@enterprisedb.com>
Cc: Andrew Gierth <andrew@tao11.riddles.org.uk>,
Andres Freund <andres@anarazel.de>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
vitus@wagner.pp.ru
Date: 2018-09-04T19:48:24Z
Lists: pgsql-hackers
Thomas Munro <thomas.munro@enterprisedb.com> writes: > On Tue, Sep 4, 2018 at 9:39 AM Andrew Gierth > <andrew@tao11.riddles.org.uk> wrote: >> I also confirmed that without #define isinf(x) __builtin_isinf(x), on >> both 32bit and 64bit fbsd isinf() compiles as a function call, so the >> OP's proposed change would not be desirable. Presumably what we are looking at here is a compiler codegen bug for __builtin_isinf(). The proposed change dodges it precisely by substituting the library function instead --- at a performance penalty. I agree that this isn't a real desirable fix, and we definitely ought not cause it to happen on platforms that haven't got the bug. > I installed FreeBSD 11.2 i386 on a virtual machine. I couldn't > reproduce the problem with either the base cc (clang 6.0.0) or clang38 > (clang 3.8.1) installed via pkg. > The OP reported clang 3.8.0, so a minor version behind what I tested. I tried to reproduce the problem, without success, on a few different FreeBSD images I had laying about: FreeBSD 11.0/x86_64, clang version 3.8.0 (this confirms OP's report that x86_64 is OK) FreeBSD 10.3/ppc, gcc 4.2.1 FreeBSD 12.0-CURRENT (from around mid-May)/arm64, clang version 6.0.0 (I was testing PG HEAD, not the 11 branch, but I don't see a reason to think that'd make a difference.) I also looked for evidence of a bug of this sort in the clang bugzilla. I couldn't find anything, but it's possible that "isinf" isn't what I should have searched on. Anyway, my estimation is that this is a compiler bug that's been repaired, and it probably isn't widespread enough to justify our inserting some klugy workaround. regards, tom lane
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