To complete a bit. I think my yesterday experience might be useful. When moving to XCode 9 I had this problem with TString which is now solved. Yesterday I installed MacOS 10.13 (Xcode 9 was installed before). After having installed MacOS 10.13 ROOT did not compile anymore. I had to do xcode-select --install to make it work again.
TBB is Intel’s “Threading Building Blocks” library, it’s used internally by ROOT in its multi-threading features.
I think you can turn off its compilation by setting -Dimt=OFF (therefore deactivating Implicit Multi-Threading). @amadio or @dpiparo know more than me on the topic, let’s ping them
It would be interesting to know why it failed in the first place though – if you have a second please take a look at /Users/dinardo/root/myBuild/TBB-prefix/src/TBB-stamp/TBB-build-*.log and post the content here.
you can de-activate the build of TBB at the price of getting a fully sequential ROOT. I support @eguiraud observation and would like to see the logs so to be able to solve your problem rather than working it around.
Dear @dpiparo and @eguiraud many thanks for your reply.
Here are some more observations.
The error message is the following:
[ 71%] Performing build step for 'TBB'
cd /Users/dinardo/root_v6.11.02_master/myBuild/TBB-prefix/src/TBB && /Applications/CMake.app/Contents/bin/cmake -P /Users/dinardo/root_v6.11.02_master/myBuild/TBB-prefix/src/TBB-stamp/TBB-build-RelWithDebInfo.cmake
CMake Error at /Users/dinardo/root_v6.11.02_master/myBuild/TBB-prefix/src/TBB-stamp/TBB-build-RelWithDebInfo.cmake:16 (message):
Command failed: 2
'make' 'compiler=clang' 'CXXFLAGS= -mno-rtm' 'CPLUS=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++' 'CONLY=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc'
make: *** [TBB-prefix/src/TBB-stamp/TBB-build] Error 1
make: *** [CMakeFiles/TBB.dir/all] Error 2
make: *** [all] Error 2
Here is the content of
make: ../../build/Makefile.tbb: No such file or directory
make: *** No rule to make target `../../build/Makefile.tbb'. Stop.
make: *** [tbb] Error 2
And here is the content of
Created ./build/macos_intel64_clang_cc9.0.0 Found CUDA installation: /usr/local/cuda, version unknown_os10.12.6_release and ..._debug directories
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C "./build/macos_intel64_clang_cc9.0.0 Found CUDA installation: /usr/local/cuda, version unknown_os10.12.6_debug" -r -f ../../build/Makefile.tbb cfg=debug
Indeed I do have CUDA installed, but as you might know better than me, CUDA is always behind with respect to Xcode updates, therefore my CUDA compiler is not compatible with Xcode 9.0 right now.
The point is that I don’t understand why this has anything to do with ROOT.
Can you please help me out ?
Yes, I could disable IMT with -Dimt=OFF but I rather not to do that if possible.
Ah, no CUDA does not have anything to do with your problem.
You are installing ROOT without an active internet connection and ROOT fails to download TBB. This is bad behavior on the part of the build system, I will report it.
For now, either install ROOT with -Dimt=OFF so that it does not try to download and install TBB, or fire up your WiFi when installing ROOT.
many thanks for your prompt reply.
Actually I do have WiFi on.
I’m constantly working connected to internet.
So, I’m not sure what should I do more than this.
Are there other flags that I need to turn on ?
For instance there might be some protections under
my “Security&Privacy” of my MAC that I need to disable ?
By the way, what is TBB ?
Can I install it manually ?
as I mentioned above Intel’s Threading Building Blocks is the library that powers ROOT’s internal parallelization technology.
I am not sure why you should not be able to download it if you have an active internet connection (maybe you are behind a very restrictive firewall?).
You can certainly try to install it manually, and ROOT should pick it up automatically if it finds it in your system. You can download it from here, compile it and the follow the instructions here to set the environment variables correctly.