linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81
@ 2017-05-03  6:46 Masahiro Yamada
  2017-05-03 12:05 ` Greg Kroah-Hartman
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Masahiro Yamada @ 2017-05-03  6:46 UTC (permalink / raw)
  To: Linus Torvalds, Sam Ravnborg, Michal Marek, Linux Kbuild mailing list
  Cc: Jonathan Corbet, Linux Kernel Mailing List, Greg Kroah-Hartman,
	Andrew Morton, Thierry Reding, Ingo Molnar

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81
  2017-05-03  6:46 [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81 Masahiro Yamada
@ 2017-05-03 12:05 ` Greg Kroah-Hartman
  2017-05-03 13:29 ` Michal Marek
  2017-05-03 15:42 ` Linus Torvalds
  2 siblings, 0 replies; 5+ messages in thread
From: Greg Kroah-Hartman @ 2017-05-03 12:05 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Linus Torvalds, Sam Ravnborg, Michal Marek,
	Linux Kbuild mailing list, Jonathan Corbet,
	Linux Kernel Mailing List, Andrew Morton, Thierry Reding,
	Ingo Molnar

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81
  2017-05-03  6:46 [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81 Masahiro Yamada
  2017-05-03 12:05 ` Greg Kroah-Hartman
@ 2017-05-03 13:29 ` Michal Marek
  2017-05-03 13:42   ` Jan Beulich
  2017-05-03 15:42 ` Linus Torvalds
  2 siblings, 1 reply; 5+ messages in thread
From: Michal Marek @ 2017-05-03 13:29 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Linus Torvalds, Sam Ravnborg, Linux Kbuild mailing list,
	Jonathan Corbet, Linux Kernel Mailing List, Greg Kroah-Hartman,
	Andrew Morton, Thierry Reding, Ingo Molnar, Jan Beulich

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81
  2017-05-03 13:29 ` Michal Marek
@ 2017-05-03 13:42   ` Jan Beulich
  0 siblings, 0 replies; 5+ messages in thread
From: Jan Beulich @ 2017-05-03 13:42 UTC (permalink / raw)
  To: Michal Marek
  Cc: Ingo Molnar, Andrew Morton, Linus Torvalds, Greg Kroah-Hartman,
	Jonathan Corbet, Thierry Reding, Sam Ravnborg, Masahiro Yamada,
	Linux Kbuild mailing list, Linux Kernel Mailing List

>>> 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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81
  2017-05-03  6:46 [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81 Masahiro Yamada
  2017-05-03 12:05 ` Greg Kroah-Hartman
  2017-05-03 13:29 ` Michal Marek
@ 2017-05-03 15:42 ` Linus Torvalds
  2 siblings, 0 replies; 5+ messages in thread
From: Linus Torvalds @ 2017-05-03 15:42 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Sam Ravnborg, Michal Marek, Linux Kbuild mailing list,
	Jonathan Corbet, Linux Kernel Mailing List, Greg Kroah-Hartman,
	Andrew Morton, Thierry Reding, Ingo Molnar

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-05-03 15:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-03  6:46 [RFC] Increase Minimal GNU Make version for Linux Kernel from 3.80 to 3.81 Masahiro Yamada
2017-05-03 12:05 ` Greg Kroah-Hartman
2017-05-03 13:29 ` Michal Marek
2017-05-03 13:42   ` Jan Beulich
2017-05-03 15:42 ` Linus Torvalds

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).