Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:badshah400:branches:science
root6
root6-reduce-compile-memory.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File root6-reduce-compile-memory.patch of Package root6
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(+) Index: root-6.32.00/core/metacling/src/CMakeLists.txt =================================================================== --- root-6.32.00.orig/core/metacling/src/CMakeLists.txt +++ root-6.32.00/core/metacling/src/CMakeLists.txt @@ -118,6 +118,11 @@ ROOT_LINKER_LIBRARY(Cling # When these two link at the same time, they can exhaust the RAM on many machines, since they both link against llvm. add_dependencies(Cling rootcling_stage1) +# 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 ${cling_exports}
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor