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
andAtlasCMake
to use C++17 for GCC >=7; - Updated
XRootD
,KLFitter
andBAT
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 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...