Commit 687f6163 authored by David Rowley's avatar David Rowley

Stop gap fix for __attribute__((cold)) compiler bug in MinGW 8.1

The buildfarm animal walleye, running MinGW 8.1 has been having problems
ever since 697e1d02 and 913ec71d went in.  This appears to be a bug in
assembler which was fixed in a later version.

For now, in order to get that animal running green again, let's just
define pg_attribute_cold and pg_attribute_hot to be empty macros on that
compiler.  Hopefully, we can get the support of the owner of the animal to
upgrade to a less buggy compiler and revert this at a later date.

Discussion: https://postgr.es/m/286560.1606233316@sss.pgh.pa.us
parent 7b94e999
...@@ -200,6 +200,21 @@ ...@@ -200,6 +200,21 @@
#define pg_noinline #define pg_noinline
#endif #endif
/*
* For now, just define pg_attribute_cold and pg_attribute_hot to be empty
* macros on minGW 8.1. There appears to be a compiler bug that results in
* compilation failure. At this time, we still have at least one buildfarm
* animal running that compiler, so this should make that green again. It's
* likely this compiler is not popular enough to warrant keeping this code
* around forever, so let's just remove it once the last buildfarm animal
* upgrades.
*/
#if defined(__MINGW64__) && __GNUC__ == 8 && __GNUC_MINOR__ == 1
#define pg_attribute_cold
#define pg_attribute_hot
#else
/* /*
* Marking certain functions as "hot" or "cold" can be useful to assist the * Marking certain functions as "hot" or "cold" can be useful to assist the
* compiler in arranging the assembly code in a more efficient way. * compiler in arranging the assembly code in a more efficient way.
...@@ -216,6 +231,8 @@ ...@@ -216,6 +231,8 @@
#define pg_attribute_hot #define pg_attribute_hot
#endif #endif
#endif /* defined(__MINGW64__) && __GNUC__ == 8 &&
* __GNUC_MINOR__ == 1 */
/* /*
* Mark a point as unreachable in a portable fashion. This should preferably * Mark a point as unreachable in a portable fashion. This should preferably
* be something that the compiler understands, to aid code generation. * be something that the compiler understands, to aid code generation.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment