math/linbox: fix build with clang 19

Clang 19 has become more strict about errors in member functions, which
results in errors building math/linbox:

  ../../linbox/vector/blas-subvector.h:121:20: error: no member named 'data' in 'BlasSubvector<_Vector>'
    121 |             _ptr(V.data()+beg), _size(dim), _inc(inc), _field(&V.field()) {}
        |                  ~ ^
  ../../linbox/matrix/sparsematrix/sparse-ell-matrix.h:1216:16: error: cannot assign to non-static data member '_ld' with const-qualified type 'const size_t &' (aka 'const unsigned long &')
   1216 |                                 _ld        = iter._ld ;
        |                                 ~~~        ^
  ../../linbox/matrix/sparsematrix/sparse-ellr-matrix.h:1108:12: error: no viable overloaded '='
   1108 |                                 _rowid = iter._rowid;
        |                                 ~~~~~~ ^ ~~~~~~~~~~~

In all these cases, the methods where the errors occur are not actually
used, so until upstream sorts out their incorrect code, stub them out
using #if 0/#endif pairs.

PR:		284159
Approved by:	thierry (maintainer)
MFH:		2025Q1
This commit is contained in:
Dimitry Andric 2025-01-19 19:31:50 +01:00
parent 238564b86a
commit 6e2222799e
4 changed files with 66 additions and 8 deletions

View file

@ -68,11 +68,4 @@ CONFIGURE_ARGS+=--disable-sse --disable-sse2 --disable-sse3 --disable-ssse3 \
--disable-avx --disable-avx2
.endif
.include <bsd.port.pre.mk>
.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 180
# See https://github.com/linbox-team/linbox/issues/320
BROKEN= compilation errors with clang19
.endif
.include <bsd.port.post.mk>
.include <bsd.port.mk>

View file

@ -0,0 +1,18 @@
--- linbox/matrix/sparsematrix/sparse-ell-matrix.h.orig 2021-12-14 10:16:03 UTC
+++ linbox/matrix/sparsematrix/sparse-ell-matrix.h
@@ -1205,6 +1205,7 @@ namespace LinBox
, _row(iter._row)
{}
+#if 0
_IndexedIterator &operator = (const _IndexedIterator &iter)
{
_colid_beg = iter._colid_beg ;
@@ -1218,6 +1219,7 @@ namespace LinBox
return *this;
}
+#endif
bool operator == (const _IndexedIterator &i) const
{

View file

@ -0,0 +1,34 @@
--- linbox/matrix/sparsematrix/sparse-ellr-matrix.h.orig 2021-12-14 10:16:03 UTC
+++ linbox/matrix/sparsematrix/sparse-ellr-matrix.h
@@ -1099,6 +1099,7 @@ namespace LinBox
{}
+#if 0
_Iterator &operator = (const _Iterator &iter)
{
_data_it = iter._data_it ;
@@ -1111,6 +1112,7 @@ namespace LinBox
return *this;
}
+#endif
bool operator == (const _Iterator &i) const
{
@@ -1246,6 +1248,7 @@ namespace LinBox
, _row(iter._row)
{}
+#if 0
_IndexedIterator &operator = (const _IndexedIterator &iter)
{
_rowid_it = iter._rowid_it ;
@@ -1260,6 +1263,7 @@ namespace LinBox
return *this;
}
+#endif
bool operator == (const _IndexedIterator &i) const
{

View file

@ -0,0 +1,13 @@
--- linbox/vector/blas-subvector.h.orig 2021-12-14 10:16:03 UTC
+++ linbox/vector/blas-subvector.h
@@ -117,8 +117,10 @@ namespace LinBox {
* \param dim dimension
* \param inc distance between two element
*/
+#if 0
BlasSubvector (Self_t &V, size_t beg, size_t inc, size_t dim) :
_ptr(V.data()+beg), _size(dim), _inc(inc), _field(&V.field()) {}
+#endif
/** Constructor from an existing @ref BlasVector