Re: [PATCH] kbuild: ensure Make >= 3.82 is used

From: Nicolas Schier
Date: Tue Dec 13 2022 - 05:05:49 EST


On Tue, Dec 13, 2022 at 04:58:30AM +0100 Nicolas Schier wrote:
> On Mon 12 Dec 2022 10:21:10 GMT, Nathan Chancellor wrote:
> > On Sun, Dec 11, 2022 at 12:03:52PM +0900, Masahiro Yamada wrote:
> > > Documentation/process/changes.rst notes the minimal GNU Make version,
> > > but it is not checked anywhere.
> > >
> > > We could check $(MAKE_VERSION), but another simple way is to check
> > > $(.FEATURES) since the feature list always grows although this way
> > > is not always possible. For example Make 4.0 through 4.2 have the
> > > same set of $(.FEATURES).
> > >
> > > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> >
> > Reviewed-by: Nathan Chancellor <nathan@xxxxxxxxxx>
>
> Reviewed-by: Nicolas Schier <nicolas@xxxxxxxxx>
>
> > > ---
> > >
> > > Changes in v3:
> > > - Check the version in a different way
> > >
> > > Makefile | 5 +++++
> > > 1 file changed, 5 insertions(+)
> > >
> > > diff --git a/Makefile b/Makefile
> > > index 2dda1e9a717a..66dfc5751470 100644
> > > --- a/Makefile
> > > +++ b/Makefile
> > > @@ -11,6 +11,11 @@ NAME = Hurr durr I'ma ninja sloth
> > > # Comments in this file are targeted only to the developer, do not
> > > # expect to learn how to build the kernel reading this file.
> > >
> > > +# Ensure Make >= 3.82
> > > +ifeq ($(filter undefine,$(.FEATURES)),)
> > > +$(error Make $(MAKE_VERSION) is too old)
> >
> > Would it make sense to state what version is needed, similar to the
> > Kconfig checks for compiler and binutils?
>
> Checking against 'undefine' (introduced in make-3.82~38) is quite a
> nice way, I think. Otherwise we needed something like
> $(filter 3.82% 3.9% 4.% 5.% ..., $(MAKE_VERSION)).
>

Nathan, sorry, I somehow I read your question completely wrong. I would also
appreciate if the minimum make version would be shown in the error message.

Kind regards,
Nicolas