OSX build, tbb and etc/allDict.cxx.pch woes

Hi,

Just a report of some trouble I had today building a binary tarball on latest everything osx. This was with master as of 7f4e60a7 but I don’t think this really matters, esp not for the tbb issue.

  1. bultin_tbb fails as clang -v also reports cuda version and then tbb/src/build/macosx.inc (just under ifndef runtime) parses this into clang_version and creates a monstrous arch directory with spaces and newlines and fails to cd into it from top-level make -C in target tbb. Adding head -n1 into the offending pipeline helps it out. This happens for both tbb2017_U5 and tbb2018_U1. I can provide more details if anybody needs them.

  2. cmake -DCMAKE_INSTALL_PREFIX=/mt-dev/root-6.13.2-mt -P cmake_install.cmake
    fails to copy etc/allDict.cxx.pch for some reason. There is a pch file there but it is wrong (strange, right). Just copying it over from the build directory solves the problem.

Cheers,
\m

To build TBB when CUDA is installed, try the patch (apply to the ROOT build directory after a failed attempt)

*** TBB-prefix-moved.1/src/TBB/build/macos.inc	2017-03-03 05:34:15.000000000 -0600
--- TBB-prefix/src/TBB/build/macos.inc	2017-10-18 15:16:33.000000000 -0500
*************** ifndef arch
*** 49,55 ****
  endif
  
  ifndef runtime
!   clang_version:=$(shell clang -v 2>&1 >/dev/null | grep version | sed -e "s/.*version \(.*[0-9]\) .*/\1/")
    ifndef os_version
      os_version:=$(shell /usr/bin/sw_vers -productVersion)
    endif
--- 49,55 ----
  endif
  
  ifndef runtime
!   clang_version:=$(shell clang -v 2>&1 >/dev/null | grep 'LLVM version' | sed -e "s/.*version \(.*[0-9]\) .*/\1/")
    ifndef os_version
      os_version:=$(shell /usr/bin/sw_vers -productVersion)
    endif

Thanks Philippe, I’m fine, I hacked the line in my own way (adding head -n1) :slight_smile:

I was mostly posting this for other people to see the issue as it took me a while to figure out what is going wrong.

Best,
\m

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.