On Tue, Aug 25, 2026 at 07:53:10AM +0200, Michal Simek wrote:
> 
> 
> On 8/24/26 18:51, Tom Rini wrote:
> > On Mon, Aug 24, 2026 at 05:29:37PM +0200, Michal Simek wrote:
> > > 
> > > 
> > > On 8/24/26 17:09, Tom Rini wrote:
> > > > On Mon, Aug 24, 2026 at 10:17:18AM +0530, Suraj Kakade wrote:
> > > > 
> > > > > cmd_dtc inlines dtc_cpp_flags (including every upstream dtsi -I
> > > > > path) in the HOSTCC command. With a long $(srctree) that command is
> > > > > too large for /bin/sh -c and Make fails with "Argument list too
> > > > > long" while building a .dtb.
> > > > > 
> > > > > Write the flags to a per-target .dtc.flags.tmp file and pass @file to
> > > > > HOSTCC/CPP so the shell command stays short.
> > > > > 
> > > > > This change requires GNU Make >= 4.0, since $(file ...) is not
> > > > > supported by Make 3.x.
> > > > > 
> > > > > Fixes: d31ff219a833 ("Makefile.lib: find capsule ESL dtsi file with 
> > > > > CONFIG_OF_UPSTREAM")
> > > > > Fixes: 1e7883f6325a ("dtbo: Fix dtbo generation rules")
> > > > > Signed-off-by: Suraj Kakade <[email protected]>
> > > > 
> > > > The linux kernel, and so Kbuild, says that 4.0 is the minimum version of
> > > > GNU make required, so that is true for us as well, so this is fine.
> > > > 
> > > > Reviewed-by: Tom Rini <[email protected]>
> > > > 
> > > 
> > > We should likely fix this too.
> > > 
> > >    94 # If the user is running make -s (silent mode), suppress echoing of
> > >    95 # commands
> > >    96 ifneq ($(filter 4.%,$(MAKE_VERSION)),)  # make-4
> > >    97 ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),)
> > >    98   quiet=silent_
> > >    99 endif
> > >   100 else                                    # make-3.8x
> > >   101 ifneq ($(filter s% -s%,$(MAKEFLAGS)),)
> > >   102   quiet=silent_
> > >   103 endif
> > >   104 endif
> > 
> > I think this means we should pull commit
> > 5f99665ee8f4335f334a5292b6d5b41a577fc2c0 from the kernel in, to fully
> > switch to 4.0 as minimum.
> > 
> 
> something like this?
> 
> M
> 
> diff --git a/Makefile b/Makefile
> index 16e3e4dfe5e4..e0ab39200c1b 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -93,15 +93,9 @@ endif
> 
>  # If the user is running make -s (silent mode), suppress echoing of
>  # commands
> -ifneq ($(filter 4.%,$(MAKE_VERSION)),) # make-4
> -ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),)
> +ifneq ($(findstring s,$(firstword -$(MAKEFLAGS))),)
>    quiet=silent_
>  endif
> -else                                   # make-3.8x
> -ifneq ($(filter s% -s%,$(MAKEFLAGS)),)
> -  quiet=silent_
> -endif
> -endif
> 
>  export quiet Q KBUILD_VERBOSE
> 
> @@ -166,14 +160,6 @@ ifneq ($(abs_srctree),$(abs_objtree))
>  MAKEFLAGS += --include-dir=$(abs_srctree)
>  endif
> 
> -ifneq ($(filter 3.%,$(MAKE_VERSION)),)
> -# 'MAKEFLAGS += -rR' does not immediately become effective for GNU Make 3.x
> -# We need to invoke sub-make to avoid implicit rules in the top Makefile.
> -need-sub-make := 1
> -# Cancel implicit rules for this Makefile.
> -$(this-makefile): ;
> -endif
> -
>  export abs_srctree abs_objtree
>  export sub_make_done := 1

And also the version check part (which we didn't add the initial part of
yet either, which checks for 3.8). Thanks!

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to