Re: Keep elog(ERROR) and ereport(ERROR) calls in the cold path
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: David Rowley <dgrowleyml@gmail.com>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Andres Freund <andres@anarazel.de>, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2020-11-24T21:04:31Z
Lists: pgsql-hackers
On 2020-Nov-24, Tom Lane wrote: > David Rowley <dgrowleyml@gmail.com> writes: > > On Wed, 25 Nov 2020 at 04:55, Tom Lane <tgl@sss.pgh.pa.us> wrote: > >> walleye's been failing since this patchset went in: > >> I have no idea what to make of that, but it looks more like a compiler bug > >> than anything else. > > > I wondered if #if !defined(__MINGW32__) && !defined(__MINGW64__) would > > be the correct fix for it... aka, just define the new > > pg_attribute_(hot|cold) macros to empty on MinGW. > > I'd make any such fix as narrow as possible (ie MINGW64 only, based on > present evidence). It'd be nice to have a compiler version upper bound > too, in the hopes that they'd fix it in future. Maybe something like > "#if defined(__MINGW64__) && defined(__GNUC__) && __GNUC__ <= 8" ? Apparently the bug was fixed days after it was reported, https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86048 but they haven't made a release containing the fix yet.
Commits
-
Stop gap fix for __attribute__((cold)) compiler bug in MinGW 8.1
- 687f61634475 14.0 landed
-
Tidy up definitions of pg_attribute_hot and pg_attribute_cold
- b0727ae99b70 14.0 landed
-
Fix unportable usage of __has_attribute
- 1fa22a43a56e 14.0 landed
-
Improve compiler code layout in elog/ereport ERROR calls
- 913ec71d682e 14.0 landed
-
Define pg_attribute_cold and pg_attribute_hot macros
- 697e1d02f53f 14.0 landed