Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-9066

Suppression of TBB warnings (c9d74075911) leads to missing dependency

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Fixed
    • Blocker
    • 6.16/00
    • master
    • Build System
    • None
    • MacOS, built-in TBB

    Description

      When the built-in TBB is used is TBB_INCLUDE_DIRS is set to

      ${CMAKE_BINARY_DIR}/include

      To suppress warning the syntax

      include_directories(SYSTEM ${TBB_INCLUDE_DIRS})

      This leads the directory where the ROOT headers are to be marked as "system".
      On MacOS, this means that the line

      -isystem include

      is added to the compilation line.

      When clang generates dependency (at least with the flag we are using), it does *NOT* include any system header in the list produced by -MF.
      In this case this means that NO ROOT headers is included in the .d files. Leading of course to corrupt builds as soon as any of the header that should have been listed is modied,

      See for example

      ninja -t deps  tree/treeplayer/CMakeFiles/TreePlayer.dir/src/TFormLeafInfo.cxx.o
      tree/treeplayer/CMakeFiles/TreePlayer.dir/src/TFormLeafInfo.cxx.o: #deps 1, deps mtime 1508358059 (VALID)
          /Users/pcanal/root_working/code/rootcling/tree/treeplayer/src/TFormLeafInfo.cxx
       

      or

      $ ninja -t deps core/imt/CMakeFiles/Imt.dir/src/TTaskGroup.cxx.o
      core/imt/CMakeFiles/Imt.dir/src/TTaskGroup.cxx.o: #deps 1, deps mtime 1508351306 (VALID)
          /Users/pcanal/root_working/code/rootcling/core/imt/src/TTaskGroup.cxx

      Cheers,
      Philippe.

      Attachments

        Activity

          People

            axel Axel Naumann
            pcanal Philippe Canal
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:
              Actual End: