aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas Munro <tmunro@postgresql.org>2024-12-05 14:27:35 +1300
committerThomas Munro <tmunro@postgresql.org>2024-12-05 14:31:39 +1300
commit71cb352904c1833fe067d6f191269710fe2ca06f (patch)
tree907a0e757c01a7c216fb072b772eee62ea6abc92 /src
parent76fd342496612c8432ef8f6c71794c935497d3c9 (diff)
downloadpostgresql-71cb352904c1833fe067d6f191269710fe2ca06f.tar.gz
postgresql-71cb352904c1833fe067d6f191269710fe2ca06f.zip
Fix header inclusion order in c.h.
Commit 962da900a added #include <stdint.h> to postgres_ext.h, which broke c.h's header ordering rule. The system headers on some systems would then lock down off_t's size in private macros, before they'd had a chance to see our definition of _FILE_OFFSET_BITS (and presumably other things). This was picked up by perl's ABI compatibility checks on some 32 bit systems in the build farm. Move #include "postgres_ext.h" down below the system header section, and make the comments clearer (thanks to Tom for the new wording). Diagnosed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/2397643.1733347237%40sss.pgh.pa.us
Diffstat (limited to 'src')
-rw-r--r--src/include/c.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/include/c.h b/src/include/c.h
index 734626e75a8..13bb39fdef3 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -46,11 +46,14 @@
#ifndef C_H
#define C_H
-#include "postgres_ext.h"
-
+/*
+ * These headers must be included before any system headers, because on some
+ * platforms they affect the behavior of the system headers (for example, by
+ * defining _FILE_OFFSET_BITS).
+ */
#include "pg_config.h"
#include "pg_config_manual.h" /* must be after pg_config.h */
-#include "pg_config_os.h" /* must be before any system header files */
+#include "pg_config_os.h" /* config from include/port/PORTNAME.h */
/* System header files that should be available everywhere in Postgres */
#include <inttypes.h>
@@ -76,6 +79,9 @@
#include <libintl.h>
#endif
+ /* Pull in fundamental symbols that we also expose to applications */
+#include "postgres_ext.h"
+
/* Define before including zlib.h to add const decorations to zlib API. */
#ifdef HAVE_LIBZ
#define ZLIB_CONST