Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Oct 2024 19:10:51 GMT
From:      Dimitry Andric <dim@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 465e9eaad0ee - main - math/pdal: fix build with clang 19
Message-ID:  <202410091910.499JAp31031311@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by dim:

URL: https://cgit.FreeBSD.org/ports/commit/?id=465e9eaad0eeb60f82c2405459b0c652cb38cdff

commit 465e9eaad0eeb60f82c2405459b0c652cb38cdff
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2024-10-05 13:21:23 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2024-10-09 19:09:53 +0000

    math/pdal: fix build with clang 19
    
    Clang 19 has become more strict about errors in member functions, which
    results in errors building math/pdal:
    
      /wrkdirs/usr/ports/math/pdal/work/PDAL-2.7.2-src/vendor/kazhdan/SparseMatrix.inl:195:18: error: no member named 'm_N' in 'SparseMatrix<T>'
        195 |     Resize(this->m_N, this->m_M);
            |            ~~~~  ^
      /wrkdirs/usr/ports/math/pdal/work/PDAL-2.7.2-src/vendor/kazhdan/SparseMatrix.inl:195:29: error: no member named 'm_M' in 'SparseMatrix<T>'
        195 |     Resize(this->m_N, this->m_M);
            |                       ~~~~  ^
    
      /wrkdirs/usr/ports/math/pdal/work/PDAL-2.7.2-src/vendor/kazhdan/Ply.h:320:97: error: no member named 'value' in 'PlyOrientedVertex<Real>'
        320 |         PlyOrientedVertex operator - ( PlyOrientedVertex p ) const { return PlyOrientedVertex( point-p.value , normal-p.normal ); }
            |                                                                                                      ~ ^
      /wrkdirs/usr/ports/math/pdal/work/PDAL-2.7.2-src/vendor/kazhdan/Ply.h:366:92: error: no member named 'value' in 'PlyColorVertex::_PlyColorVertex'
        366 |                 _PlyColorVertex operator - ( _PlyColorVertex p ) const { return _PlyColorVertex( point-p.value , color-p.color ); }
            |                                                                                                        ~ ^
    
    The first pair of errors is because there are no members `m_N` and `m_M`
    in `SparseMatrix` at all, nor are there any members that remotely look
    like these. However, the `SetZero()` member function that invokes these
    is never used anywhere, so it can simply be deleted.
    
    The second pair of errors is due to a typo: `p.value` should have been
    `p.point`.
    
    PR:             281867
    Approved by:    lbartoletti (maintainer)
    MFH:            2024Q3
---
 math/pdal/files/patch-vendor_kazhdan_Ply.h           | 20 ++++++++++++++++++++
 math/pdal/files/patch-vendor_kazhdan_SparseMatrix.h  | 11 +++++++++++
 .../pdal/files/patch-vendor_kazhdan_SparseMatrix.inl | 16 ++++++++++++++++
 3 files changed, 47 insertions(+)

diff --git a/math/pdal/files/patch-vendor_kazhdan_Ply.h b/math/pdal/files/patch-vendor_kazhdan_Ply.h
new file mode 100644
index 000000000000..2ec2a38292d4
--- /dev/null
+++ b/math/pdal/files/patch-vendor_kazhdan_Ply.h
@@ -0,0 +1,20 @@
+--- vendor/kazhdan/Ply.h.orig	2024-06-29 01:37:43 UTC
++++ vendor/kazhdan/Ply.h
+@@ -317,7 +317,7 @@ class PlyOrientedVertex (public)
+ 	PlyOrientedVertex( void ) { ; }
+ 	PlyOrientedVertex( Point3D< Real > p , Point3D< Real > n ) : point(p) , normal(n) { ; }
+   	PlyOrientedVertex operator + ( PlyOrientedVertex p ) const { return PlyOrientedVertex( point+p.point , normal+p.normal ); }
+-	PlyOrientedVertex operator - ( PlyOrientedVertex p ) const { return PlyOrientedVertex( point-p.value , normal-p.normal ); }
++	PlyOrientedVertex operator - ( PlyOrientedVertex p ) const { return PlyOrientedVertex( point-p.point , normal-p.normal ); }
+ 	template< class _Real > PlyOrientedVertex operator * ( _Real s ) const { return PlyOrientedVertex( point*s , normal*s ); }
+ 	template< class _Real > PlyOrientedVertex operator / ( _Real s ) const { return PlyOrientedVertex( point/s , normal/s ); }
+ 	PlyOrientedVertex& operator += ( PlyOrientedVertex p ) { point += p.point , normal += p.normal ; return *this; }
+@@ -363,7 +363,7 @@ class PlyColorVertex (public)
+ 		}
+ 
+ 	  	_PlyColorVertex operator + ( _PlyColorVertex p ) const { return _PlyColorVertex( point+p.point , color+p.color ); }
+-		_PlyColorVertex operator - ( _PlyColorVertex p ) const { return _PlyColorVertex( point-p.value , color-p.color ); }
++		_PlyColorVertex operator - ( _PlyColorVertex p ) const { return _PlyColorVertex( point-p.point , color-p.color ); }
+ 		template< class _Real > _PlyColorVertex operator * ( _Real s ) const { return _PlyColorVertex( point*s , color*s ); }
+ 		template< class _Real > _PlyColorVertex operator / ( _Real s ) const { return _PlyColorVertex( point/s , color/s ); }
+ 		_PlyColorVertex& operator += ( _PlyColorVertex p ) { point += p.point , color += p.color ; return *this; }
diff --git a/math/pdal/files/patch-vendor_kazhdan_SparseMatrix.h b/math/pdal/files/patch-vendor_kazhdan_SparseMatrix.h
new file mode 100644
index 000000000000..9152361e68bb
--- /dev/null
+++ b/math/pdal/files/patch-vendor_kazhdan_SparseMatrix.h
@@ -0,0 +1,11 @@
+--- vendor/kazhdan/SparseMatrix.h.orig	2024-06-29 01:37:43 UTC
++++ vendor/kazhdan/SparseMatrix.h
+@@ -67,8 +67,6 @@ template<class T> class SparseMatrix (public)
+ 	SparseMatrix( const SparseMatrix& M );
+ 	~SparseMatrix();
+ 
+-	void SetZero();
+-
+ 	SparseMatrix<T>& operator = (const SparseMatrix<T>& M);
+ 
+ 	SparseMatrix<T> operator * (const T& V) const;
diff --git a/math/pdal/files/patch-vendor_kazhdan_SparseMatrix.inl b/math/pdal/files/patch-vendor_kazhdan_SparseMatrix.inl
new file mode 100644
index 000000000000..c8aa440a1b36
--- /dev/null
+++ b/math/pdal/files/patch-vendor_kazhdan_SparseMatrix.inl
@@ -0,0 +1,16 @@
+--- vendor/kazhdan/SparseMatrix.inl.orig	2024-06-29 01:37:43 UTC
++++ vendor/kazhdan/SparseMatrix.inl
+@@ -188,13 +188,6 @@ void SparseMatrix< T >::SetRowSize( int row , int coun
+     }
+ }
+ 
+-
+-template<class T>
+-void SparseMatrix<T>::SetZero()
+-{
+-    Resize(this->m_N, this->m_M);
+-}
+-
+ template<class T>
+ SparseMatrix<T> SparseMatrix<T>::operator * (const T& V) const
+ {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202410091910.499JAp31031311>