diff options
author | Miguel de Icaza <miguel@gnome.org> | 2014-05-09 06:26:33 +0400 |
---|---|---|
committer | Miguel de Icaza <miguel@gnome.org> | 2014-05-09 19:27:53 +0400 |
commit | 9adb22769b890d9dec0647eb098ff40a810a4aa6 (patch) | |
tree | 488d72084e9cf976e0750bb4033dd75a6317b662 /mcs/class/Mono.CompilerServices.SymbolWriter/Makefile | |
parent | 366c13fc51f70e2348888d9f35f77a3a01c559b8 (diff) |
[build] Prevent cyclic targets from being built in parallel
Since we are invoking make recursively to satisfy the dependencies
for any of the cyclic components, we need to inform make to not try
to parallelize any work on any of the cyclic dependencies, otherwise
multiple builds will execute building the same binary, and the result
will be truncated outputs.
For example, System's Makefile would launch all the parallel builds for
the dependencies:
$(secxml_libdir)/System.dll \
$(the_libdir_base)System.Xml.dll \
$(the_libdir_base)Mono.Security.dll \
$(bare_libdir)/System.dll
They could be launched in parallel, and in turn the makefiles on those
directories might try simultaneously to invoke recursively a component
that has not been built yet.
So we use .NOTPARALLEL to flag all the cyclic dependencies on a given
directory to instruct make to not run those in parallel.
Diffstat (limited to 'mcs/class/Mono.CompilerServices.SymbolWriter/Makefile')
-rw-r--r-- | mcs/class/Mono.CompilerServices.SymbolWriter/Makefile | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/mcs/class/Mono.CompilerServices.SymbolWriter/Makefile b/mcs/class/Mono.CompilerServices.SymbolWriter/Makefile index 18f44bfc439..a41385133e4 100644 --- a/mcs/class/Mono.CompilerServices.SymbolWriter/Makefile +++ b/mcs/class/Mono.CompilerServices.SymbolWriter/Makefile @@ -20,4 +20,6 @@ include ../../build/library.make $(build_lib): $(bare_libdir)/System.dll $(bare_libdir)/System.dll: - (cd ../System; make $@)
\ No newline at end of file + (cd ../System; make $@) + +.NOTPARALLEL: $(bare_libdir)/System.dll
\ No newline at end of file |