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
AtlasLCGandAtlasCMaketo use C++17 for GCC >=7; - Updated
XRootD,KLFitterandBATto build successfully with GCC 8 in C++17 mode; - Turned off the build of
CheckerGccPluginswith GCC >=7; - Fixed a mistake in the
CLHEPbuild that caused a build error with new CMake versions; - Updated
FindGaudi.cmaketo 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_maphad to be fixed inCxxUtils; - The declaration of
ATH_CHECK(...), throughAsgTools, 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. 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...