On Sat, May 16, 2026 at 05:45:54PM +0200, Stefano Brivio wrote: > On Tue, 12 May 2026 15:52:50 +1000 > David Gibson wrote: > > > The $(FLAGS) variable contains mandatory compiler flags that should not be > > overridden. However, it contains a mixture of flags for the preprocessor > > and for the compiler proper. That's causing some inconvenience for other > > Makefile cleanups, so split it into $(BASE_CPPFLAGS) and $(BASE_CFLAGS) > > variables. > > > > Signed-off-by: David Gibson > > --- > > Makefile | 40 ++++++++++++++++++++++++---------------- > > 1 file changed, 24 insertions(+), 16 deletions(-) > > > > diff --git a/Makefile b/Makefile > > index a8f8d06e..697f229f 100644 > > --- a/Makefile > > +++ b/Makefile > > @@ -30,12 +30,17 @@ ifeq ($(shell $(CC) -O2 -dM -E - < /dev/null 2>&1 | grep ' _FORTIFY_SOURCE ' > / > > FORTIFY_FLAG := -D_FORTIFY_SOURCE=2 > > endif > > > > -FLAGS := -Wall -Wextra -Wno-format-zero-length -Wformat-security > > -FLAGS += -pedantic -std=c11 -D_XOPEN_SOURCE=700 -D_GNU_SOURCE > > -FLAGS += $(FORTIFY_FLAG) -O2 -pie -fPIE > > -FLAGS += -DPAGE_SIZE=$(shell getconf PAGE_SIZE) > > -FLAGS += -DVERSION=\"$(VERSION)\" > > -FLAGS += -DDUAL_STACK_SOCKETS=$(DUAL_STACK_SOCKETS) > > +# Mandatory preprocessor flags that won't be overridden with $(CPPFLAGS) > > +# FIXME: Could some of these be default, rather than required? > > +BASE_CPPFLAGS := -D_XOPEN_SOURCE=700 -D_GNU_SOURCE $(FORTIFY_FLAG) > > +BASE_CPPFLAGS += -DPAGE_SIZE=$(shell getconf PAGE_SIZE) > > +BASE_CPPFLAGS += -DVERSION=\"$(VERSION)\" > > +BASE_CPPFLAGS += -DDUAL_STACK_SOCKETS=$(DUAL_STACK_SOCKETS) > > + > > +# Mandatory compiler flags that won't be overridden with $(CFLAGS) > > +# FIXME: Could some of these be default, rather than required? > > +BASE_CFLAGS := -std=c11 -pie -fPIE -O2 > > +BASE_CFLAGS += -pedantic -Wall -Wextra -Wno-format-zero-length -Wformat-security > > > > PASST_SRCS = arch.c arp.c bitmap.c checksum.c conf.c dhcp.c dhcpv6.c \ > > epoll_ctl.c flow.c fwd.c fwd_rule.c icmp.c igmp.c inany.c iov.c ip.c \ > > @@ -62,11 +67,11 @@ PASST_REPAIR_HEADERS = linux_dep.h > > > > C := \#include \nint main(){int a=getrandom(0, 0, 0);} > > ifeq ($(shell printf "$(C)" | $(CC) -S -xc - -o - >/dev/null 2>&1; echo $$?),0) > > - FLAGS += -DHAS_GETRANDOM > > + BASE_CPPFLAGS += -DHAS_GETRANDOM > > endif > > > > ifeq ($(shell :|$(CC) -fstack-protector-strong -S -xc - -o - >/dev/null 2>&1; echo $$?),0) > > - FLAGS += -fstack-protector-strong > > + BASE_CFLAGS += -fstack-protector-strong > > endif > > > > prefix ?= /usr/local > > @@ -89,7 +94,8 @@ endif > > > > all: $(BIN) $(MANPAGES) docs > > > > -static: FLAGS += -static -DGLIBC_NO_STATIC_NSS > > +static: BASE_CPPFLAGS += -DGLIBC_NO_STATIC_NSS > > +static: BASE_CFLAGS += -static > > Trailing whitespace I fixed up on merge. Oops, thanks! -- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson