headerscheck: Avoid mutual inclusion of pg_config.h and c.h - Mailing list pgsql-hackers

From Peter Eisentraut
Subject headerscheck: Avoid mutual inclusion of pg_config.h and c.h
Date
Msg-id 579116be-5016-4dbc-aed0-c06f8d9f5bbb@eisentraut.org
Whole thread Raw
List pgsql-hackers
Headers that c.h includes early should not have another header included 
before them in the headerscheck test file, especially not c.h.

A particular instance of a problem is that pg_config.h defines some 
symbols that c.h later undefines in some cases, such as in the code 
added by commit cd083b54bd67, but there were also some before that. 
This only works correctly if pg_config.h is included first.

This problem can currently be observed on CI.

pg_config_manual.h and pg_config_os.h are closely related to pg_config.h 
and should be treated the same way.

postgres_ext.h is meant to be usable standalone, so testing it with c.h 
included first defeats the point.

c.h also includes port.h, but this patch leaves that alone, since port.h 
does need some of c.h to be processed first.  (But because of header 
guards, testing port.h separately is probably ineffective.)
Attachment

pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Bug in pg_get_aios()
Next
From: Jelte Fennema-Nio
Date:
Subject: Re: Read-only connection mode for AI workflows.