Skip to content

Ipe 7.2.30 fails to build using GCC 16 #595

@smr99

Description

@smr99

Report from Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1133505

Hi,

ipe 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 full build log can be found at:
https://people.debian.org/~ema/gcc-16-rebuilds/output-1/ipe_arm64.build.xz

The last lines of the build log are at the end of this report.

[On Debian] 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

[...]

ipepdfwriter.cpp: In member function ‘void ipe::PdfWriter::createPages()’:
ipepdfwriter.cpp:893:10: error: ‘iSaveFlags’ was not declared in this scope
893 | if ((iSaveFlags & SaveFlag::MarkedView) && !iDoc->page(page)->marked())
| ^~~~~~~~~~
ipepdfwriter.cpp:896:9: error: ‘iSaveFlags’ was not declared in this scope
896 | if (iSaveFlags & SaveFlag::MarkedView) {
| ^~~~~~~~~~
make[3]: *** [../common.mak:259: ../../build/obj/ipelib/ipeiml.o] Error 1
ipepdfwriter.cpp: In member function ‘void ipe::PdfWriter::createBookmarks()’:
ipepdfwriter.cpp:982:10: error: ‘iSaveFlags’ was not declared in this scope
982 | if ((iSaveFlags & SaveFlag::MarkedView) && !iDoc->page(pg)->marked())
| ^~~~~~~~~~
make[3]: *** [../common.mak:259: ../../build/obj/ipelib/ipereference.o] Error 1
ipepdfwriter.cpp: In member function ‘void ipe::PdfWriter::createNamedDests()’:
ipepdfwriter.cpp:1053:10: error: ‘iSaveFlags’ was not declared in this scope
1053 | if ((iSaveFlags & SaveFlag::MarkedView) && !iDoc->page(pg)->marked())
| ^~~~~~~~~~
ipepdfwriter.cpp: In member function ‘void ipe::PdfWriter::createTrailer()’:
ipepdfwriter.cpp:1118:13: error: ‘iSaveFlags’ was not declared in this scope
1118 | if (!(iSaveFlags & SaveFlag::MarkedView) || iDoc->page(page)->marked()) {
| ^~~~~~~~~~
make[3]: *** [../common.mak:259: ../../build/obj/ipelib/ipesnap.o] Error 1
make[3]: *** [../common.mak:259: ../../build/obj/ipelib/ipebitmap.o] Error 1
make[3]: *** [../common.mak:259: ../../build/obj/ipelib/iperesources.o] Error 1
make[3]: *** [../common.mak:259: ../../build/obj/ipelib/ipeutils.o] Error 1
make[3]: *** [../common.mak:259: ../../build/obj/ipelib/ipepage.o] Error 1
make[3]: *** [../common.mak:259: ../../build/obj/ipelib/ipepdfparser.o] Error 1
make[3]: *** [../common.mak:259: ../../build/obj/ipelib/ipelatex.o] Error 1
make[3]: *** [../common.mak:259: ../../build/obj/ipelib/ipedoc.o] Error 1
make[3]: *** [../common.mak:259: ../../build/obj/ipelib/ipestyle.o] Error 1
make[3]: *** [../common.mak:259: ../../build/obj/ipelib/ipepdfwriter.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/ipe-7.2.30/src/ipelib'
make[2]: *** [Makefile:59: ipelib] Error 2
make[2]: *** Waiting for unfinished jobs....
In file included from /usr/include/aarch64-linux-gnu/qt6/QtGui/qvalidator.h:12,
from /usr/include/aarch64-linux-gnu/qt6/QtWidgets/qabstractspinbox.h:9,
from /usr/include/aarch64-linux-gnu/qt6/QtWidgets/qstyleoption.h:11,
from /usr/include/aarch64-linux-gnu/qt6/QtWidgets/qabstractitemdelegate.h:9,
from /usr/include/aarch64-linux-gnu/qt6/QtWidgets/qcombobox.h:9,
from /usr/include/aarch64-linux-gnu/qt6/QtWidgets/QComboBox:1,
from ipeui_qt.cpp:37:
/usr/include/aarch64-linux-gnu/qt6/QtCore/qregularexpression.h:30:21: warning: defining ‘QRegularExpression’, which previously failed to be complete in a SFINAE context [-Wsfinae-incomplete=]
30 | class Q_CORE_EXPORT QRegularExpression
| ^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/16/vector:70,
from ipeui_common.h:42,
from ipeui_qt.h:35,
from ipeui_qt.cpp:31:
/usr/include/c++/16/bits/range_access.h:325:24: note: here. Use ‘-Wsfinae-incomplete=2’ for a diagnostic at that point
325 | -> decltype(__cont.data())
| ~~~~~~~^~~~
ipeui_qt.cpp: In member function ‘virtual bool PDialog::buildAndRun(int, int)’:
ipeui_qt.cpp:337:37: warning: ‘void QCheckBox::stateChanged(int)’ is deprecated: Use checkStateChanged() instead [-Wdeprecated-declarations]
337 | connect(ch, &QCheckBox::stateChanged, &,method=m.lua_method{ callLua(method); });
| ^~~~~~~~~~~~
In file included from /usr/include/aarch64-linux-gnu/qt6/QtWidgets/QCheckBox:1,
from ipeui_qt.cpp:34:
/usr/include/aarch64-linux-gnu/qt6/QtWidgets/qcheckbox.h:41:10: note: declared here
41 | void stateChanged(int);
| ^~~~~~~~~~~~
mkdir -p ../../build/lib
g++ -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libipeui.so.7.2.30 -o ../../build/lib/libipeui.so.7.2.30 ../../build/obj/ipeui/ipeui_common.o ../../build/obj/ipeui/ipeui_qt.o ../../build/obj/ipeui/moc_ipeui_qt.o -lQt6Widgets -lQt6Gui -lQt6Core -llua5.4
ln -sf libipeui.so.7.2.30 ../../build/lib/libipeui.so
rm moc_ipeui_qt.cpp
make[3]: Leaving directory '/build/reproducible-path/ipe-7.2.30/src/ipeui'
make[2]: Leaving directory '/build/reproducible-path/ipe-7.2.30/src'
dh_auto_build: error: cd src && make -j128 INSTALL="install --strip-program=true" returned exit code 2
make[1]: *** [debian/rules:14: build-arch] Error 25
make[1]: Leaving directory '/build/reproducible-path/ipe-7.2.30'
make: *** [debian/rules:14: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions