Skip to content

Catch2 fails to compile on Fedora Rawhide #2178

@lzaoral

Description

@lzaoral

Describe the bug
Tests that use Catch2 fail to compile on Fedora Rawhide.

Expected behavior
Tests that use Catch2 compile and execute without any problems on Fedora Rawhide.

Reproduction steps
Try to compile the factorial example from the Catch2 tutorial:

$ c++ test.cpp
In file included from /usr/include/signal.h:315,
                 from catch.hpp:8034,
                 from test.cpp:2:
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/bits/sigstksz.h:24,
                 from /usr/include/signal.h:315,
                 from catch.hpp:8034,
                 from test.cpp:2:
/usr/include/unistd.h:630:17: note: 'long int sysconf(int)' declared here
  630 | extern long int sysconf (int __name) __THROW;
      |                 ^~~~~~~
In file included from test.cpp:2:
catch.hpp:10881:45: error: size of array 'altStackMem' is not an integral constant-expression
10881 |     char FatalConditionHandler::altStackMem[sigStackSize] = {};
      |                                             ^~~~~~~~~~~~

Platform information:

  • OS: latest Fedora Rawhide
  • Compiler+version: gcc (GCC) 11.0.0 20210210 (Red Hat 11.0.0-0)
  • Catch version: v2.13.4

Additional context
This behaviour seems to be related to this change in glibc: https://sourceware.org/git/?p=glibc.git;a=commit;h=6c57d320484988e87e446e2e60ce42816bf51d53

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions