Thread: mylodon's failures in the back branches

mylodon's failures in the back branches

From
Tom Lane
Date:
The reason that mylodon has been failing in v10 and v11 for awhile
is that "-Werror=c99-extensions" breaks its test for <stdbool.h>:

configure:12708: checking for stdbool.h that conforms to C99
configure:12775: ccache clang-13 -c -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement
-Wendif-labels-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv
-Wno-unused-command-line-argument-Wno-compound-token-split-by-macro -g -O1 -ggdb -g3 -fno-omit-frame-pointer -Wall
-Wextra-Wno-unused-parameter -Wno-sign-compare -Wno-missing-field-initializers -Wno-array-bounds -std=c89
-Wc99-extensions-Werror=c99-extensions  -D_GNU_SOURCE -I/usr/include/libxml2  conftest.c >&5 
conftest.c:83:25: error: '_Bool' is a C99 extension [-Werror,-Wc99-extensions]
             struct s { _Bool s: 1; _Bool t; } s;
                        ^

which causes us to not use stdbool.h, which might be all right if you
weren't also specifying --with-icu.

What's not quite clear to me is what changed on mylodon to make it
start failing recently.  Maybe you updated ICU to a version that
insists on importing <stdbool.h> in its headers?

            regards, tom lane



Re: mylodon's failures in the back branches

From
Andres Freund
Date:
Hi,

On 2022-05-02 23:18:20 -0400, Tom Lane wrote:
> The reason that mylodon has been failing in v10 and v11 for awhile
> is that "-Werror=c99-extensions" breaks its test for <stdbool.h>:

Was planning to send an email once I looked into it in a bit more detail...


> configure:12708: checking for stdbool.h that conforms to C99
> configure:12775: ccache clang-13 -c -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement
-Wendif-labels-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv
-Wno-unused-command-line-argument-Wno-compound-token-split-by-macro -g -O1 -ggdb -g3 -fno-omit-frame-pointer -Wall
-Wextra-Wno-unused-parameter -Wno-sign-compare -Wno-missing-field-initializers -Wno-array-bounds -std=c89
-Wc99-extensions-Werror=c99-extensions  -D_GNU_SOURCE -I/usr/include/libxml2  conftest.c >&5
 
> conftest.c:83:25: error: '_Bool' is a C99 extension [-Werror,-Wc99-extensions]
>              struct s { _Bool s: 1; _Bool t; } s;
>                         ^
> 
> which causes us to not use stdbool.h, which might be all right if you
> weren't also specifying --with-icu.

How did you conclude that ICU is the problem? I didn't immediately find
anything in the buildfarm output indicating that's where the stdbool include
is coming from.   Don't get me wrong, it's a plausible guess, just curious.


> What's not quite clear to me is what changed on mylodon to make it
> start failing recently.  Maybe you updated ICU to a version that
> insists on importing <stdbool.h> in its headers?

The machine is updated automatically. Looking at the package manager's log, it
indeed looks like ICU was updated around that time...

2022-04-24 06:52:10 install libicu71:amd64 <none> 71.1-2


Seems easiest to just change the configuration so that ICU isn't enabled for
10, 11? It's pretty reasonable to rely on it these days...

Greetings,

Andres Freund



Re: mylodon's failures in the back branches

From
Tom Lane
Date:
Andres Freund <andres@anarazel.de> writes:
> On 2022-05-02 23:18:20 -0400, Tom Lane wrote:
>> which causes us to not use stdbool.h, which might be all right if you
>> weren't also specifying --with-icu.

> How did you conclude that ICU is the problem? I didn't immediately find
> anything in the buildfarm output indicating that's where the stdbool include
> is coming from.   Don't get me wrong, it's a plausible guess, just curious.

A bit of a leap I agree, but IIRC we have discovered in the past that
recent ICU headers require C99 bool.

> Seems easiest to just change the configuration so that ICU isn't enabled for
> 10, 11? It's pretty reasonable to rely on it these days...

Yeah, that seemed like the most plausible answer to me too.  The point
of the animal is to check C90 compatibility, not ICU compatibility.

            regards, tom lane



Re: mylodon's failures in the back branches

From
Andres Freund
Date:
Hi,

On 2022-05-03 00:24:09 -0400, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
> > On 2022-05-02 23:18:20 -0400, Tom Lane wrote:
> > Seems easiest to just change the configuration so that ICU isn't enabled for
> > 10, 11? It's pretty reasonable to rely on it these days...
> 
> Yeah, that seemed like the most plausible answer to me too.  The point
> of the animal is to check C90 compatibility, not ICU compatibility.

Did that now - didn't suffice. Disabling libxml seems to do the trick though -
might still be ICU, just indirectly pulled in...

Greetings,

Andres Freund