Skip to content

Gaudi C++ Standard Fix, main branch (2024.01.22.)

Add explicit setting for GAUDI_CXX_STANDARD. So far it was instead auto-filled by Gaudi's CMake code. Based on information gathered from the ROOT instance that Gaudi would be built against. But this broke with the very latest version of ROOT, as described in ATLINFR-5220.

Unfortunately with this fix the build is still not successful. The version of Gaudi that we build by default, fails with:

In file included from /data/hdd-4tb/projects/externals/build/src/Gaudi/GaudiHive/src/HiveNumbers.cpp:12:
/data/hdd-4tb/projects/externals/build/src/Gaudi/GaudiHive/src/HiveNumbers.h:36:16: error: 'spin_rw_mutex_v3' in namespace 'tbb' does not name a type
   36 |   typedef tbb::spin_rw_mutex_v3 HiveNumbersMutex;
      |                ^~~~~~~~~~~~~~~~
/data/hdd-4tb/projects/externals/build/src/Gaudi/GaudiHive/src/HiveNumbers.h:43:12: error: 'HiveNumbersMutex' does not name a type; did you mean 'HiveNumbers'?
   43 |     static HiveNumbersMutex m_genMutex;
      |            ^~~~~~~~~~~~~~~~
      |            HiveNumbers
/data/hdd-4tb/projects/externals/build/src/Gaudi/GaudiHive/src/HiveNumbers.h: In member function 'StatusCode HiveRndm::HiveNumbers::shootArray(std::vector<double>&, long int, long int)':
/data/hdd-4tb/projects/externals/build/src/Gaudi/GaudiHive/src/HiveNumbers.h:92:11: error: 'HiveNumbersMutex' has not been declared
   92 |           HiveNumbersMutex::scoped_lock lock( m_genMutex );
      |           ^~~~~~~~~~~~~~~~
/data/hdd-4tb/projects/externals/build/src/Gaudi/GaudiHive/src/HiveNumbers.cpp: At global scope:
/data/hdd-4tb/projects/externals/build/src/Gaudi/GaudiHive/src/HiveNumbers.cpp:22:11: error: 'HiveNumbersMutex' in namespace 'HiveRndm' does not name a type; did you mean 'HiveNumbers'?
   22 | HiveRndm::HiveNumbersMutex HiveRndm::HiveNumbers::m_genMutex;
      |           ^~~~~~~~~~~~~~~~
      |           HiveNumbers

and:

In file included from /data/hdd-4tb/projects/externals/build/src/Gaudi/GaudiHive/src/CPUCruncher.cpp:13:
/data/hdd-4tb/projects/externals/build/src/Gaudi/GaudiHive/src/HiveNumbers.h:36:16: error: 'spin_rw_mutex_v3' in namespace 'tbb' does not name a type
   36 |   typedef tbb::spin_rw_mutex_v3 HiveNumbersMutex;
      |                ^~~~~~~~~~~~~~~~
/data/hdd-4tb/projects/externals/build/src/Gaudi/GaudiHive/src/HiveNumbers.h:43:12: error: 'HiveNumbersMutex' does not name a type; did you mean 'HiveNumbers'?
   43 |     static HiveNumbersMutex m_genMutex;
      |            ^~~~~~~~~~~~~~~~
      |            HiveNumbers
/data/hdd-4tb/projects/externals/build/src/Gaudi/GaudiHive/src/HiveNumbers.h: In member function 'StatusCode HiveRndm::HiveNumbers::shootArray(std::vector<double>&, long int, long int)':
/data/hdd-4tb/projects/externals/build/src/Gaudi/GaudiHive/src/HiveNumbers.h:92:11: error: 'HiveNumbersMutex' has not been declared
   92 |           HiveNumbersMutex::scoped_lock lock( m_genMutex );
      |           ^~~~~~~~~~~~~~~~

and finally:

/data/hdd-4tb/projects/externals/build/src/Gaudi/GaudiHive/src/AvalancheSchedulerSvc.cpp:38:10: fatal error: tbb/tbb_stddef.h: No such file or directory
   38 | #include "tbb/tbb_stddef.h"
      |          ^~~~~~~~~~~~~~~~~~

@clemenci, @fwinkl, @leggett are these fixed in Gaudi master yet? How should we handle these? 🤔

Merge request reports