On Mon, Oct 28, 2019 at 11:27 PM Tom Lane <t...@sss.pgh.pa.us> wrote: > > Amit Kapila <amit.kapil...@gmail.com> writes: > > On Sat, Oct 26, 2019 at 10:49 PM Tom Lane <t...@sss.pgh.pa.us> wrote: > >> I'm inclined to think that we need to make ecpglib.h's bool-related > >> definitions exactly match c.h, which will mean that it has to pull in > >> <stdbool.h> on most platforms, which will mean adding a control symbol > >> for that to ecpg_config.h. I do not think we should export > >> HAVE_STDBOOL_H and SIZEOF_BOOL there though; probably better to have > >> configure make the choice and export something named like PG_USE_STDBOOL. > > > This sounds reasonable to me, but we also might want to do something > > for probes.d. To be clear, I am not immediately planning to write a > > patch for this. > > As far as probes.d goes, it seems to work to do > > @@ -20,7 +20,7 @@ > #define BlockNumber unsigned int > #define Oid unsigned int > #define ForkNumber int > -#define bool char > +#define bool _Bool > > provider postgresql { > > although removing the macro altogether leads to compilation failures. > I surmise that dtrace is trying to compile the generated code without > any #include's, so that only compiler built-in types will do. > > (I tried this on macOS, FreeBSD, and NetBSD, to the extent of seeing > whether a build with --enable-dtrace goes through. I don't know > enough about dtrace to test the results easily, but I suppose that > if it compiles then this is OK.) > > This would, of course, not work on any platform where we're not > using <stdbool.h>, but I doubt that the set of platforms where > dtrace works includes any such. > > A plausible alternative is to do > > -#define bool char > +#define bool unsigned char > > which is correct on platforms where we don't use <stdbool.h>, > and is at least no worse than now on those where we do. In > practice, since we know sizeof(_Bool) == 1 on platforms where > we use it, this is probably just fine for dtrace's purposes. > > Anyone have a preference? >
+1 for the second alternative as it will make it similar to c.h. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com