The GNU Make documentation says the following about the override keyword: Subsequent assignments or appends to this variable which are not marked override will be ignored. https://www.gnu.org/software/make/manual/html_node/Override-Directive.html When the override CFLAGS line was moved in commit f4bd2c3d80bc35f76892205a7e50426711e3def3 it broke the engine template, which does not use the override directive. Since the engine template is now evaluated afterwards, the engine CFLAGS are ignored. Add the override keyword to the engine template so that engine CFLAGS are honored again. Note that the CONFIG_DYNAMIC_ENGINES case doesn't need the override directive. It seems that GNU Make assigns CFLAGS even without the override directive in this case: $$($(1)_OBJS): CFLAGS := -fPIC $$($(1)_CFLAGS) $(CFLAGS) Fixes: f4bd2c3d80bc35f76892205a7e50426711e3def3 ("fix dynamic engine build") Cc: Eric Sandeen <sandeen@xxxxxxxxxx> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f57569d5..510e07fc 100644 --- a/Makefile +++ b/Makefile @@ -293,7 +293,7 @@ else # !CONFIG_DYNAMIC_ENGINES define engine_template = SOURCE += $$($(1)_SRCS) LIBS += $$($(1)_LIBS) -CFLAGS += $$($(1)_CFLAGS) +override CFLAGS += $$($(1)_CFLAGS) endef endif -- 2.31.1