On Wed, Jul 22, 2020 at 05:49:59PM +0200, Pavel Hrdina wrote:
> > + # -Wformat=2 implies -Wformat-nonliteral so we need to
manually exclude it
> > + '-Wno-format-nonliteral',
> > +
> > + # -Wformat enables this by default, and we should keep it,
> > + # but need to rewrite various areas of code first
> > + '-Wno-format-truncation',
> > +
> > + # This should be < 256 really. Currently we're down to 4096,
> > + # but using 1024 bytes sized buffers (mostly for virStrerror)
> > + # stops us from going down further
> > + '-Wframe-larger-than=4096',
> > +
> > + # extra special flags
> > + '-fexceptions',
> > + '-fasynchronous-unwind-tables',
> > +
> > + # Need -fipa-pure-const in order to make -Wsuggest-attribute=pure
> > + # fire even without -O.
> > + '-fipa-pure-const',
> > +
> > + # We should eventually enable this, but right now there are at
> > + # least 75 functions triggering warnings.
> > + '-Wno-suggest-attribute=pure',
> > + '-Wno-suggest-attribute=const',
> > +]
> > +
> > +if git
> > + cc_flags += [ '-Werror' ]
> > +endif
>
> This doesn't seem right. We definitely don't want this to be based
> solely on whether we're building from git.
So the thing with Meson is that it has build-in option --werror with
default value 'false'. It is possible to change the default value
in the project() function. Unfortunately it is not possible to call
anything else before project() function so we cannot detect if building
from GIT before we can change the default value.
There are three solutions:
1) Keep it as it is, it would not be possible to disable -Werror if
building from GIT.
That mostly shouldn't be a problem for upstream GIT since we expect to
be -Werror clean, but new GCCs break us sometimes. Today in fact with
GCC 10 :-). Could also be a problem for downstreams, eg we use git to
maintain patches in RPMs.
So I think this is not viable.
2) Drop the GIT detection and require developers to use --werror
to
have this functionality.
The main goal of defaulting to Werror was to make sure developers
didn't accidentally introduce build warnings. As long as we don't
have gating pre-merge CI, I think need to try really hard to keep
it.
3) Introduce our own -Dgit_werror which would allow us to change the
default behavior and disable -Werror for build from GIT.
This duplicates --werror behaviour, but I think it is the least
worst option right now.
Regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|