Description of problem: Package linbox fails to build from source in Fedora Rawhide. Version-Release number of selected component (if applicable): 1.7.0-2.fc40 Steps to Reproduce: koji build --scratch f40 linbox-1.7.0-2.fc40.src.rpm Additional info: This package is tracked by Koschei. See: https://koschei.fedoraproject.org/package/linbox Reproducible: Always Steps to Reproduce: fedpkg mockbuild --enablerepo=local -- --dnf Actual Results: make[4]: Entering directory '/builddir/build/BUILD/linbox-1.7.0/linbox/algorithms' /bin/sh ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I/usr/include/m4rie -I/usr /include/saclib -O2 -Wall -DNDEBUG -UDEBUG -I/usr/include/flexiblas/ -D__FFLASFFPACK_HAVE_CBLAS=1 -fopenmp -pthread -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_F ORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-pro tector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstac k-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -c -o diophantine-solver.lo d iophantine-solver.C libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I/usr/include/m4rie -I/usr/include/saclib -O2 -Wall -DNDEB UG -UDEBUG -I/usr/include/flexiblas/ -D__FFLASFFPACK_HAVE_CBLAS=1 -fopenmp -pthread -O2 -flto=auto -ffat-lto-objects - fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp ,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/red hat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno- omit-frame-pointer -mno-omit-leaf-frame-pointer -c diophantine-solver.C -fPIC -DPIC -o .libs/diophantine-solver.o In file included from ../../linbox/matrix/dense-matrix.h:37, from ../../linbox/solutions/methods.h:26, from ../../linbox/algorithms/rational-solver.h:41, from ../../linbox/algorithms/diophantine-solver.h:29, from diophantine-solver.C:26: ../../linbox/vector/vector-traits.h:153:29: warning: 'template<class _Arg1, class _Arg2, class _Result> struct std::bi nary_function' is deprecated [-Wdeprecated-declarations] 153 | public std::binary_function<const std::pair<size_t, Element>&, const std::pair<size_t, Element >&, bool > { | ^~~~~~~~~~~~~~~ In file included from /usr/include/c++/14/string:49, from /usr/include/c++/14/bits/locale_classes.h:40, from /usr/include/c++/14/bits/ios_base.h:41, from /usr/include/c++/14/ios:44, from /usr/include/c++/14/ostream:40, from /usr/include/c++/14/iostream:41, from ../../linbox/linbox-config.h:45, from diophantine-solver.C:25: /usr/include/c++/14/bits/stl_function.h:131:12: note: declared here 131 | struct binary_function | ^~~~~~~~~~~~~~~ In file included from ../../linbox/vector/bit-vector.h:191, from ../../linbox/field/gf2.h:39, from ../../linbox/vector/stream-gf2.h:77, from ../../linbox/vector/stream.h:872, from ../../linbox/matrix/densematrix/blas-matrix.h:43, from ../../linbox/matrix/dense-matrix.h:85: ../../linbox/vector/bit-vector.inl:342:55: warning: 'template<class _Category, class _Tp, class _Distance, class _Poin ter, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations] 342 | class BitVector::const_iterator : public std::iterator <std::random_access_iterator_tag, bool> { | ^~~~~~~~ In file included from /usr/include/c++/14/bits/stl_algobase.h:65, from /usr/include/c++/14/bits/specfun.h:43, from /usr/include/c++/14/cmath:3898, from ../../linbox/linbox-config.h:42: /usr/include/c++/14/bits/stl_iterator_base_types.h:127:34: note: declared here 127 | struct _GLIBCXX17_DEPRECATED iterator | ^~~~~~~~ In file included from /usr/include/CL/cl.h:20, from ../../linbox/matrix/matrixdomain/opencl-domain.h:43, from ../../linbox/matrix/matrix-domain.h:74, from ../../linbox/matrix/sparsematrix/sparse-generic.h:80, from ../../linbox/matrix/sparse-matrix.h:70, from ../../linbox/blackbox/lambda-sparse.h:29, from ../../linbox/algorithms/rational-solver.h:44: /usr/include/CL/cl_version.h:22:104: note: '#pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. De faulting to 300 (OpenCL 3.0)' 22 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)") | ^ In file included from ../../linbox/matrix/matrixdomain/opencl-domain-factory.h:45, from ../../linbox/matrix/matrixdomain/opencl-domain.h:974: ../../linbox/algorithms/opencl-environ.h: In constructor 'LinBox::OpenCLEnviron::OpenCLEnviron(std::string, double, st d::vector<std::__cxx11::basic_string<char> >, cl_context, cl_device_id, pthread_mutex_t*, unsigned int)': ../../linbox/algorithms/opencl-environ.h:124:45: warning: '_cl_command_queue* clCreateCommandQueue(cl_context, cl_devi ce_id, cl_command_queue_properties, cl_int*)' is deprecated [-Wdeprecated-declarations] 124 | clCreateCommandQueue( | ~~~~~~~~~~~~~~~~~~~~^ 125 | context, | ~~~~~~~~ 126 | device, | ~~~~~~~ 127 | CL_QUEUE_PROFILING_ENABLE, | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 128 | &errcode); | ~~~~~~~~~ /usr/include/CL/cl.h:1914:1: note: declared here 1914 | clCreateCommandQueue(cl_context context, | ^~~~~~~~~~~~~~~~~~~~ In file included from ../../linbox/matrix/matrixdomain/opencl-domain-factory.h:46: ../../linbox/algorithms/opencl-resource-controller.h: In function 'std::string LinBox::getPlatformName(cl_platform_id) ': ../../linbox/algorithms/opencl-resource-controller.h:95:24: warning: variable 'errcode' set but not used [-Wunused-but -set-variable] 95 | cl_int errcode; | ^~~~~~~ ../../linbox/algorithms/opencl-resource-controller.h: In function 'double LinBox::getPlatformVersion(cl_platform_id)': ../../linbox/algorithms/opencl-resource-controller.h:129:24: warning: variable 'errcode' set but not used [-Wunused-bu t-set-variable] 129 | cl_int errcode; | ^~~~~~~ ../../linbox/algorithms/opencl-resource-controller.h: In function 'std::vector<std::__cxx11::basic_string<char> > LinB ox::getPlatformExtensions(cl_platform_id)': ../../linbox/algorithms/opencl-resource-controller.h:178:24: warning: variable 'errcode' set but not used [-Wunused-bu t-set-variable] 178 | cl_int errcode; | ^~~~~~~ ../../linbox/matrix/matrixdomain/opencl-domain-factory.h: In static member function 'static LinBox::OpenCLMatrixDomain Factory::oclEnviron& LinBox::OpenCLMatrixDomainFactory::oclBuildEnviron(oclEnviron&, _cl_platform_id*&, _cl_device_id* &)': ../../linbox/matrix/matrixdomain/opencl-domain-factory.h:345:66: warning: '_cl_command_queue* clCreateCommandQueue(cl_ context, cl_device_id, cl_command_queue_properties, cl_int*)' is deprecated [-Wdeprecated-declarations] 345 | environ.commandQue = clCreateCommandQueue( | ~~~~~~~~~~~~~~~~~~~~^ 346 | environ.context, | ~~~~~~~~~~~~~~~~ 347 | device, | ~~~~~~~ 348 | 0, | ~~ 349 | &errcode); | ~~~~~~~~~ /usr/include/CL/cl.h:1914:1: note: declared here 1914 | clCreateCommandQueue(cl_context context, | ^~~~~~~~~~~~~~~~~~~~ In file included from ../../linbox/matrix/sparse-matrix.h:76: ../../linbox/matrix/sparsematrix/sparse-ell-matrix.h: In member function 'LinBox::SparseMatrix<_Field, LinBox::SparseM atrixFormat::ELL>::_IndexedIterator<index_iterator, element_iterator, Field>& LinBox::SparseMatrix<_Field, LinBox::Spa rseMatrixFormat::ELL>::_IndexedIterator<index_iterator, element_iterator, Field>::operator=(const LinBox::SparseMatrix <_Field, LinBox::SparseMatrixFormat::ELL>::_IndexedIterator<index_iterator, element_iterator, Field>&)': ../../linbox/matrix/sparsematrix/sparse-ell-matrix.h:1216:44: error: assignment of read-only location '((LinBox::Spars eMatrix<_Field, LinBox::SparseMatrixFormat::ELL>::_IndexedIterator<index_iterator, element_iterator, Field>*)this)->Li nBox::SparseMatrix<_Field, LinBox::SparseMatrixFormat::ELL>::_IndexedIterator<index_iterator, element_iterator, Field> ::_ld' 1216 | _ld = iter._ld ; | ~~~~~~~~~~~^~~~~~~~~~ In file included from ../../linbox/matrix/sparse-matrix.h:77: ../../linbox/matrix/sparsematrix/sparse-ellr-matrix.h: In member function 'LinBox::SparseMatrix<_Field, LinBox::Sparse MatrixFormat::ELL_R>::_Iterator<element_iterator, Field>& LinBox::SparseMatrix<_Field, LinBox::Spmake[4]: Leaving dire ctory '/builddir/build/BUILD/linbox-1.7.0/linbox/algorithms' arseMatrixFormat::ELL_R>::_Iterator<element_iterator, Field>::operator=(const LinBox::SparseMatrix<_Field, LinBox::Spa rseMatrixFormat::ELL_R>::_Iterator<element_iterator, Field>&)': ../../linbox/matrix/sparsematrix/sparse-ellr-matrix.h:1108:47: error: no match for 'operator=' (operand types are 'con st std::vector<long unsigned int>' and 'const std::vector<long unsigned int>') 1108 | _rowid = iter._rowid; | ^~~~~~ In file included from /usr/include/c++/14/vector:72, from ../../linbox/util/debug.h:42, from ../../linbox/algorithms/rational-solver.h:38: /usr/include/c++/14/bits/vector.tcc:210:5: note: candidate: 'std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::opera tor=(const std::vector<_Tp, _Alloc>&) [with _Tp = long unsigned int; _Alloc = std::allocator<long unsigned int>]' (nea r match) 210 | vector<_Tp, _Alloc>:: | ^~~~~~~~~~~~~~~~~~~ /usr/include/c++/14/bits/vector.tcc:210:5: note: passing 'const std::vector<long unsigned int>*' as 'this' argument discards qualifiers In file included from /usr/include/c++/14/vector:66: /usr/include/c++/14/bits/stl_vector.h:763:7: note: candidate: 'std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::ope rator=(std::vector<_Tp, _Alloc>&&) [with _Tp = long unsigned int; _Alloc = std::allocator<long unsigned int>]' (near m atch) 763 | operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) | ^~~~~~~~ /usr/include/c++/14/bits/stl_vector.h:763:7: note: conversion of argument 1 would be ill-formed: /usr/include/c++/14/bits/stl_vector.h:785:7: note: candidate: 'std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = long unsigned int; _Alloc = std::allocator<long unsigned int>]' 785 | operator=(initializer_list<value_type> __l) | ^~~~~~~~ /usr/include/c++/14/bits/stl_vector.h:785:46: note: no known conversion for argument 1 from 'const std::vector<long unsigned int>' to 'std::initializer_list<long unsigned int>' 785 | operator=(initializer_list<value_type> __l) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ ../../linbox/matrix/sparsematrix/sparse-ellr-matrix.h:1109:37: error: assignment of read-only location '((LinBox::SparseMatrix<_Field, LinBox::SparseMatrixFormat::ELL_R>::_Iterator<element_iterator, Field>*)this)->LinBox::SparseMatrix<_Field, LinBox::SparseMatrixFormat::ELL_R>::_Iterator<element_iterator, Field>::_ld' 1109 | _ld = iter._ld ; | ~~~~^~~~~~~~~~ ../../linbox/matrix/sparsematrix/sparse-ellr-matrix.h: In member function 'LinBox::SparseMatrix<_Field, LinBox::SparseMatrixFormat::ELL_R>::_IndexedIterator<index_iterator, element_iterator, Field>& LinBox::SparseMatrix<_Field, LinBox::SparseMatrixFormat::ELL_R>::_IndexedIterator<index_iterator, element_iterator, Field>::operator=(const LinBox::SparseMatrix<_Field, LinBox::SparseMatrixFormat::ELL_R>::_IndexedIterator<index_iterator, element_iterator, Field>&)': ../../linbox/matrix/sparsematrix/sparse-ellr-matrix.h:1258:44: error: assignment of read-only location '((LinBox::SparseMatrix<_Field, LinBox::SparseMatrixFormat::ELL_R>::_IndexedIterator<index_iterator, element_iterator, Field>*)this)->LinBox::SparseMatrix<_Field, LinBox::SparseMatrixFormat::ELL_R>::_IndexedIterator<index_iterator, element_iterator, Field>::_ld' 1258 | _ld = iter._ld ; | ~~~~~~~~~~~^~~~~~~~~~ make[4]: *** [Makefile:680: diophantine-solver.lo] Error 1 make[3]: *** [Makefile:716: all-recursive] Error 1 Expected Results: Successful build. This appears to be a regression with GCC 14.
Reported upstream in https://github.com/linbox-team/linbox/issues/310.
I’m cherry-picking https://github.com/linbox-team/linbox/commit/b8f2d4ccdc0af4418d14f72caf6c4d01969092a3 to fix this. Local mock build is in progress; once that finishes, I’ll push to rawhide and build there.
I have a successful build, https://koji.fedoraproject.org/koji/buildinfo?buildID=2385832, but Bodhi is broken at the moment, so it is not in the Rawhide buildroot yet.
FEDORA-2024-39fa4fac61 has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2024-39fa4fac61
FEDORA-2024-39fa4fac61 has been pushed to the Fedora 40 stable repository. If problem still persists, please make note of it in this bug report.