Apache OpenOffice (AOO) Bugzilla – Issue 83540
Add support for multi processing for native W32 dmake
Last modified: 2013-08-07 15:34:52 UTC
Allow parallel building with native W32 dmake. Currently the -P# (MAXPROCESS) switch is not working.
The following preliminary patch enables the multi process feature for MinGW builds, the build changes for MS compilers are not ready yet. With the patch the following makefile builds a1 and a2 in parallel: D:\w1\cws_src680_dmake412>dmake\dmake.exe -P3 -rf makefile.mk Start a1 Start a2 End a1 End a2 Build all - - - start makefile.mk - - - SHELL:=cmd.exe SHELLFLAGS:=/S /C all : a1 a2 @echo Build all a1 : @echo Start a1 @sleep 4 @echo End a1 a2 : @echo Start a2 @sleep 4 @echo End a2 - - - end makefile.mk - - -
Created attachment 49584 [details] Patch for dmake
The following patch makes dmake buildable with .NET2003 again. I verified that my minimal parallel build testcase also works with that version. I hope this also compiles with MSVC 6.0, but I cannot test that.
Created attachment 49585 [details] Patch for dmake
Both patches committed to CWS dmake412.
Everything is committed and the simple test case works in parallel mode for native W32 dmakes -> FIXED. It would be nice if our testsuite could test MinGW / VC build dmakes, but currently it can not.
Please verify.
Hrmpf, there seems to be a subtle difference that manifests itself only with a 4NT OOo build. The following attached makefile works fine with dmake411 and 4nt, but fails with dmake412. In a regular cmd.exe shell: D:\w1\tin_ws2>dmake412.exe -rf dm_test.mk "Compiler Version 13.10.3077" dmake412.exe: Executing shell macro: +type testfile $(CFLAGSVERSION_CMD) awk: (FILENAME=- FNR=1) warning: error writing standard output (Bad file descriptor) dmake412.exe: Error code 129, while making 'Shell escape' This works fine if cmd.exe is used instead of 4nt :(
Created attachment 49887 [details] Testcase
Created attachment 49889 [details] Patch for native W32 dmake
Created attachment 49955 [details] Patch for dmake
Building OOo is a nice testcase ;) @ause: As is said on IRC I am still a little bit suspicious about the code in unix/rmprq.c, but the bug was not using it and to use the code from the single process only msdos/rmprq.c. A 4nt build with -P2 ran successful until hitting an expected break in m236 in canvas/source/directx. Please verify.
Created attachment 50095 [details] dmake error from "build --all -- -P6"
from tim e to time the build breaks and i get pages of the error attached. will try top get some context
wow, 30000 lines of errors before actually stopping ;) tends to break in extras, but no more information from the log
@ause: Can you try again? I don't think I fixed it, but I added some diagnostics and also caught the loop when quitting.
Some more patches and clean-up changes went in, and ause confirmed that it seems to work now. Setting to FIXED, please verify.
it still does :)
.