[+Jes Sorensen] On Mon, Oct 26, 2020 at 08:48:31PM +0000, luca.boccassi@xxxxxxxxx wrote: > From: Romain Perier <romain.perier@xxxxxxxxx> > > Currently, CFLAGS are defined by default. It has to effect to define its > c-compiler options only when the variable is not defined on the cmdline > by the user, it is not possible to merge or mix both, while it could > be interesting for using the app warning cflags or the pkg-config > cflags, while using the distributor flags. Most distributions packages > use their own compilation flags, typically for hardening purpose but not > only. This fixes the issue by using the override keyword. > > Signed-off-by: Romain Perier <romain.perier@xxxxxxxxx> > --- > Currently used in Debian, were we want to append context-specific > compiler flags (eg: for compiler hardening options) without > removing the default flags > > Makefile | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/Makefile b/Makefile > index 6c6c8c9..5020cac 100644 > --- a/Makefile > +++ b/Makefile > @@ -35,14 +35,15 @@ > cc-option = $(shell if $(CC) $(1) -c -x c /dev/null -o /dev/null > /dev/null 2>&1; \ > then echo $(1); fi) > > -CFLAGS ?= -O2 -Wall -Wundef \ > +override CFLAGS := -O2 -Wall -Wundef \ > $(call cc-option,-Wdeclaration-after-statement) \ > $(call cc-option,-Wimplicit-fallthrough) \ > $(call cc-option,-Wmissing-field-initializers) \ > $(call cc-option,-Wmissing-prototypes) \ > $(call cc-option,-Wstrict-prototypes) \ > $(call cc-option,-Wunused-parameter) \ > - $(call cc-option,-Wvla) > + $(call cc-option,-Wvla) \ > + $(CFLAGS) > > override CPPFLAGS := -Iinclude -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) I had it like this originally, but Jes requested that it be changed to the current way for rpm packaging. See the thread: https://lkml.kernel.org/linux-fscrypt/20200515205649.1670512-3-Jes.Sorensen@xxxxxxxxx/T/#u Can we come to an agreement on one way to do it? To me, the approach with 'override' makes more sense. The only non-warning option is -O2, and if someone doesn't want that, they can just specify CFLAGS=-O0 and it will override -O2 (since the last option "wins"). Jes, can you explain why that way doesn't work with rpm? - Eric