Subject: Re: [PATCH 1/2] config.mak.dev: workaround gcc 12 bug affecting "pedantic" CI job

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Sat, 16 Apr 2022 02:55:18 +0200

On Fri, Apr 15 2022, Carlo Arenas wrote:

> On Fri, Apr 15, 2022 at 4:45 PM Ævar Arnfjörð Bjarmason
> <[email-masked]> wrote:
>> On Fri, Apr 15 2022, Carlo Marcelo Arenas Belón wrote:
>> > diff --git a/config.mak.dev b/config.mak.dev
>> > index 3deb076d5e3..335efd46203 100644
>> > --- a/config.mak.dev
>> > +++ b/config.mak.dev
>> > @@ -65,4 +65,9 @@ DEVELOPER_CFLAGS += -Wno-uninitialized
>> >  endif
>> >  endif
>> >
>> > +# https://bugzilla.redhat.com/show_bug.cgi?id=2075786
>> > +ifneq ($(filter gcc12,$(COMPILER_FEATURES)),)
>> > +DEVELOPER_CFLAGS += -Wno-error=stringop-overread
>> > +endif
>>
>> What I meant with "just set -Wno-error=stringop-overread on gcc12 for
>> dir.(o|s|sp)?" was that you can set this per-file:
>
> of course, but that change goes in the Makefile and therefore affects
> ALL builds, this one only affects DEVELOPER=1 and is therefore more
> narrow.
>
> that is what I meant with "has been punted" in my commit message.

I mean it can go in config.mak.dev, it doesn't need to be in the
Makefile itself.

The make doesn't have any notion of "file scope" or similar, the
behavior is just a union of the variables, rules etc. that you source.

So just as we append to DEVELOPER_CFLAGS and the Makefile uses it we can
say "only append this to this file's flags", which since it's in
config.mak.dev is guarded by DEVELOPER.

>>         dir.sp dir.s dir.o: EXTRA_CPPFLAGS += -Wno-error=stringop-overread
>
> I know at least one developer that will then rightfully complain that
> the git build doesn't work in AIX with xl after this.

Yes, it would break if it were in the Makfile, but not if it's in
config.mak.dev.

There it'll be guarded by the "only for gcc12" clause, so we don't need
to worry about breaking any other compiler.