Re: [PATCH 2/2] Makefile: drop GNU Make < 4.0 compatibility code
Ilias Apalodimas <[email protected]>
| Newsgroups | org.u-boot-project.lists.u-boot |
|---|---|
| Message-ID | <CAC_iWj+WXkNAZPyRup4w09jSyr6TbkjLgZRyDxKzCQdFaK8-4Q@mail.gmail.com> |
Hi Suraj On Thu, 27 Aug 2026 at 15:11, Suraj Kakade <[email protected]> wrote: > > RHEL/CentOS 7, a popular distribution that installs GNU Make 3.82, > reached EOM/EOL on June 30, 2024. While you may get extended support, > it is a good time to raise the minimum GNU Make version. > > The new requirement, GNU Make 4.0, was released in October, 2013. > > Raise the enforced minimum GNU Make version to 4.0 and drop the > now-unreachable compatibility code for older versions: > > - Add an explicit "GNU Make >= 4.0 is required" version-check gate. > - Simplify the "make -s" (silent mode) detection to a single > unconditional check instead of branching on make-4 vs make-3.8x. > - Drop the GNU Make 3.x sub-make workaround, which is now dead code. Overall I agree on bumnping the minimum requirements to 4.0. In fact, I think I did that when I did the Makefile bump to 5.x. However, the macOS tools stopped compiling. We need to check the CI for that before merging this. > > Fixes: ffe29ebc0701 ("kbuild: sync top Makefile with Linux 3.18-rc1") > Fixes: 5f520875bdf0 ("kbuild: Bump the build system to 5.1") > Signed-off-by: Suraj Kakade <[email protected]> Why do we need fixes tags? Cheers /Ilias > --- > Makefile | 20 +++++--------------- > 1 file changed, 5 insertions(+), 15 deletions(-) > > diff --git a/Makefile b/Makefile > index 436f384f22a..889ac7bade5 100644 > --- a/Makefile > +++ b/Makefile > @@ -12,6 +12,10 @@ NAME = > # Comments in this file are targeted only to the developer, do not > # expect to learn how to build the kernel reading this file. > > +ifeq ($(filter output-sync,$(.FEATURES)),) > +$(error GNU Make >= 4.0 is required. Your Make version is $(MAKE_VERSION)) > +endif > + > $(if $(filter __%, $(MAKECMDGOALS)), \ > $(error targets prefixed with '__' are only for internal use)) > > @@ -93,15 +97,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))),) > - quiet=silent_ > -endif > -else # make-3.8x > -ifneq ($(filter s% -s%,$(MAKEFLAGS)),) > +ifneq ($(findstring s,$(firstword -$(MAKEFLAGS))),) > quiet=silent_ > endif > -endif > > export quiet Q KBUILD_VERBOSE > > @@ -166,14 +164,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 > > -- > 2.43.7 >