root/root-memory-usage.patch
Mattias Ellert b2cd752635 Update to 6.22.00
Drop patches accepted upstream
  root-FitData-assert-fix.patch
  root-clang-altivec-vector.patch
  root-format-fix.patch
  root-moved-file.patch
  root-xmlmodify-dep.patch
New and improved Python bindings
The new Python bindings can be built for both Python 2 and Python 3
  out of the box. Dropped the workaround in specfile for this (EPEL 7)
Dropped the python3-other packages (EPEL 7)
The new Python bindings has split the TPython interface to a separate
  library. Now in a separate root-tpython package
root-tpython and root-tmva-python are now using Python 3 on EPEL 7
New subpackage root-gui-browsable
New patches (submitted upstream)
  Fix too aggressive -Werror replacements
  Add missing call to TFile::SetCacheFileDir in a TMVA tutorial
  Adjust stressGraphics.ref
  Fix off-by-one error in histogram v7 bin iterator
  Compatibility with python 2.7 versions before 2.7.9
  Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf)
  Fix doxygen issues
  Fix bad regex in TProofMgr
  Compatibility with xrootd 5
2020-07-15 04:44:51 +02:00

42 lines
1.7 KiB
Diff

From 636b26baf214559e209e72b2a14946d0cc18c2f1 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 | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/core/metacling/src/CMakeLists.txt b/core/metacling/src/CMakeLists.txt
index 2923345f7c..b44a4d4115 100644
--- a/core/metacling/src/CMakeLists.txt
+++ b/core/metacling/src/CMakeLists.txt
@@ -114,6 +114,11 @@ 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)
set(cling_exports
--
2.26.2