Bump Spack and DLA-Future in CI
What's the state of this PR? Anything I could do to help?
Ah. I did not realize this was failing. I'll look into it.
How should we proceed with this PR?
Sorry, I am working on lifting DLA-Future's Fortran interface out of CP2K into a standalone package so that we can have a slimmer integration and also add the standard and generalised eigensolver for complex types.
I was hoping to tackle this PR with the new integration, however it's taking a bit longer than planned. I'll try to bump the Spack version again and then look more closely into it if the issue persists.
This is more annoying than I thought... I'll work locally with the Docker container and push a solution when it's ready.
I confirmed my suspicion that the problem appears after the introduction of the gcc-runtime package. On install, this packages copies the binaries internally, so the warning is spurious.
I think I never saw this locally because I'm using spack build-env instead of activating an environment with the default view. It is still not clear to me how to best fix this within the constraints discussed in https://github.com/cp2k/cp2k/pull/3149 and https://github.com/cp2k/cp2k/pull/3154. I'll have another look at this next week.
In the meantime, an ugly workaround is to remove the libgomp.so copy made by gcc-runtime.
Our local Spack aficionado @albestro helped me to investigate this issue, and he suggested to exclude gcc-runtime from the environment view. This prevents libgomp.so to be added to the view and therefore CMake only finds the original library in /usr/lib/gcc/x86_64-linux-gnu/11.
It seems odd that Spack still builds its own gcc-runtime after it picked up the external gcc. In any case, I'm glad you found a good workaround.
It seems odd that Spack still builds its own gcc-runtime after it picked up the external gcc. In any case, I'm glad you found a good workaround.
Just for clarity, spack is not "building" a gcc-runtime, indeed it is copying the compiler libraries needed for runtime from the compiler you are using. This is useful in case the compiler is removed, but whatever has been built will still work correctly.
The warning you get in the CMake is a legit warning, because it is not checking that those libraries are actually the same, but we know they are.