On Tue, Sep 28 2021, Carlo Marcelo Arenas Belón wrote: > 6163f3f1a4 (config.mak.dev: add -Wall, primarily for -Wformat, to help > autoconf users, 2018-10-12) adds a second -Wall in config.mak.dev to > workaround the lack of one from config.mak.autogen. > > Since 6d5d4b4e93 (Makefile: allow for combining DEVELOPER=1 and > CFLAGS="...", 2019-02-22), that variable is set instead as part of > DEVELOPER_FLAGS which won't be overriden by config.mak.autogen, so > it can be safely removed from config.mak.dev if set instead in the > Makefile. > > This also has the advantage of separating cleanly CFLAGS which are > used for building with the ones that provide with diagnostics. > > Signed-off-by: Carlo Marcelo Arenas Belón <carenas@xxxxxxxxx> > --- > Makefile | 3 ++- > config.mak.dev | 1 - > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/Makefile b/Makefile > index 9df565f27b..963b9e7c6b 100644 > --- a/Makefile > +++ b/Makefile > @@ -1200,7 +1200,8 @@ endif > # Set CFLAGS, LDFLAGS and other *FLAGS variables. These might be > # tweaked by config.* below as well as the command-line, both of > # which'll override these defaults. > -CFLAGS = -g -O2 -Wall > +CFLAGS = -g -O2 > +DEVELOPER_CFLAGS = -Wall > LDFLAGS = > CC_LD_DYNPATH = -Wl,-rpath, > BASIC_CFLAGS = -I. > diff --git a/config.mak.dev b/config.mak.dev > index c81be62a5c..90c47d2782 100644 > --- a/config.mak.dev > +++ b/config.mak.dev > @@ -6,7 +6,6 @@ ifeq ($(filter no-error,$(DEVOPTS)),) > DEVELOPER_CFLAGS += -Werror > SPARSE_FLAGS += -Wsparse-error > endif > -DEVELOPER_CFLAGS += -Wall > ifeq ($(filter no-pedantic,$(DEVOPTS)),) > DEVELOPER_CFLAGS += -pedantic > ifneq ($(filter clang4 gcc5,$(COMPILER_FEATURES)),) This really breaks things for anyone who's relying on specifing CFLAGS now to clobber the default -Wall configuration, e.g. on both xlc and aCC after this: xlc: 1501-289 (W) Option -Wall was incorrectly specified. The option will be ignored. cc: error 1914: bad form for `-W' option I.e. they didn't work before, but I've got CFLAGS="-g -O0" for both in my build scripts, so they didn't get -Wall before, but now they do, so I'll need: CFLAGS=<that> DEVELOPER_CFLAGS= And in my own dev setup I do in config.mak: "CFLAGS=-g -O0", and then rely on config.mak.dev to set -Wall, but if I did e.g.: DEVELOPER= CFLAGS="-g -O0 -Wall" I'd end up with -Wall twice, gcc doesn't complain, but maybe some other toolchains do. For the former case this seems like a really odd and leaky interface since I don't have DEVELOPER=1. Let's leave DEVOPTS, DEVELOPER_CFLAGS etc. etc. only in effect for anyone who turns on that option. Anyway, I don't think it's a no-go to make a change in this direction, and while it would break builds for some perhaps the end result is worth it. I haven't really looked closely enough at the Makefile logic you're untangling to form an opinion on it. But I think this needs to at least have s/DEVELOPER_CFLAGS/WARNING_CFLAGS/g or something. But not to saddle you with an impossible task, wouldn't this whole thing be much easier if we included config.mak* before setting our own CFLAGS etc. defaults? But of course that would break for anyone relying on "+=" working, so I don't know.