GCC 6.2 in AthDerivation (21.2), and Athena (21.9)

Is there a plan to upgrade GCC in AthDerivation and the upgrade physics release?

I was pretty sad to learn that both AthDerivation (in the 21.2 branch) and Athena (in 21.9) are using GCC 6.2. Meanwhile release 22 and the analysis builds for 21.2 are using GCC 8.3.0, which supports C++17.

Beyond GCC 6.2 being deprecated (according to their documentation), this is a problem because it prevents us from using any C++17 features if we want code to be usable in upgrade or current analysis builds.

I guess I should ping @akraszna here, I don’t know if there’s a better person to contact.

1 Like

Hi Dan,

I guess there must be a first time for me for using this interface as well. :stuck_out_tongue:

No, we do not plan to upgrade the GCC version used to build “big” Athena releases in the 21.X branches. Mainly because it would be an unreasonable amount of effort to sort out what happens to the TDAQ dependencies of these projects during such an upgrade.

These releases all use LCG_88. And they build against tdaq-common and dqm-common releases that were also built against LCG_88. As you can see on that link, that old version of LCG was never compiled with GCC 8. Since it was not available yet when that release came out.

Of course nothing in programming is impossible. It could be possible to upgrade 21.2 and 21.9 to newer LCG and TDAQ versions, and at the same time switch them to x86_64-centos7-gcc8-opt. But it would take too much of an effort. :frowning:

So unfortunately you’ll have to stick to C++14 in those branches for ever, and only use newer standards in the master branch…


OK, of course it’s LCG. somehow in my naive mind I’d thought we could just update the compiler. But this would mean updating ROOT (among others), and the train goes off the rails there…

I’m not so worried about AthDerivation: hopefully in the next 6 months we can get the master branch building enough derivations that R&D can be done there. At that point the 21.2 branches don’t need to support development at all.

But 21.9 is another story: given that the upgrade physics group is just starting to move to 21.9, I can only expect that active development will continue well into run 3. At some point people are going to be writing reconstruction software for the upgrade in a release that’s completely divergent from the release that will support the upgrade.

This is already the case of course (given all the work on data handles etc.) but a different version of LCG makes it all the more painful.