tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

devel/ncurses fails to build (C++ issue)



Hi!

When I try to build devel/ncurses from pkgsrc-current on Fedora Linux (with gcc 15.1.1), I get a whole bunch of C++ errors in the C++ bindings:

make[1]: Entering directory '/home/bsiegert/pkgsrc/devel/ncurses/work/ncurses-6.5/c++' libtool --tag=CXX --silent --mode=compile c++ -DHAVE_CONFIG_H -DBUILDING_NCURSES_CXX -I../c++ -I. -I../include -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG -O2 -c ../c++/cursesf.cc -o ../obj_lo/cursesf.lo
In file included from /usr/include/c++/15/bits/move.h:37,
                 from /usr/include/c++/15/bits/exception_ptr.h:41,
                 from /usr/include/c++/15/exception:168,
                 from /usr/include/c++/15/ios:43,
                 from /usr/include/c++/15/bits/ostream.h:43,
                 from /usr/include/c++/15/ostream:42,
                 from /usr/include/c++/15/iostream:43,
                 from ../c++/etip.h:351,
                 from ../c++/cursesw.h:52,
                 from ../c++/cursesp.h:41,
                 from ../c++/cursesf.h:41,
                 from ../c++/cursesf.cc:36:
/usr/include/c++/15/type_traits:360:12: error: redefinition of 'struct std::__is_integral_helper<unsigned char>'
  360 |     struct __is_integral_helper<unsigned char>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/15/type_traits:348:12: note: previous definition of 'struct std::__is_integral_helper<unsigned char>'
  348 |     struct __is_integral_helper<bool>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/15/bits/exception_ptr.h: In member function 'std::__exception_ptr::exception_ptr::operator NCURSES_BOOL() const': /usr/include/c++/15/bits/exception_ptr.h:162:16: error: invalid conversion from 'void*' to 'NCURSES_BOOL' {aka 'unsigned char'} [-fpermissive]
  162 |       { return _M_exception_object; }
      |                ^~~~~~~~~~~~~~~~~~~
      |                |
      |                void*
In file included from /usr/include/c++/15/exception:169:
/usr/include/c++/15/bits/nested_exception.h: In member function 'void std::nested_exception::rethrow_nested() const': /usr/include/c++/15/bits/nested_exception.h:78:11: error: invalid user-defined conversion from 'const std::__exception_ptr::exception_ptr' to 'bool' [-fpermissive]
   78 |       if (_M_ptr)
      |           ^~~~~~
/usr/include/c++/15/bits/exception_ptr.h:161:16: note: candidate is: 'std::__exception_ptr::exception_ptr::operator NCURSES_BOOL() const' (near match)
  161 |       explicit operator bool() const noexcept
      |                ^~~~~~~~
/usr/include/c++/15/bits/exception_ptr.h:161:16: note: return type 'NCURSES_BOOL' {aka 'unsigned char'} of explicit conversion function cannot be converted to 'bool' with a qualification conversion
[...]

Any ideas? I ran into this during a pkgrrxx run, but it could have been a gcc update in Fedora.

--
Benny


Home | Main Index | Thread Index | Old Index