Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1634775 > unrolled thread

[RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81

Started byMasahiro Yamada <yamada.masahiro@socionext.com>
First post2017-05-03 08:50 +0200
Last post2017-05-03 17:50 +0200
Articles 5 — 5 participants

Back to article view | Back to linux.kernel


Contents

  [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81 Masahiro Yamada <yamada.masahiro@socionext.com> - 2017-05-03 08:50 +0200
    Re: [RFC] Increase Minimal GNU Make version for Linux Kernel from  3.80 to 3.81 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-05-03 14:10 +0200
    Re: [RFC] Increase Minimal GNU Make version for Linux Kernel from  3.80 to 3.81 Michal Marek <mmarek@suse.com> - 2017-05-03 15:30 +0200
      Re: [RFC] Increase Minimal GNU Make version for Linux Kernel  from 3.80 to 3.81 "Jan Beulich" <JBeulich@suse.com> - 2017-05-03 15:50 +0200
    Re: [RFC] Increase Minimal GNU Make version for Linux Kernel from  3.80 to 3.81 Linus Torvalds <torvalds@linux-foundation.org> - 2017-05-03 17:50 +0200

#1634775 — [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81

FromMasahiro Yamada <yamada.masahiro@socionext.com>
Date2017-05-03 08:50 +0200
Subject[RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81
Message-ID<tCWgN-1jK-9@gated-at.bofh.it>
Hello Linus and Kbuild developers.


Documentation/process/changes.rst says the minimal version
of GNU Make is 3.80, but actually building the kernel
with this version has been broken for a long time.

Specifically, it got broken by commit c8589d1e9e01 (i.e. Linux 3.18).
Sorry, it's me who broke it.

Here is my excuse:
- It is almost 3 years since then, but nobody complained about it.
- GNU Make 3.80 is almost 15 years old.
  (Even GNU Make 3.81 was released in 2006.)
- People seldom test their makefiles on such old GNU Make version,
  so they often use some features that are not supported by version 3.80.


We would have to make efforts if we wanted to get back
availability of GNU Make 3.80.


[1] multi_depend in scripts/Makefile.lib does not work on GNU Make 3.80

I fiddled with it for a while, but I could not find a workaround,
except reverting the following 4 commits:

221ecca6cafe
022af62d0190
97e3226e6e98
c8589d1e9e01

I do not want to revert them because we would lose many cleanups.


[2] "else ifeq" is not supported by GNU Make 3.80

'make help' on GNU Make 3.80 reports error:
./Documentation/Makefile.sphinx:25: Extraneous text after `else' directive
./Documentation/Makefile.sphinx:31: *** only one `else' per conditional.  Stop.
make: *** [help] Error 2


We could rewrite the makefile, but nested if directives
would make the code unreadable.


[3] $(realpath ...) and $(abspath ...) are not supported by GNU Make 3.80

These two functions are only supported by 3.81 or later,
but they are already used here and there.


[4] semi-colon (;) is treated differently in $(warning ...) by GNU Make 3.80

'make ARCH=arm64 defconfig' does not work on GNU Make 3.80

$ make ARCH=arm64 defconfig
arch/arm64/Makefile:43: *** unterminated call to function `warning':
missing `)'.  Stop.

I could not find a solution to make it work for both 3.80 and 3.81 (or later).
We would not be able to use a semi-colon in $(warning ...).



From the above, I'd like to propose to increase the minimal version of
GNU Make to 3.81.

Comments are appreciated.



-- 
Best Regards
Masahiro Yamada

[toc] | [next] | [standalone]


#1634908 — Re: [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-05-03 14:10 +0200
SubjectRe: [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81
Message-ID<tD1gu-5a8-15@gated-at.bofh.it>
In reply to#1634775
On Wed, May 03, 2017 at 03:46:11PM +0900, Masahiro Yamada wrote:
> Hello Linus and Kbuild developers.
> 
> 
> Documentation/process/changes.rst says the minimal version
> of GNU Make is 3.80, but actually building the kernel
> with this version has been broken for a long time.
> 
> Specifically, it got broken by commit c8589d1e9e01 (i.e. Linux 3.18).
> Sorry, it's me who broke it.

Given that no one has noticed since December of 2014, I think we are
safe to bump up the version required for make, as really you did it
already :)

So, no objection from me.

thanks,

greg k-h

[toc] | [prev] | [next] | [standalone]


#1634973 — Re: [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81

FromMichal Marek <mmarek@suse.com>
Date2017-05-03 15:30 +0200
SubjectRe: [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81
Message-ID<tD2vU-5V7-7@gated-at.bofh.it>
In reply to#1634775
On 2017-05-03 08:46, Masahiro Yamada wrote:
> Hello Linus and Kbuild developers.
> 
> 
> Documentation/process/changes.rst says the minimal version
> of GNU Make is 3.80, but actually building the kernel
> with this version has been broken for a long time.
> 
> Specifically, it got broken by commit c8589d1e9e01 (i.e. Linux 3.18).
> Sorry, it's me who broke it.
> 
> Here is my excuse:
> - It is almost 3 years since then, but nobody complained about it.
> - GNU Make 3.80 is almost 15 years old.
>   (Even GNU Make 3.81 was released in 2006.)
> - People seldom test their makefiles on such old GNU Make version,
>   so they often use some features that are not supported by version 3.80.

Agreed. It's not just the kbuild change that broke it, but as you say,
new make features tend creep into random Makefiles. So I'm fine
adjusting the documentation to match reality.

Adding Jan Beulich to Cc, who to fix these cases in the past.

Michal

[toc] | [prev] | [next] | [standalone]


#1634978 — Re: [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81

From"Jan Beulich" <JBeulich@suse.com>
Date2017-05-03 15:50 +0200
SubjectRe: [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81
Message-ID<tD2Pf-636-5@gated-at.bofh.it>
In reply to#1634973
>>> On 03.05.17 at 15:29, <MMarek@suse.com> wrote:
> On 2017-05-03 08:46, Masahiro Yamada wrote:
>> Hello Linus and Kbuild developers.
>> 
>> 
>> Documentation/process/changes.rst says the minimal version
>> of GNU Make is 3.80, but actually building the kernel
>> with this version has been broken for a long time.
>> 
>> Specifically, it got broken by commit c8589d1e9e01 (i.e. Linux 3.18).
>> Sorry, it's me who broke it.
>> 
>> Here is my excuse:
>> - It is almost 3 years since then, but nobody complained about it.
>> - GNU Make 3.80 is almost 15 years old.
>>   (Even GNU Make 3.81 was released in 2006.)
>> - People seldom test their makefiles on such old GNU Make version,
>>   so they often use some features that are not supported by version 3.80.
> 
> Agreed. It's not just the kbuild change that broke it, but as you say,
> new make features tend creep into random Makefiles. So I'm fine
> adjusting the documentation to match reality.
> 
> Adding Jan Beulich to Cc, who to fix these cases in the past.

Thanks for asking. As I don't recall having run into the specific
problem mentioned above, I suppose I've given up at some
point and forced the use of a newer make even on those very
old distros that I tend to build / test stuff on every once in a
while. IOW I guess I'm fine with the proposed change, and I
can help myself if nevertheless needed.

Jan

[toc] | [prev] | [next] | [standalone]


#1635086 — Re: [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81

FromLinus Torvalds <torvalds@linux-foundation.org>
Date2017-05-03 17:50 +0200
SubjectRe: [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81
Message-ID<tD4Ho-7iw-21@gated-at.bofh.it>
In reply to#1634775
On Tue, May 2, 2017 at 11:46 PM, Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
>
> From the above, I'd like to propose to increase the minimal version of
> GNU Make to 3.81.

Ack.

From earlier (uinrelated) discussion, I think we have other cases
where the "minimum recommended" may not be true (even gcc - it might
be true on some architectures with simple configs, but we've had
long-standing known issues with some more complex configurations where
the "minimum" gcc version simply didn't cut it and could generate
incorrect code).

For the GNU make case, you make a strong case of "it hasn't worked for
a while already and nobody even noticed".

                        Linus

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web