potassco / clasp

⚙️ A conflict-driven nogood learning answer set solver

Home Page:https://potassco.org/clasp/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Please update to Catch2 (2.13.5+)

slyon opened this issue · comments

The catch1 library/test system is unmaintained and not compatible with glibc v2.34+ anymore.
SIGSTKSZ is not a constant anymore as of glibc 2.34+ – Catch2 has been updated to handle such situations (catchorg/Catch2#2178), while Catch1 remains unmaintained, which makes the tests of clasp fail to build on newer systems (e.g. Ubuntu 22.04).

Please update to a newer version of catch2 or – even better – make use of the system provided catch version, e.g. via their CMake integration, as discussed in potassco/libpotassco#12

In file included from /<<PKGBUILDDIR>>/libpotassco/tests/main.cpp:19:
/<<PKGBUILDDIR>>/libpotassco/tests/catch.hpp:6415:41: error: array bound is not an integer constant before ‘]’ token
 6415 |         static char altStackMem[SIGSTKSZ];
      |                                         ^
/<<PKGBUILDDIR>>/libpotassco/tests/catch.hpp: In constructor ‘Catch::FatalConditionHandler::FatalConditionHandler()’:
/<<PKGBUILDDIR>>/libpotassco/tests/catch.hpp:6434:30: error: ‘altStackMem’ was not declared in this scope
 6434 |             sigStack.ss_sp = altStackMem;
      |                              ^~~~~~~~~~~
/<<PKGBUILDDIR>>/libpotassco/tests/catch.hpp: At global scope:
/<<PKGBUILDDIR>>/libpotassco/tests/catch.hpp:6466:53: error: array bound is not an integer constant before ‘]’ token
 6466 |     char FatalConditionHandler::altStackMem[SIGSTKSZ] = {};
      |                                                     ^
make[4]: *** [libpotassco/tests/CMakeFiles/test_potassco_opts.dir/build.make:121: libpotassco/tests/CMakeFiles/test_potassco_opts.dir/main.cpp.o] Error 1
make[4]: Leaving directory '/<<PKGBUILDDIR>>/build.dir/hardening_mt'
make[3]: *** [CMakeFiles/Makefile2:260: libpotassco/tests/CMakeFiles/test_potassco_opts.dir/all] Error 2
make[3]: *** Waiting for unfinished jobs....
[ 31%] Building CXX object libpotassco/tests/CMakeFiles/test_potassco_lp.dir/main.cpp.o
cd /<<PKGBUILDDIR>>/build.dir/hardening_mt/libpotassco/tests && /usr/bin/g++-10  -I/<<PKGBUILDDIR>>/libpotassco/tests -I/<<PKGBUILDDIR>>/libpotassco -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -O3 -Wall -Wdate-time -D_FORTIFY_SOURCE=2 -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 -DNDEBUG -std=c++11 -MD -MT libpotassco/tests/CMakeFiles/test_potassco_lp.dir/main.cpp.o -MF CMakeFiles/test_potassco_lp.dir/main.cpp.o.d -o CMakeFiles/test_potassco_lp.dir/main.cpp.o -c /<<PKGBUILDDIR>>/libpotassco/tests/main.cpp
In file included from /<<PKGBUILDDIR>>/libpotassco/tests/main.cpp:19:
/<<PKGBUILDDIR>>/libpotassco/tests/catch.hpp:6415:41: error: array bound is not an integer constant before ‘]’ token
 6415 |         static char altStackMem[SIGSTKSZ];
      |                                         ^
/<<PKGBUILDDIR>>/libpotassco/tests/catch.hpp: In constructor ‘Catch::FatalConditionHandler::FatalConditionHandler()’:
/<<PKGBUILDDIR>>/libpotassco/tests/catch.hpp:6434:30: error: ‘altStackMem’ was not declared in this scope
 6434 |             sigStack.ss_sp = altStackMem;
      |                              ^~~~~~~~~~~
/<<PKGBUILDDIR>>/libpotassco/tests/catch.hpp: At global scope:
/<<PKGBUILDDIR>>/libpotassco/tests/catch.hpp:6466:53: error: array bound is not an integer constant before ‘]’ token
 6466 |     char FatalConditionHandler::altStackMem[SIGSTKSZ] = {};
      |                                                     ^

@slyon Thanks for the heads up.