On 05.02.2026 12:33, Bertrand Marquis wrote:
> GNU make 4.4+ exposes variable overrides in MAKEFLAGS after "--" (e.g.
> O=/path, FOO=bar). The silent-mode check searches for "s" and can match
> an override value, forcing silent output even without -s.
> 
> Use MFLAGS for short options and filter out any long options before
> searching for "s". This preserves -s detection while avoiding false
> positives from overrides.
> 
> Fixes: 4fdb4b71b152 ("xen/build: introduce if_changed and if_changed_rule")

I don't think this is quite right: make 4.4 post-dates that commit by about
2.5 years.

> 
> Signed-off-by: Bertrand Marquis <[email protected]>

Nit: No blank lines between tags, please.

> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -113,10 +113,11 @@ else
>      Q := @
>  endif
>  
> -# If the user is running make -s (silent mode), suppress echoing of
> -# commands
> -
> -ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
> +# If the user is running make -s (silent mode), suppress echoing of commands.
> +# Use MFLAGS (short options only). MAKEFLAGS may include variable overrides

Why "short options only"? It looks you mean to describe the macro here, not
what's done in the ifeq(); at the very least it can be read both ways.

> +# after ā€œ--ā€ (GNU make greater than 4.4), which can contain an ā€œsā€ and 
> falsely

4.4 and newer really, as 4.4 itself is included in the affected range. I'm
not quite sure anyway whether the comment really needs to go this far. This
kind of detail can be had from the commit message of this change, if needed.

Happy to make adjustments while committing, yet I'm not sure whether you
agree in all regards.

Jan

Reply via email to