This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/4] Document new hard requirement on GNU make


On 11/16/2016 11:34 PM, Pedro Alves wrote:
> On 11/16/2016 10:04 PM, Simon Marchi wrote:
>> On 2016-11-16 12:23, Eli Zaretskii wrote:
>>>> With make >= 3.82, it would do the right thing (choose the second one),
>>>> by choosing the rule with the shorter stem.  Before that, it used the
>>>> order of definition (the first that matches wins).  So it would be nice
>>>> for that reason to require >= 3.82, but it's also possible to work
>>>> around if that's too recent.
>>>
>>> 3.82 shouldn't be a problem, I think.
>>
>> Oops, I said that without even checking the version I have on my system.
>>  Ubuntu 14.04, strangely, has make 3.81.  Apparently that was because of
>> a critical bug on Debian with 3.82, which stayed open for a long time,
>> preventing the upgrade.  Debian and its derivatives, including Ubuntu,
>> were stuck with that for a long time.
>>
>> Refs:
>>   http://stackoverflow.com/questions/31912233/how-to-update-make-3-81-linux
>>   https://lwn.net/Articles/569920/
>>
>> I don't think it's worth complicating the lives of those users just to
>> get the benefit of the behaviour change I mentioned.
>>
>> So I'm back at having no idea what version we should require.
> 
> I think we should go with the same requirement as gcc (3.80), as
> seen on the top level Makefile.in:
> 
> @if gcc
> ifeq (,$(.VARIABLES)) # The variable .VARIABLES, new with 3.80, is never
> empty.
> $(error GNU make version 3.80 or newer is required.)
> endif
> @endif gcc

Actually, I take that back.  I was just using "makes it easier
to have a single top level check", but that's not really a good
rationale.  I wouldn't want to be stuck if gcc decides to
move at a glacial pace.

Probably a policy similar to the C++NN one makes more sense.

I see now that 3.81 was released in 2006, so should not be
a problem to require it.

OOC, I wrote a quick&dirty script (attached) to check for GNU Make
availability in the GCC compile farm.  It tries all gcc*.fsffrance.org
from 1 to 250.  I don't have access to all machines setup, as some are
multiplexed on a single IP with different ports, requiring tweaking
the local ssh config.  However, what I found was already interesting,
I believe.  Here's the result:

Number of accessible hostnames: 66
Number of inaccessible hostnames: 184
Hostnames with GNU Make: 66
Hostnames without GNU Make: 0
Distribution: 
     56 GNU Make 3.81
      2 GNU Make 3.82
      7 GNU Make 4.0
      1 GNU Make 4.1
Unique hosts with GNU Make: 20          
Unique hosts without GNU Make: 0
Distribution: 
     10 GNU Make 3.81
      2 GNU Make 3.82
      7 GNU Make 4.0
      1 GNU Make 4.1

I.e., I didn't find a single machine still stuck with GNU Make 3.80.

Thanks,
Pedro Alves

Attachment: check-make-ver
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]