Drop patches accepted upstream: root-adjust-allowed-test-difference-for-32-bit-ix86.patch root-crypto.patch root-js-syntax.patch root-missing-header.patch root-set-cache-file-dir.patch root-stressgraphics-ref.patch root-test-compilation-epel7.patch root-test-subdirs.patch root-unique-filenames.patch Dropped subpackages: root-rootd (obsolete - use xrootd) root-proofd (obsolete - use root-xproofd) root-proof-pq2 New ROOT 7 subpackage: root-graf3d-eve7 root-gui-webgui6 Make tutorial/v7/line.cxx run in batch mode
41 lines
1.7 KiB
Diff
41 lines
1.7 KiB
Diff
From b587d85a5fc8f706362396dc347830f16797b1f2 Mon Sep 17 00:00:00 2001
|
|
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
|
Date: Tue, 16 Jan 2018 10:25:50 +0100
|
|
Subject: [PATCH] Reduce the needed memory for compilation
|
|
|
|
The linking of rootcling_stage1 and libCling requires a lot of memory.
|
|
Since these are linked from mostly the same objects, the build is ready
|
|
to link them at the same time. If you make a parallel build this means
|
|
that the two targets that require the most amount of memory are being
|
|
linked in parallel. This exhausts the available memory, and the
|
|
computer starts swapping.
|
|
|
|
This adds a dependency of one of the targets to the other. The dependency is
|
|
not really there since it is not needed for building, but it prevents the
|
|
two memory consuming targets to be built in parallel.
|
|
|
|
A similar dependency existed before the code latest code changes
|
|
(see commit 2638f6fc7f54b0995f2f9d60363daaf8aae2386e), then between
|
|
rootcling and libCling.
|
|
---
|
|
core/metacling/src/CMakeLists.txt | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
diff --git a/core/metacling/src/CMakeLists.txt b/core/metacling/src/CMakeLists.txt
|
|
index eccd77681d..df941eb3b7 100644
|
|
--- a/core/metacling/src/CMakeLists.txt
|
|
+++ b/core/metacling/src/CMakeLists.txt
|
|
@@ -86,6 +86,10 @@ ROOT_LINKER_LIBRARY(Cling
|
|
$<TARGET_OBJECTS:MetaCling>
|
|
LIBRARIES ${CLING_LIBRARIES} ${LINK_LIBS} ${CLING_PLUGIN_LINK_LIBS})
|
|
|
|
+# The dependency on rootcling_stage1 was added to prevent Cling (libCling) and
|
|
+# rootcling_stage1 from being linked in parallel.
|
|
+# This avoids doing two memory consuming operations in parallel.
|
|
+add_dependencies(Cling rootcling_stage1)
|
|
|
|
if(MSVC)
|
|
set_target_properties(Cling PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
|
|
--
|
|
2.20.1
|
|
|