Peter Eisentraut <peter.eisentr...@2ndquadrant.com> writes: > On 07/09/2018 16:19, Tom Lane wrote: >> Somehow or other, the changes you made in dfmgr.c's #include lines >> have made it so that find_rendezvous_variable's local "bool found" >> variable is actually of type _Bool (which is word-wide on these >> machines).
> Ah because dlfcn.h includes stdbool.h. Hmm. Yeah, and that's still true as of current macOS, it seems. I can make the problem go away with the attached patch (borrowed from similar code in plperl.h). It's kind of grotty but I'm not sure there's a better way. regards, tom lane
diff --git a/src/backend/utils/fmgr/dfmgr.c b/src/backend/utils/fmgr/dfmgr.c index c2a2572..4a5cc7c 100644 *** a/src/backend/utils/fmgr/dfmgr.c --- b/src/backend/utils/fmgr/dfmgr.c *************** *** 18,24 **** --- 18,34 ---- #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"