Bruce Momjian <bruce@momjian.us> writes:
> On Sat, May 19, 2018 at 01:20:47AM +0000, Stephen Frost wrote:
>> Commit da9b580 mistakenly put a system header before postgres.h (which
>> includes c.h). That can cause portability issues and broke (at least)
>> builds with older Windows compilers.
> I assume there is no way to add defined and checks to globals.c and c.h
> to cause a compile error when this happens.
Hm. You could imagine adding something like
#ifdef some-relevant-macro
#error include ordering problem, c.h must come before system headers
#endif
near the head of c.h. But I'm not sure how we'd get full coverage.
The case presumably would only occur for off-the-beaten-path headers
(this particular mistake was <sys/stat.h>), and there are lots of those.
regards, tom lane