Closed hrnagel closed 4 months ago
Just so this is easier to find: without the update in #334, there will be errors in Libint tests (make check
) like:
7: In file included from /usr/include/signal.h:328,
7: from /tmp/easybuild/Libint/2.7.2/GCC-12.3.0-lmax-6-cp2k/libint-2.7.2/libint-2.7.2/tests/unit/catch.hpp:8034,
7: from /tmp/easybuild/Libint/2.7.2/GCC-12.3.0-lmax-6-cp2k/libint-2.7.2/libint-2.7.2/tests/unit/test.cc:23:
7: /tmp/easybuild/Libint/2.7.2/GCC-12.3.0-lmax-6-cp2k/libint-2.7.2/libint-2.7.2/tests/unit/catch.hpp:10822:58: error: call to non-constexpr function long int sysconf(int)
7: 10822 | static constexpr std::size_t sigStackSize = 32768 >= MINSIGSTKSZ ? 32768 : MINSIGSTKSZ;
7: | ^~~~~~~~~~~
7: In file included from /usr/include/bits/sigstksz.h:24:
7: /usr/include/unistd.h:640:17: note: long int sysconf(int) declared here
7: 640 | extern long int sysconf (int __name) __THROW;
7: | ^~~~~~~
7: /tmp/easybuild/Libint/2.7.2/GCC-12.3.0-lmax-6-cp2k/libint-2.7.2/libint-2.7.2/tests/unit/catch.hpp:10881:45: error: size of array altStackMem is not an integral constant-expression
7: 10881 | char FatalConditionHandler::altStackMem[sigStackSize] = {};
7: | ^~~~~~~~~~~~
Hi,
The file tests/unit/catch.hpp is outdated. With glibc 2.34, released in August 2021, a constant was changed into a function: link. This means that Libint does not work anymore on any OS released after August 2021. The solution is simple: update catch.hpp to this version.
Best regards,
Henrik