[Home]

Summary:ASTERISK-15347: [patch] Missing plus signs in MAKE/SUBMAKE calls prevent parallel make from operating correctly
Reporter:Tony Vroon (chainsaw)Labels:
Date Opened:2009-12-21 08:04:21.000-0600Date Closed:2010-01-19 11:43:43.000-0600
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Core/BuildSystem
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) asterisk-1.6.1.12-parallel-make-v2.patch
( 1) asterisk-1.6.2.1-parallel-make.patch
( 2) asterisk-1.6.2.1-parallel-make-minimal.patch
( 3) asterisk-without-patch.log
( 4) asterisk-with-patch.log
Description:This patch applies to the 1.6.1.12 release tarball and hopefully also to the 1.6.2 branch. Parallel make fixes were applied for the compilation process, but not the installation process.
This patch addresses that.
Comments:By: Tony Vroon (chainsaw) 2010-01-04 08:17:45.000-0600

There was an error in the make clean portion of this patch; v2 addresses it. Please delete v1 from the tracker.

By: Jason Parker (jparker) 2010-01-18 17:50:45.000-0600

Can you describe exactly what this fixes, and why it fixes it?

I don't want to make any assumptions here.  I tested what I thought was the problem, and it did not fix it.

By: Tony Vroon (chainsaw) 2010-01-19 07:25:43.000-0600

Please delete "V2" and stick to the 1.6.2.1 patch.
This fixes the operation when make is called with -jX, where X is higher then 1. I use -j12 on my 12-core system at home for example.

If this patch is not applied, make will warn that it is defaulting to -j1 as it was not called correctly. The utilisation of cores on my system is very low as a result, and the total compilation time goes up.
Any multi-core machine should show you the improvements.

Autotools upstream describes it like so:
warning: jobserver unavailable: using -j1. Add `+' to parent make rule.'
In order for make processes to communicate, the parent will pass information to the child. Since this could result in problems if the child process isn't actually a make, the parent will only do this if it thinks the child is a make. The parent uses the normal algorithms to determine this (see How the MAKE Variable Works). If the makefile is constructed such that the parent doesn't know the child is a make process, then the child will receive only part of the information necessary. In this case, the child will generate this warning message and proceed with its build in a sequential manner.

By: Jason Parker (jparker) 2010-01-19 10:27:20.000-0600

So this has nothing to do with running `make -jN install`?

By: Tony Vroon (chainsaw) 2010-01-19 10:37:32.000-0600

It is most noticeable in setup & compilation, but installation is also affected. Particularly the menuconfig calls get very chatty with -j1 errors.

By: Jason Parker (jparker) 2010-01-19 10:42:54.000-0600

Can you attach the output of clean builds with and without this patch?  I'm not seeing the errors you are.  Use any targets that you see these issues with (ie; all, clean, install, etc)

By: Tony Vroon (chainsaw) 2010-01-19 11:19:52.000-0600

As per IRC feedback & testing; here is the minimal patch that touches only sites that warn.

By: Digium Subversion (svnbot) 2010-01-19 11:41:01.000-0600

Repository: asterisk
Revision: 241228

U   branches/1.4/Makefile

------------------------------------------------------------------------
r241228 | qwell | 2010-01-19 11:41:00 -0600 (Tue, 19 Jan 2010) | 8 lines

Allow parallel make (-j) to work properly.

1.4 changes are quite different from the others.

(issue ASTERISK-15347)
Reported by: Chainsaw
Tested by: qwell

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=241228

By: Digium Subversion (svnbot) 2010-01-19 11:41:20.000-0600

Repository: asterisk
Revision: 241229

_U  trunk/

------------------------------------------------------------------------
r241229 | qwell | 2010-01-19 11:41:19 -0600 (Tue, 19 Jan 2010) | 14 lines

Blocked revisions 241228 via svnmerge

........
 r241228 | qwell | 2010-01-19 11:41:00 -0600 (Tue, 19 Jan 2010) | 8 lines
 
 Allow parallel make (-j) to work properly.
 
 1.4 changes are quite different from the others.
 
 (issue ASTERISK-15347)
 Reported by: Chainsaw
 Tested by: qwell
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=241229

By: Digium Subversion (svnbot) 2010-01-19 11:42:11.000-0600

Repository: asterisk
Revision: 241230

U   trunk/Makefile

------------------------------------------------------------------------
r241230 | qwell | 2010-01-19 11:42:11 -0600 (Tue, 19 Jan 2010) | 10 lines

Allow parallel make (-j) to work properly.

After some back and forth with the reporter, we came up with the necessary changes.

(closes issue ASTERISK-15347)
Reported by: Chainsaw
Patches:
     asterisk-1.6.2.1-parallel-make-minimal.patch uploaded by Chainsaw (license 723)
Tested by: Chainsaw, qwell

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=241230

By: Digium Subversion (svnbot) 2010-01-19 11:42:42.000-0600

Repository: asterisk
Revision: 241231

_U  branches/1.6.0/
U   branches/1.6.0/Makefile

------------------------------------------------------------------------
r241231 | qwell | 2010-01-19 11:42:42 -0600 (Tue, 19 Jan 2010) | 17 lines

Merged revisions 241230 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
 r241230 | qwell | 2010-01-19 11:42:10 -0600 (Tue, 19 Jan 2010) | 10 lines
 
 Allow parallel make (-j) to work properly.
 
 After some back and forth with the reporter, we came up with the necessary changes.
 
 (closes issue ASTERISK-15347)
 Reported by: Chainsaw
 Patches:
       asterisk-1.6.2.1-parallel-make-minimal.patch uploaded by Chainsaw (license 723)
 Tested by: Chainsaw, qwell
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=241231

By: Digium Subversion (svnbot) 2010-01-19 11:43:10.000-0600

Repository: asterisk
Revision: 241232

_U  branches/1.6.1/
U   branches/1.6.1/Makefile

------------------------------------------------------------------------
r241232 | qwell | 2010-01-19 11:43:10 -0600 (Tue, 19 Jan 2010) | 17 lines

Merged revisions 241230 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
 r241230 | qwell | 2010-01-19 11:42:10 -0600 (Tue, 19 Jan 2010) | 10 lines
 
 Allow parallel make (-j) to work properly.
 
 After some back and forth with the reporter, we came up with the necessary changes.
 
 (closes issue ASTERISK-15347)
 Reported by: Chainsaw
 Patches:
       asterisk-1.6.2.1-parallel-make-minimal.patch uploaded by Chainsaw (license 723)
 Tested by: Chainsaw, qwell
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=241232

By: Digium Subversion (svnbot) 2010-01-19 11:43:41.000-0600

Repository: asterisk
Revision: 241233

_U  branches/1.6.2/
U   branches/1.6.2/Makefile

------------------------------------------------------------------------
r241233 | qwell | 2010-01-19 11:43:40 -0600 (Tue, 19 Jan 2010) | 17 lines

Merged revisions 241230 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
 r241230 | qwell | 2010-01-19 11:42:10 -0600 (Tue, 19 Jan 2010) | 10 lines
 
 Allow parallel make (-j) to work properly.
 
 After some back and forth with the reporter, we came up with the necessary changes.
 
 (closes issue ASTERISK-15347)
 Reported by: Chainsaw
 Patches:
       asterisk-1.6.2.1-parallel-make-minimal.patch uploaded by Chainsaw (license 723)
 Tested by: Chainsaw, qwell
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=241233