From 9adb22769b890d9dec0647eb098ff40a810a4aa6 Mon Sep 17 00:00:00 2001 From: Miguel de Icaza Date: Thu, 8 May 2014 22:26:33 -0400 Subject: [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. --- mcs/class/Mono.Security/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'mcs/class/Mono.Security/Makefile') diff --git a/mcs/class/Mono.Security/Makefile b/mcs/class/Mono.Security/Makefile index 7fb6e714766..db825677a5b 100644 --- a/mcs/class/Mono.Security/Makefile +++ b/mcs/class/Mono.Security/Makefile @@ -11,4 +11,6 @@ include ../../build/library.make $(build_lib): $(the_libdir_base)bare/System.dll $(the_libdir_base)bare/System.dll: - (cd ../System; $(MAKE) $@) \ No newline at end of file + (cd ../System; $(MAKE) $@) + +.NOTPARALLEL: $(the_libdir_base)bare/System.dll \ No newline at end of file -- cgit v1.2.3