[QGIS-Developer] building master in pkgsrc; mostly ok!
Even Rouault
even.rouault at spatialys.com
Wed Feb 18 15:47:50 PST 2026
Greg,
While playing with compiler explorer (https://godbolt.org/z/v1GEGnT6j) I
suspect this is a bug in C++20 support in gcc 12 that got fixed in gcc
13 (similary clang 15 has the same issue, and clang 16 not). Likely an
erratum of C++20 that didn't make it in early implementations. You could
workaround it by down casting the left side member of the comparisons to
(const QgsAbstractGeometry&)
Even
Le 19/02/2026 à 00:04, Greg Troxel via QGIS-Developer a écrit :
> I'm building qgis masterunder NetBSD 10, both not under pkgsrc and now
> as a 3.99.0 package, tracking git master.
>
> I am using gcc 12 which I believe should be ok with c++20. qgis's cmake
> accepts it.
>
> The exciting news is that things are mostly good.
>
> Three test files fail to build with an ambiguous overload, and I'm
> pretty sure there is one root cause for 3 problems. I'm including the
> build output from just the first.
>
> Trying to understand, it seems like a complex inheritance pattern and
> there are at least two ways to do it. I think the compiler is saying
> there is no valid way to break the tie.
>
> (This is after running make to build what builds, which is almost
> everything else.)
>
> Is anyon else seeing this? Using gcc12?
>
>
> => Bootstrap dependency digest>=20211023: found digest-20220214
> ===> Checking for vulnerabilities in qgis-3.99.0
> ===> Building for qgis-3.99.0
> [1/22] Running crssync
> Detected locale "C" with character encoding "646", which is not UTF-8.
> Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead.
> If this causes problems, reconfigure your locale. See the locale(1) manual
> for more information.
> [2/22] Building CXX object tests/src/core/geometry/CMakeFiles/test_core_geometry_linestring.dir/testqgslinestring.cpp.o
> FAILED: [code=1] tests/src/core/geometry/CMakeFiles/test_core_geometry_linestring.dir/testqgslinestring.cpp.o
> /tmp/work/wip/qgis/work/.cwrapper/bin/c++ -DCMAKE_SOURCE_DIR=\"/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759\" -DINSTALL_PREFIX=\"/usr/pkg\" -DPROTOBUF_USE_DLLS -DQT_CONCURRENT_LIB -DQT_CORE5COMPAT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_DEPRECATED_WARNINGS -DQT_POSITIONING_LIB -DQT_PRINTSUPPORT_LIB -DQT_SERIALPORT_LIB -DQT_SQL_LIB -DQT_SVG_LIB -DQT_TESTCASE_BUILDDIR=\"/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/cmake-pkgsrc-build/tests/src/core/geometry\" -DQT_TESTCASE_SOURCEDIR=\"/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/tests/src/core/geometry\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -DQT_WIDGETS_LIB -DQT_XML_LIB -DSIP_VERSION=0x060e00 -DTEST_DATA_DIR=\"/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/tests/testdata\" -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/cmake-pk
> gsrc-build/tests/src/core/geometry/test_core_geometry_linestring_autogen/include -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/cmake-pkgsrc-build -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/tests/src/core -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/cmake-pkgsrc-build/tests/src/core -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/external/kdbush/include -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/test -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/external/lazperf -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/tests/src/core/geometry -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/cmake-pkgsrc-build/tests/src/core/geometry -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/cm
> ake-pkgsrc-build/src/core -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/3d -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/actions -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/annotations -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/auth -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/browser -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/callouts -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/classification -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/diagram -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/dxf -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/editform -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core
> /effects -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/elevation -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/expression -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/externalstorage -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/fieldformatter -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/geometry -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/geocoding -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/gps -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/labeling -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/labeling/rules -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/layertree -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d47
> 59/src/core/layout -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/locator -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/maprenderer -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/mesh -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/metadata -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/multimedia -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/network -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/numericformats -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/painting -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/pal -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/pdf -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/pl
> ot -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/pointcloud -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/pointcloud/expression -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/processing -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/processing/models -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/proj -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/project -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/providers -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/providers/arcgis -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/providers/memory -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/providers/gdal -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e
> 622f327e5c000774d4759/src/core/providers/ogr -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/providers/meshmemory -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/providers/sensorthings -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/raster -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/renderer -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/scalebar -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/settings -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/sensor -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/stac -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/symbology -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/textrenderer -I/tmp/work/wip/qgis/work/QGI
> S-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/tiledscene -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/validity -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/vector -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/vectortile -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/web -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/external/delaunator-cpp -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/external/nanoarrow/include -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/external/nmea -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/external/rtree/include -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/external/tinygltf -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/external/earcut -I/tmp/work/wip/qgis/work
> /QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/providers/ept -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/providers/copc -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/providers/vpc -I/tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/cmake-pkgsrc-build/src/test -isystem /tmp/work/wip/qgis/work/.buildlink/include -isystem /usr/pkg/qt6/include/Qca-qt6/QtCrypto -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include/QtCore -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/mkspecs/netbsd-g++ -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include/QtGui -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include/QtXml -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include/QtWidgets -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include/QtSvg -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include/QtNetwork -isystem /tmp/work/wip/qgis/work/
> .buildlink/qt6/include/QtSql -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include/QtConcurrent -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include/QtMultimedia -isystem /tmp/work/wip/qgis/work/.buildlink/include/geos -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include/QtPositioning -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include/QtDBus -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include/QtPrintSupport -isystem /usr/pkg/include -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include/QtCore5Compat -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include/QtSerialPort -isystem /tmp/work/wip/qgis/work/.buildlink/qt6/include/QtTest -O2 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/python3.13 -Dz_off_t=long -I/usr/pkg/qt6/include -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/harfbuzz -I/usr/pkg/include/freetype2 -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/pkg/include/libxml2 -I/usr/pkg
> /include/minizip -I/usr/pkg/include/gstreamer-1.0 -Wall -Wextra -Wno-long-long -Wformat-security -Wno-strict-aliasing -Wnon-virtual-dtor -Wno-redundant-move -Wno-misleading-indentation -Wno-deprecated-copy -Woverloaded-virtual -Wimplicit-fallthrough -Wsuggest-override -std=gnu++20 -fvisibility=hidden -fPIC -MD -MT tests/src/core/geometry/CMakeFiles/test_core_geometry_linestring.dir/testqgslinestring.cpp.o -MF tests/src/core/geometry/CMakeFiles/test_core_geometry_linestring.dir/testqgslinestring.cpp.o.d -o tests/src/core/geometry/CMakeFiles/test_core_geometry_linestring.dir/testqgslinestring.cpp.o -c /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/tests/src/core/geometry/testqgslinestring.cpp
> In file included from /usr/pkg/qt6/include/QtTest/qtest.h:13,
> from /usr/pkg/qt6/include/QtTest/QTest:1,
> from /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/test/qgstest.h:50,
> from /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/tests/src/core/geometry/testqgslinestring.cpp:31:
> /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/tests/src/core/geometry/testqgslinestring.cpp: In member function 'void TestQgsLineString::equality()':
> /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/tests/src/core/geometry/testqgslinestring.cpp:956:19: error: ambiguous overload for 'operator==' (operand types are 'QgsLineString' and 'QgsPoint')
> 956 | QVERIFY( !( ls6 == p1 ) );
> | ~~~ ^~ ~~
> | | |
> | | QgsPoint
> | QgsLineString
> In file included from /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/geometry/qgsbox3d.h:22,
> from /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/geometry/qgscurve.h:24,
> from /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/geometry/qgscircularstring.h:23,
> from /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/tests/src/core/geometry/testqgslinestring.cpp:22:
> /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/geometry/qgspoint.h:280:10: note: candidate: 'virtual bool QgsPoint::operator==(const QgsAbstractGeometry&) const' (reversed)
> 280 | bool operator==( const QgsAbstractGeometry &other ) const override SIP_HOLDGIL
> | ^~~~~~~~
> /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/geometry/qgscurve.h:46:10: note: candidate: 'virtual bool QgsCurve::operator==(const QgsAbstractGeometry&) const'
> 46 | bool operator==( const QgsAbstractGeometry &other ) const override;
> | ^~~~~~~~
> /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/tests/src/core/geometry/testqgslinestring.cpp:957:16: error: ambiguous overload for 'operator!=' (operand types are 'QgsLineString' and 'QgsPoint')
> 957 | QVERIFY( ls6 != p1 );
> | ~~~ ^~ ~~
> | | |
> | | QgsPoint
> | QgsLineString
> /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/geometry/qgspoint.h:280:10: note: candidate: 'virtual bool QgsPoint::operator==(const QgsAbstractGeometry&) const' (reversed)
> 280 | bool operator==( const QgsAbstractGeometry &other ) const override SIP_HOLDGIL
> | ^~~~~~~~
> /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/geometry/qgscurve.h:46:10: note: candidate: 'virtual bool QgsCurve::operator==(const QgsAbstractGeometry&) const' (rewritten)
> 46 | bool operator==( const QgsAbstractGeometry &other ) const override;
> | ^~~~~~~~
> /tmp/work/wip/qgis/work/QGIS-a6644ddc2e269e32f6e622f327e5c000774d4759/src/core/geometry/qgscurve.h:47:10: note: candidate: 'virtual bool QgsCurve::operator!=(const QgsAbstractGeometry&) const'
> 47 | bool operator!=( const QgsAbstractGeometry &other ) const override;
> | ^~~~~~~~
> ninja: build stopped: subcommand failed.
> *** Please use pkgtools/verifypc to sanity check dependencies.
> *** Error code 1 (continuing)
> `all' not remade because of errors.
>
> Stop.
> make[1]: stopped in /n0/gdt/pkgsrc-current/pkgsrc/wip/qgis
> *** Error code 1 (continuing)
> `all' not remade because of errors.
>
> Stop.
> make: stopped in /usr/pkgsrc/wip/qgis
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
--
http://www.spatialys.com
My software is free, but my time generally not.
More information about the QGIS-Developer
mailing list