serge-sans-paille / frozen

a header-only, constexpr alternative to gperf for C++14 users
Apache License 2.0
1.27k stars 103 forks source link

Building tests fail because of incompatible catch2 version. #138

Closed Thelta closed 2 years ago

Thelta commented 2 years ago

While building tests, i got this error message.

In file included from /usr/include/signal.h:328,
                 from /home/mati/.cache/yay/frozen-git/src/frozen-git/tests/catch.hpp:8034,
                 from /home/mati/.cache/yay/frozen-git/src/frozen-git/tests/test_main.cpp:2:
/home/mati/.cache/yay/frozen-git/src/frozen-git/tests/catch.hpp:10822:58: error: call to non-'constexpr' function 'long int sysconf(int)'
10822 |     static constexpr std::size_t sigStackSize = 32768 >= MINSIGSTKSZ ? 32768 : MINSIGSTKSZ;
      |                                                          ^~~~~~~~~~~
In file included from /usr/include/c++/11.2.0/bits/atomic_wait.h:44,
                 from /usr/include/c++/11.2.0/bits/atomic_base.h:41,
                 from /usr/include/c++/11.2.0/bits/shared_ptr_atomic.h:33,
                 from /usr/include/c++/11.2.0/memory:78,
                 from /home/mati/.cache/yay/frozen-git/src/frozen-git/tests/catch.hpp:2943,
                 from /home/mati/.cache/yay/frozen-git/src/frozen-git/tests/test_main.cpp:2:
/usr/include/unistd.h:640:17: note: 'long int sysconf(int)' declared here
  640 | extern long int sysconf (int __name) __THROW;
      |                 ^~~~~~~
In file included from /home/mati/.cache/yay/frozen-git/src/frozen-git/tests/test_main.cpp:2:
/home/mati/.cache/yay/frozen-git/src/frozen-git/tests/catch.hpp:10881:45: error: size of array 'altStackMem' is not an integral constant-expression
10881 |     char FatalConditionHandler::altStackMem[sigStackSize] = {};
      |                                             ^~~~~~~~~~~~
make[2]: *** [tests/CMakeFiles/frozen.tests.dir/build.make:104: tests/CMakeFiles/frozen.tests.dir/test_main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:900: tests/CMakeFiles/frozen.tests.dir/all] Error 2
make: *** [Makefile:166: all] Error 2

It seems current version of catch2 in this repo and recent versions of glibc is incompatible. Updating Catch2 fixes the problem.

serge-sans-paille commented 2 years ago

Thanks for the report, can you propose a PR that updates catch2 ?