> The file "postgres.h" (or "c.h" or "config.h", whatever is used) needs to
> be the very *first* file included by each source file. Next time you
> touch a source file, please check that this is the case.
>
> The obvious failure mode is that if config.h redefines const, volatile, or
> inline then it will cause confusion when some system headers are included
> before and some after that definition.
>
> The slightly more esoteric problem I encountered is that when you compile
> with CC='gcc -std=c99 -pedantic' on a glibc platform (i.e., "Linux") then
> you need to define _SVID_SOURCE and _BSD_SOURCE before including any
> system header in order to get the full feature set from the headers.
>
> (Unfortunately, the flex output does not observe this rule either, so we
> can't be 100% pedantic warning safe without doing surgery on those files.)
>
> On a related note, does anyone know why the on_proc_exit and on_shmem_exit
> hooks use a second argument of type `caddr_t' rather than, say, void*,
> char*, Datum, ...? This artifact is the cause of about two thirds of the
> compile errors in the pedantic setting.
That was me. caddr_t was I used for function pointers. Glad you
changed it.
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026