git: 6e2222799ebf - main - math/linbox: fix build with clang 19
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 19 Jan 2025 18:33:11 UTC
The branch main has been updated by dim:
URL: https://cgit.FreeBSD.org/ports/commit/?id=6e2222799ebf6ff0a12bed3798fc0cc0e71e1e55
commit 6e2222799ebf6ff0a12bed3798fc0cc0e71e1e55
Author: Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2025-01-19 18:31:50 +0000
Commit: Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2025-01-19 18:31:50 +0000
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
---
math/linbox/Makefile | 9 +-----
...-linbox_matrix_sparsematrix_sparse-ell-matrix.h | 18 ++++++++++++
...linbox_matrix_sparsematrix_sparse-ellr-matrix.h | 34 ++++++++++++++++++++++
.../files/patch-linbox_vector_blas-subvector.h | 13 +++++++++
4 files changed, 66 insertions(+), 8 deletions(-)
diff --git a/math/linbox/Makefile b/math/linbox/Makefile
index f79cc74daa92..e47c8c2df1aa 100644
--- a/math/linbox/Makefile
+++ b/math/linbox/Makefile
@@ -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>
diff --git a/math/linbox/files/patch-linbox_matrix_sparsematrix_sparse-ell-matrix.h b/math/linbox/files/patch-linbox_matrix_sparsematrix_sparse-ell-matrix.h
new file mode 100644
index 000000000000..efde096e0e7e
--- /dev/null
+++ b/math/linbox/files/patch-linbox_matrix_sparsematrix_sparse-ell-matrix.h
@@ -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
+ {
diff --git a/math/linbox/files/patch-linbox_matrix_sparsematrix_sparse-ellr-matrix.h b/math/linbox/files/patch-linbox_matrix_sparsematrix_sparse-ellr-matrix.h
new file mode 100644
index 000000000000..bd8b3eaf95c8
--- /dev/null
+++ b/math/linbox/files/patch-linbox_matrix_sparsematrix_sparse-ellr-matrix.h
@@ -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
+ {
diff --git a/math/linbox/files/patch-linbox_vector_blas-subvector.h b/math/linbox/files/patch-linbox_vector_blas-subvector.h
new file mode 100644
index 000000000000..00c6e129b8aa
--- /dev/null
+++ b/math/linbox/files/patch-linbox_vector_blas-subvector.h
@@ -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