GeoModel compilation failure with C++20
Hi,
as discussed in https://its.cern.ch/jira/browse/ATLINFR-4959 we are trying to setup a dev4 nightly build on the platform x86_64-el9-gcc13-opt with C++20 support enabled. Unfortunately there are C++20 related compilation problems of GeoModel 4.4.3 in a manual local build:
In file included from /home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoGeometryPluginLoad
er.h:7,
from /home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelTools/GMSTATISTICS/src/gmstatistics.cxx:6:
/home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPluginLoader.h:19:27: error: expected unqualified-id before ')' token
19 | GeoPluginLoader<Plugin>();
| ^
/home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPluginLoader.h:37:1: error: no declaration matches 'GeoPluginLoader<Plugin>::GeoPluginLoader()'
37 | GeoPluginLoader<Plugin>::GeoPluginLoader () {
| ^~~~~~~~~~~~~~~~~~~~~~~
/home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPluginLoader.h:29:3: note: candidate is: 'GeoPluginLoader<Plugin>::GeoPluginLoader(const GeoPluginLoader<Plugin>&)'
29 | GeoPluginLoader (const GeoPluginLoader &)=delete;
| ^~~~~~~~~~~~~~~
/home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPluginLoader.h:14:31: note: 'class GeoPluginLoader<Plugin>' defined here
14 | template <class Plugin> class GeoPluginLoader
| ^~~~~~~~~~~~~~~
no
checking for fpregset_t in sys/procfs.h... In file included from /home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoGeometryPluginLoader.h:7,
from /home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelTools/GMCAT/src/gmcat.cxx:10:
/home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPluginLoader.h:19:27: error: expected unqualified-id before ')' token
19 | GeoPluginLoader<Plugin>();
| ^
/home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPluginLoader.h:37:1: error: no declaration matches 'GeoPluginLoader<Plugin>::GeoPluginLoader()'
37 | GeoPluginLoader<Plugin>::GeoPluginLoader () {
| ^~~~~~~~~~~~~~~~~~~~~~~
/home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPluginLoader.h:29:3: note: candidate is: 'GeoPluginLoader<Plugin>::GeoPluginLoader(const GeoPluginLoader<Plugin>&)'
29 | GeoPluginLoader (const GeoPluginLoader &)=delete;
| ^~~~~~~~~~~~~~~
/home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPluginLoader.h:14:31: note: 'class GeoPluginLoader<Plugin>' defined here
14 | template <class Plugin> class GeoPluginLoader
| ^~~~~~~~~~~~~~~
no
checking for prgregset_t in sys/procfs.h... /home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelTools/GMCAT/src/gmcat.cxx: In function 'int main(int, char**)':
/home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelTools/GMCAT/src/gmcat.cxx:143:29: error: no matching function for call to 'GeoPluginLoader<GeoVGeometryPlugin>::GeoPluginLoader()'
143 | GeoGeometryPluginLoader loader;
| ^~~~~~
/home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPluginLoader.h:29:3: note: candidate: 'GeoPluginLoader<Plugin>::GeoPluginLoader(const GeoPluginLoader<Plugin>&) [with Plugin = GeoVGeometryPlugin]' (deleted)
29 | GeoPluginLoader (const GeoPluginLoader &)=delete;
| ^~~~~~~~~~~~~~~
/home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPluginLoader.h:29:3: note: candidate expects 1 argument, 0 provided
yes
checking for prfpregset_t in sys/procfs.h... yes
checking for prgregset32_t in sys/procfs.h... /home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelTools/GMSTATISTICS/src/gmstatistics.cxx: In function 'int main(int, char**)':
/home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelTools/GMSTATISTICS/src/gmstatistics.cxx:140:29: error: no matching function for call to 'GeoPluginLoader<GeoVGeometryPlugin>::GeoPluginLoader()'
140 | GeoGeometryPluginLoader loader;
| ^~~~~~
/home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPluginLoader.h:29:3: note: candidate: 'GeoPluginLoader<Plugin>::GeoPluginLoader(const GeoPluginLoader<Plugin>&) [with Plugin = GeoVGeometryPlugin]' (deleted)
29 | GeoPluginLoader (const GeoPluginLoader &)=delete;
| ^~~~~~~~~~~~~~~
/home/elmsheus/myathena12/build/build/AthenaExternals/src/GeoModel/GeoModelCore/GeoModelKernel/GeoModelKernel/GeoPluginLoader.h:29:3: note: candidate expects 1 argument, 0 provided
Could you please have a look ?
You can build AthenaExternal with C++20 as follows:
./athena/Projects/Athena/build_externals.sh -c -t Release -x -DCMAKE_CXX_STANDARD=20
Cheers, Johannes