Bug 2260378 - linbox: FTBFS in Fedora Rawhide/F40 with GCC 14
Summary: linbox: FTBFS in Fedora Rawhide/F40 with GCC 14
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: linbox
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Ben Beasley
QA Contact: Fedora Extras Quality Assurance
URL: https://koschei.fedoraproject.org/pac...
Whiteboard:
Depends On:
Blocks: 2260083
TreeView+ depends on / blocked
 
Reported: 2024-01-25 19:23 UTC by Ben Beasley
Modified: 2024-01-26 18:32 UTC (History)
4 users (show)

Fixed In Version: linbox-1.7.0-5.fc40
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2024-01-26 18:32:55 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github linbox-team linbox issues 310 0 None open Fails to build with gcc 14 2024-01-25 19:29:28 UTC

Description Ben Beasley 2024-01-25 19:23:22 UTC
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.

Comment 1 Ben Beasley 2024-01-25 19:29:28 UTC
Reported upstream in https://github.com/linbox-team/linbox/issues/310.

Comment 2 Ben Beasley 2024-01-26 15:58:24 UTC
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.

Comment 3 Ben Beasley 2024-01-26 17:27:00 UTC
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.

Comment 4 Fedora Update System 2024-01-26 18:25:05 UTC
FEDORA-2024-39fa4fac61 has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2024-39fa4fac61

Comment 5 Fedora Update System 2024-01-26 18:32:55 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.