Bug#1096338: asymptote: ftbfs with GCC-15
Package: src:asymptote
Version: 2.95+ds-1
Severity: important
Tags: sid forky
User: debian-gcc@lists.debian.org
Usertags: ftbfs-gcc-15
[This bug is NOT targeted to the upcoming trixie release]
Please keep this issue open in the bug tracker for the package it
was filed for. If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.
The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.
The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/asymptote_2.95+ds-1_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.
To build with GCC 15, either set CC=gcc-15 CXX=g++-15 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.
apt-get -t=experimental install g++
GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html
[...]
48 | virtual uint64_t GetUint64() = 0;
| ^~~~~~~~
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/serializer.h:48:17: note: ‘uint64_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/serializer.h:70:29: error: ‘uint32_t’ has not been declared
70 | virtual void Uint32(uint32_t x) = 0;
| ^~~~~~~~
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/serializer.h:70:29: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/serializer.h:72:29: error: ‘uint64_t’ has not been declared
72 | virtual void Uint64(uint64_t x) = 0;
| ^~~~~~~~
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/serializer.h:72:29: note: ‘uint64_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/serializer.h:161:31: error: ‘uint8_t’ has not been declared
161 | void Reflect(Reader& visitor, uint8_t& value);
| ^~~~~~~
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/serializer.h:161:31: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/serializer.h:162:31: error: ‘uint8_t’ has not been declared
162 | void Reflect(Writer& visitor, uint8_t& value);
| ^~~~~~~
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/serializer.h:162:31: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
In file included from /build/reproducible-path/asymptote-2.95+ds/LspCpp/src/jsonrpc/serializer.cpp:4:
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/json.h:30:12: error: ‘uint32_t JsonReader::GetUint32()’ marked ‘override’, but does not override
30 | uint32_t GetUint32() override { return uint32_t(m_->GetUint64()); }
| ^~~~~~~~~
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/json.h:32:12: error: ‘uint64_t JsonReader::GetUint64()’ marked ‘override’, but does not override
32 | uint64_t GetUint64() override { return m_->GetUint64(); }
| ^~~~~~~~~
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/json.h:70:8: error: ‘void JsonWriter::Uint32(uint32_t)’ marked ‘override’, but does not override
70 | void Uint32(uint32_t x) override { m_->Uint64(x); }
| ^~~~~~
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/json.h:72:8: error: ‘void JsonWriter::Uint64(uint64_t)’ marked ‘override’, but does not override
72 | void Uint64(uint64_t x) override { m_->Uint64(x); }
| ^~~~~~
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/serializer.h:72:22: warning: ‘virtual void Writer::Uint64(int)’ was hidden [-Woverloaded-virtual=]
72 | virtual void Uint64(uint64_t x) = 0;
| ^~~~~~
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/json.h:72:8: note: by ‘void JsonWriter::Uint64(uint64_t)’
72 | void Uint64(uint64_t x) override { m_->Uint64(x); }
| ^~~~~~
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/serializer.h:70:22: warning: ‘virtual void Writer::Uint32(int)’ was hidden [-Woverloaded-virtual=]
70 | virtual void Uint32(uint32_t x) = 0;
| ^~~~~~
/build/reproducible-path/asymptote-2.95+ds/LspCpp/include/LibLsp/JsonRpc/json.h:70:8: note: by ‘void JsonWriter::Uint32(uint32_t)’
70 | void Uint32(uint32_t x) override { m_->Uint64(x); }
| ^~~~~~
/build/reproducible-path/asymptote-2.95+ds/LspCpp/src/jsonrpc/serializer.cpp: In function ‘void Reflect(Reader&, unsigned int&)’:
/build/reproducible-path/asymptote-2.95+ds/LspCpp/src/jsonrpc/serializer.cpp:54:19: error: ‘class Reader’ has no member named ‘GetUint32’; did you mean ‘GetInt’?
54 | value = visitor.GetUint32();
| ^~~~~~~~~
| GetInt
/build/reproducible-path/asymptote-2.95+ds/LspCpp/src/jsonrpc/serializer.cpp: In function ‘void Reflect(Reader&, long unsigned int&)’:
/build/reproducible-path/asymptote-2.95+ds/LspCpp/src/jsonrpc/serializer.cpp:72:34: error: ‘class Reader’ has no member named ‘GetUint64’; did you mean ‘GetInt64’?
72 | value = (unsigned long)visitor.GetUint64();
| ^~~~~~~~~
| GetInt64
/build/reproducible-path/asymptote-2.95+ds/LspCpp/src/jsonrpc/serializer.cpp: In function ‘void Reflect(Reader&, long long unsigned int&)’:
/build/reproducible-path/asymptote-2.95+ds/LspCpp/src/jsonrpc/serializer.cpp:90:19: error: ‘class Reader’ has no member named ‘GetUint64’; did you mean ‘GetInt64’?
90 | value = visitor.GetUint64();
| ^~~~~~~~~
| GetInt64
make[5]: *** [CMakeFiles/lspcpp.dir/build.make:163: CMakeFiles/lspcpp.dir/src/jsonrpc/serializer.cpp.o] Error 1
make[4]: *** [CMakeFiles/Makefile2:130: CMakeFiles/lspcpp.dir/all] Error 2
make[3]: *** [Makefile:136: all] Error 2
make[3]: Leaving directory '/build/reproducible-path/asymptote-2.95+ds/LspCpp'
make[2]: *** [Makefile:173: LspCpp/liblspcpp.a] Error 2
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/build/reproducible-path/asymptote-2.95+ds'
make[1]: *** [debian/rules:29: override_dh_auto_build] Error 2
make[1]: Leaving directory '/build/reproducible-path/asymptote-2.95+ds'
make: *** [debian/rules:14: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
Reply to: