-
Notifications
You must be signed in to change notification settings - Fork 2.2k
fix: update catch to 2.13.5 to fix glibc 2.34 failures #3679
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Do we not need to update anything with the DOWNLOAD_CATCH cmake code? |
Looking at the cmake, apparently not? Neat! |
Hmmm,
Not very descriptive. |
catchorg/Catch2@8f277a5 broke this, I've submitted a fix in catchorg/Catch2#2364. |
I think we can go to 2.13.5, around 2.13.6 introduced the bug. What version fixes this? Was it the constexpr change in 2.13.8? |
Update the downloaded Catch version to 2.13.5, in order to fix build failure on glibc 2.34: ``` In file included from /usr/include/signal.h:328, from /tmp/pybind11/.nox/tests-3-9/tmp/tests/catch/catch.hpp:8030, from /tmp/pybind11/tests/test_embed/catch.cpp:13: /tmp/pybind11/.nox/tests-3-9/tmp/tests/catch/catch.hpp:10818:58: error: call to non-‘constexpr’ function ‘long int sysconf(int)’ 10818 | static constexpr std::size_t sigStackSize = 32768 >= MINSIGSTKSZ ? 32768 : MINSIGSTKSZ; | ^~~~~~~~~~~ In file included from /usr/include/python3.9/Python.h:36, from /tmp/pybind11/include/pybind11/detail/common.h:215, from /tmp/pybind11/include/pybind11/pytypes.h:12, from /tmp/pybind11/include/pybind11/cast.h:13, from /tmp/pybind11/include/pybind11/attr.h:13, from /tmp/pybind11/include/pybind11/pybind11.h:13, from /tmp/pybind11/include/pybind11/embed.h:12, from /tmp/pybind11/tests/test_embed/catch.cpp:4: /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 /tmp/pybind11/tests/test_embed/catch.cpp:13: /tmp/pybind11/.nox/tests-3-9/tmp/tests/catch/catch.hpp:10877:45: error: size of array ‘altStackMem’ is not an integral constant-expression 10877 | char FatalConditionHandler::altStackMem[sigStackSize] = {}; | ^~~~~~~~~~~~ ``` The newest Catch version cannot be used yet because of regression: catchorg/Catch2#2364
Thank you for your help. I've confirmed that 2.13.5 is good enough (2.13.4 is still broken). Let's hope it doesn't have that bug yet. |
It turns out, by using |
Hmm, the test that is broken seems to be because our CMake system doesn't force the remaining CI to downgrade catch. Thoughts @henryiii ? |
There is no working version. 2.13.4 doesn't support GLIBC 2.34 and 2.13.5 introduced the lock that has a |
For the record, I'm not in a hurry to have this fixed (as normally I use system catch), so personally I'm fine with waiting for a fixed Catch version. |
Okay, I think I have an option that is working. It's not testing I have an alternate fix I'll try soon. |
Description
Update the downloaded Catch version to 2.13.8, in order to fix build
failure on glibc 2.34:
Suggested changelog entry: