When compiling ROOT from source I noticed that most of the compile time is spend for building LLVM. Since I have my own compiled version of LLVM (from source; including clang) I was wondering whether this is necessary? Is it possible to point ROOT to my local compiled version of LLVM or will this disable certain ROOT features? (what features do I have to activate when compiling LLVM? What about Cling?) I guess this is related to setting the ‘builtin_llvm’ flag so I suppose there are reasons why this was set ‘ON’ on default?
If I can use my local LLVM 6: is it safe to activate ROOT’s cxx17 flag?
ROOT Version: Not Provided Platform: Not Provided Compiler: Not Provided
About LLVM, ROOT supports only LLVM 5.0. There are few options how you can use external LLVM, either installing it from OS package manager (for example for Ubuntu) or building by yourself (if you build it by yourself, then just add in your $PATH a location where llvm-config is and add -Dbuiltin_llvm=OFF).
Ok, thanks a lot for your help. I tried this on a Ubuntu test instance and installed clang5.0 and symlinked the corresponding llvm-config. Unfortunately, the compilation time does not decrease with -Dbuiltin_llvm=OFF but this is because ROOT still builds its own clang, right? So this is nothing that I can speed up and my idea of using my custom LLVM compilation is more or less pointless …
ROOT needs a patched clang for the C++ interpreter to work. Even if you build with an external LLVM, unless you have a properly patched clang, you’ll have to build clang as part of ROOT for it to work.