Skip to content

CentOS 7 / GCC 8 Updates, 21.2 branch (2019.07.10.)

The goal of this MR is to make it possible to build the analysis projects (AnalysisBase, AnalysisTop and AthAnalysis) for the x86_64-centos7-gcc8-opt platform.

First off I had to make a number of updates in atlas/atlasexternals, which ended up in atlasexternals-1.0.52. The full list of changes from the previous tag are: atlasexternals@1.0.51...1.0.52

  • Updated AtlasLCG and AtlasCMake to use C++17 for GCC >=7;
  • Updated XRootD, KLFitter and BAT to build successfully with GCC 8 in C++17 mode;
  • Turned off the build of CheckerGccPlugins with GCC >=7;
  • Fixed a mistake in the CLHEP build that caused a build error with new CMake versions;
  • Updated FindGaudi.cmake to behave just a little bit better than it did before.

Then I also had to make a small update in Gaudi, producing Gaudi-v27r1.021. That update is summarised in Gaudi!208 (merged).

Finally, I had to make a number of updates in the code of this repository to fix issues that GCC 6.2 is fine with (in C++14 mode), but GCC 8 takes offence with (in C++17 mode).

  • A bunch of explicit exception declarations had to be removed;
  • An issue with std::unordered_map had to be fixed in CxxUtils;
  • The declaration of ATH_CHECK(...), through AsgTools, had to be fixed for Athena based builds.

The last one was a weird one. I'm still not entirely sure why the code (specifically InDetTrackSelectionTool) builds correctly in AthAnalysis with GCC 6.2. 😕 But with the fix in AsgTools/Check.h it now does so with GCC 8 as well.

Finally I removed a CMake warning from the AthAnalysis configuration. The PerfMonKernel package appeared twice in the project's package_filters.txt file, leading to a warning at the end of the CMake configuration.

@aundrus, once/if this goes in, we should be ready to start x86_64-centos7-gcc8-opt nightlies for the analysis releases. But I'll make a JIRA ticket about that request once we get that far...

Merge request reports