Hi,
inkscape fails to build in a test rebuild on at least amd64 and arm64 with
gcc-16/g++-16, but builds properly with gcc-15/g++-15. The severity of this
report will be raised before the forky release.
The full build log can be found at:
https://people.debian.org/~ema/gcc-16-rebuilds/output-1/inkscape_arm64.build.xz
The last lines of the build log are at the end of this report.
To build with GCC 16, either set CC=gcc-16 CXX=g++-16 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.
apt-get -t=experimental install g++
Common build failures include unused (but set) variables, array subscripts
partly outside array bounds, and new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-16/porting_to.html
Please only close this issue after double-checking that the package can be
built correctly with GCC 16.
Please do not reassign this bug to another package. If a fix in another package
is required, then file a bug for the other package (or clone), and mark this
bug as blocked by the bug in the other package.
[...]
/usr/include/2geom-1.4.0/2geom/sbasis.h:198:26: note: parameter passing for argument of type ‘Geom::Linear’ when C++17 is enabled changed to match C++14 in GCC 10.1
198 | if(!(*this)[i].isZero(eps)) return false;
| ~~~~~~~~~^
/usr/include/2geom-1.4.0/2geom/bezier-curve.h: In member function ‘Geom::Curve* Geom::BezierCurveN<degree>::portion(Geom::Coord, Geom::Coord) const [with unsigned int degree = 1]’:
/usr/include/2geom-1.4.0/2geom/bezier-curve.h:269:20: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
269 | return new BezierCurveN<1>(pointAt(f), pointAt(t));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/2geom-1.4.0/2geom/bezier-curve.h: In member function ‘virtual Geom::OptRect Geom::BezierCurve::boundsLocal(const Geom::OptInterval&, unsigned int) const’:
/usr/include/2geom-1.4.0/2geom/bezier-curve.h:116:61: note: parameter passing for argument of type ‘Geom::Rect’ when C++17 is enabled changed to match C++14 in GCC 10.1
116 | if(i->min() == 0 && i->max() == 1) return boundsFast();
| ~~~~~~~~~~^~
/usr/include/2geom-1.4.0/2geom/bezier-curve.h: In member function ‘virtual Geom::Point Geom::BezierCurve::finalPoint() const’:
/usr/include/2geom-1.4.0/2geom/bezier-curve.h:106:11: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
106 | Point finalPoint() const override { return inner.at1(); }
| ^~~~~~~~~~
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h: In member function ‘virtual Geom::Rect Geom::SBasisCurve::boundsExact() const’:
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h:105:10: note: parameter passing for argument of type ‘Geom::Rect’ when C++17 is enabled changed to match C++14 in GCC 10.1
105 | Rect boundsExact() const override { return *bounds_exact(inner); }
| ^~~~~~~~~~~
/usr/include/2geom-1.4.0/2geom/curve.h: In member function ‘virtual Geom::Point Geom::Curve::operator()(Geom::Coord) const’:
/usr/include/2geom-1.4.0/2geom/curve.h:120:19: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
120 | virtual Point operator() (Coord t) const { return pointAt(t); }
| ^~~~~~~~
/usr/include/2geom-1.4.0/2geom/sbasis.h: In member function ‘double Geom::SBasis::valueAt(double) const’:
/usr/include/2geom-1.4.0/2geom/sbasis.h:224:44: note: parameter passing for argument of type ‘Geom::Linear’ when C++17 is enabled changed to match C++14 in GCC 10.1
224 | const Linear &lin = (*this)[k-1];
| ^
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h: In member function ‘virtual Geom::Point Geom::SBasisCurve::pointAt(Geom::Coord) const’:
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h:93:11: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
93 | Point pointAt(Coord t) const override { return inner.valueAt(t); }
| ^~~~~~~
/usr/include/2geom-1.4.0/2geom/curve.h: In member function ‘virtual Geom::Interval Geom::Curve::timeRange() const’:
/usr/include/2geom-1.4.0/2geom/curve.h:102:22: note: parameter passing for argument of type ‘Geom::Interval’ when C++17 is enabled changed to match C++14 in GCC 10.1
102 | virtual Interval timeRange() const {
| ^~~~~~~~~
/usr/include/2geom-1.4.0/2geom/sbasis.h: In member function ‘bool Geom::SBasis::isConstant(double) const’:
/usr/include/2geom-1.4.0/2geom/sbasis.h:204:22: note: parameter passing for argument of type ‘Geom::Linear’ when C++17 is enabled changed to match C++14 in GCC 10.1
204 | if(!(*this)[0].isConstant(eps)) return false;
| ~~~~~~~~~^
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h: In member function ‘virtual Geom::Point Geom::SBasisCurve::finalPoint() const’:
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h:90:11: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
90 | Point finalPoint() const override { return inner.at1(); }
| ^~~~~~~~~~
/usr/include/2geom-1.4.0/2geom/sbasis.h: In member function ‘Geom::Coord Geom::SBasis::at1() const’:
/usr/include/2geom-1.4.0/2geom/sbasis.h:214:48: note: parameter passing for argument of type ‘Geom::Linear’ when C++17 is enabled changed to match C++14 in GCC 10.1
214 | inline Coord at1() const { return (*this)[0][1]; }
| ~~~~~~~~~^
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h: In member function ‘virtual Geom::Point Geom::SBasisCurve::initialPoint() const’:
/usr/include/2geom-1.4.0/2geom/sbasis-curve.h:89:11: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
89 | Point initialPoint() const override { return inner.at0(); }
| ^~~~~~~~~~~~
/usr/include/2geom-1.4.0/2geom/sbasis.h: In member function ‘Geom::Coord Geom::SBasis::at0() const’:
/usr/include/2geom-1.4.0/2geom/sbasis.h:212:48: note: parameter passing for argument of type ‘Geom::Linear’ when C++17 is enabled changed to match C++14 in GCC 10.1
212 | inline Coord at0() const { return (*this)[0][0]; }
| ~~~~~~~~~^
/usr/include/2geom-1.4.0/2geom/curve.h: In member function ‘virtual Geom::Coord Geom::Curve::valueAt(Geom::Coord, Geom::Dim2) const’:
/usr/include/2geom-1.4.0/2geom/curve.h:116:66: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
116 | virtual Coord valueAt(Coord t, Dim2 d) const { return pointAt(t)[d]; }
| ~~~~~~~^~~
/usr/include/2geom-1.4.0/2geom/sbasis.h: In member function ‘bool Geom::SBasis::isZero(double) const’:
/usr/include/2geom-1.4.0/2geom/sbasis.h:198:26: note: parameter passing for argument of type ‘Geom::Linear’ when C++17 is enabled changed to match C++14 in GCC 10.1
198 | if(!(*this)[i].isZero(eps)) return false;
| ^
/usr/include/2geom-1.4.0/2geom/bezier-curve.h: In member function ‘virtual void Geom::BezierCurve::operator*=(const Geom::Affine&)’:
/usr/include/2geom-1.4.0/2geom/bezier-curve.h:148:43: note: parameter passing for argument of type ‘Geom::Point’ when C++17 is enabled changed to match C++14 in GCC 10.1
148 | setPoint(i, controlPoint(i) * m);
| ^
ninja: build stopped: subcommand failed.
dh_auto_build: error: cd obj-aarch64-linux-gnu && LC_ALL=C.UTF-8 ninja -j128 -v returned exit code 1
make: *** [debian/rules:20: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2