On Fri, Oct 25, 2019 at 1:30 PM Andrew Gierth
<[email protected]> wrote:
>
> >>>>> "Amit" == Amit Kapila <[email protected]> writes:
>
>  Amit> BTW, prairiedog is also show similar failure and both seems to
>  Amit> have similar OS except for versions.
>
> Be aware that prairiedog and locust (unlike the rest of the buildfarm)
> have compilers whose "bool" type is not 1 byte long; PG can't use that,
> so we don't include <stdbool.h> on those platforms.
>
> Looking at c.h, the problem seems to be that when we define our own bool
> in the absence of a usable stdbool.h, we do so as a typedef and not a
> macro. So pgtypeslib_extern.h ends up redefining it in that case, and
> (this bit may be my fault: see d26a810eb) uses a different type to c.h
> (char vs. unsigned char).
>
> (stdbool.h is required by spec to do #define bool _Bool rather than a
> typedef, hence the difference in behavior)
>
> I'm no expert on the ECPG internals, but this doesn't look like an
> exposed interface, so maybe it just shouldn't be trying to #define bool
> at all and just rely on c.h (from postgres_fe.h) to declare the type?
>

+1.  I think we can discuss this on hackers, so started a thread [1].

[1] - 
https://www.postgresql.org/message-id/CAA4eK1LmaKO7Du9M9Lo%3DkxGU8sB6aL8fa3sF6z6d5yYYVe3BuQ%40mail.gmail.com

-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com


Reply via email to