]> granicus.if.org Git - postgresql/commitdiff
Work around stdbool problem in dfmgr.c.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 9 Sep 2018 16:41:27 +0000 (12:41 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 9 Sep 2018 16:41:27 +0000 (12:41 -0400)
Commit 842cb9fa6 refactored things so that dfmgr.c includes <dlfcn.h>,
which before that had only been directly included in platform-specific
stub files.  It turns out that on macOS, <dlfcn.h> includes <stdbool.h>,
and that causes problems on platforms where _Bool is not char-sized ...
which happens to include the PPC versions of macOS.  Work around it
much as we have in plperl.h, by #undef'ing bool after including the
problematic file, but only if we're not using stdbool-style booleans.

Discussion: https://postgr.es/m/E1fxqjl-0003YS-NS@gemulon.postgresql.org

src/backend/utils/fmgr/dfmgr.c

index c2a257258deefa2f6b88bf0a017a1443be16a1a5..4a5cc7cfc7f53a77bddba96a8a5c04cfd08f71aa 100644 (file)
 
 #ifdef HAVE_DLOPEN
 #include <dlfcn.h>
+
+/*
+ * On macOS, <dlfcn.h> insists on including <stdbool.h>.  If we're not
+ * using stdbool, undef bool to undo the damage.
+ */
+#ifndef USE_STDBOOL
+#ifdef bool
+#undef bool
+#endif
 #endif
+#endif                                                 /* HAVE_DLOPEN */
 
 #include "fmgr.h"
 #include "lib/stringinfo.h"