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-0600 | Date Closed: | 2010-01-19 11:43:43.000-0600 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | 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 |