FS#64745 - [root] Needs to be built in C++17 mode to support building C++ 17 code
Attached to Project:
Community Packages
Opened by beojan (beojan) - Thursday, 05 December 2019, 12:00 GMT
Last edited by Konstantin Gizdov (kgizdov) - Wednesday, 21 April 2021, 13:57 GMT
Opened by beojan (beojan) - Thursday, 05 December 2019, 12:00 GMT
Last edited by Konstantin Gizdov (kgizdov) - Wednesday, 21 April 2021, 13:57 GMT
|
Details
Could you build ROOT in C++ 17 mode (with -Dcxx17=ON). This
is necessary to support building C++ 17 code that links to
ROOT.
This is what's done in the LCG releases using GCC 7 and above, so doing this isn't departing too far from upstream. By the way, there's also a known ROOT bug that prevents using std::variant with GCC 9 (https://sft.its.cern.ch/jira/browse/ROOT-10220). I've found that building ROOT with GCC 8 works fine even if the linking code is itself built with GCC 9, so that would also be helpful. |
This task depends upon
Closed by Konstantin Gizdov (kgizdov)
Wednesday, 21 April 2021, 13:57 GMT
Reason for closing: Fixed
Additional comments about closing: root 6.24.00-1
Wednesday, 21 April 2021, 13:57 GMT
Reason for closing: Fixed
Additional comments about closing: root 6.24.00-1
However, root-cuda cannot be built with c++17 standard because the CUDA libraries are not compatible with it. root-cuda is thus built with GCC 8 and c++14.
For your std::variant issue - I suggest you try and avoid generating a dictionary unless absolutely necessary. Another option is to follow the suggestion in the bug you linked and circumvent it by disabling or providing a different implementation. In any case that is an upstream bug, not an issue with the package.
As a side note, I have written something on that bug report page.