[Pkg-tcltk-devel] Bug#1098162: xotcl: ftbfs with GCC-15

Matthias Klose doko at debian.org
Mon Feb 17 18:02:23 GMT 2025


Package: src:xotcl
Version: 1.6.8-5.1
Severity: important
Tags: sid forky
User: debian-gcc at 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/xotcl_1.6.8-5.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

[...]
./generic/xotcl.c:9942:64: error: ‘opt’ undeclared (first use in this function); did you mean ‘opts’?
 9942 |   if (Tcl_GetIndexFromObj(interp, objv[1], opts, "option", 0, &opt) != TCL_OK) {
      |                                                                ^~~
/usr/include/tcl8.6/tcl-private/generic/tclDecls.h:4008:37: note: in definition of macro ‘Tcl_GetIndexFromObj’
 4008 |         sizeof(char *), msg, flags, indexPtr)
      |                                     ^~~~~~~~
./generic/xotcl.c:9942:64: note: each undeclared identifier is reported only once for each function it appears in
 9942 |   if (Tcl_GetIndexFromObj(interp, objv[1], opts, "option", 0, &opt) != TCL_OK) {
      |                                                                ^~~
/usr/include/tcl8.6/tcl-private/generic/tclDecls.h:4008:37: note: in definition of macro ‘Tcl_GetIndexFromObj’
 4008 |         sizeof(char *), msg, flags, indexPtr)
      |                                     ^~~~~~~~
./generic/xotcl.c:9947:5: error: ‘result’ undeclared (first use in this function)
 9947 |     result = Tcl_GetBooleanFromObj(interp, objv[2], &bool);
      |     ^~~~~~
./generic/xotcl.c:9947:54: error: expected expression before ‘bool’
 9947 |     result = Tcl_GetBooleanFromObj(interp, objv[2], &bool);
      |                                                      ^~~~
./generic/xotcl.c:9955:44: error: expected expression before ‘bool’
 9955 |         RUNTIME_STATE(interp)->doFilters = bool;
      |                                            ^~~~
./generic/xotcl.c:9962:49: error: expected expression before ‘bool’
 9962 |         RUNTIME_STATE(interp)->doSoftrecreate = bool;
      |                                                 ^~~~
./generic/xotcl.c: In function ‘XOTclCheckBooleanArgs’:
./generic/xotcl.c:12343:15: error: expected identifier or ‘(’ before ‘bool’
12343 |   int result, bool;
      |               ^~~~
./generic/xotcl.c:12357:52: error: expected expression before ‘bool’
12357 |   result = Tcl_GetBooleanFromObj(interp, boolean, &bool);
      |                                                    ^~~~
./generic/xotcl.c: In function ‘XOTclInterpretNonpositionalArgsCmd’:
./generic/xotcl.c:12475:15: error: ‘bool’ cannot be used here
12475 |           int bool;
      |               ^~~~
./generic/xotcl.c:12475:15: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
./generic/xotcl.c:12475:11: warning: useless type name in empty declaration
12475 |           int bool;
      |           ^~~
./generic/xotcl.c:12477:55: error: expected expression before ‘bool’
12477 |           if (Tcl_GetBooleanFromObj(interp, boolObj, &bool) != TCL_OK) {
      |                                                       ^~~~
./generic/xotcl.c:12481:71: error: expected expression before ‘bool’
12481 |           Tcl_SetVar2Ex(interp, ObjStr(var), NULL, Tcl_NewBooleanObj(!bool), 0);
      |                                                                       ^~~~
/usr/include/tcl8.6/tcl-private/generic/tclDecls.h:4011:24: note: in definition of macro ‘Tcl_NewBooleanObj’
 4011 |         Tcl_NewIntObj((intValue)!=0)
      |                        ^~~~~~~~
./generic/xotcl.c: In function ‘Xotcl_Init’:
./generic/xotcl.c:13212:26: warning: too many arguments for format [-Wformat-extra-args]
13212 |   if (!theobj) Tcl_Panic("Cannot create ::xotcl::Object", NULL);
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./generic/xotcl.c:13216:26: warning: too many arguments for format [-Wformat-extra-args]
13216 |   if (!thecls) Tcl_Panic("Cannot create ::xotcl::Class", NULL);
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./generic/xotcl.c: In function ‘XOTclConfigureCommand’:
./generic/xotcl.c:9967:1: warning: control reaches end of non-void function [-Wreturn-type]
 9967 | }
      | ^
./generic/xotcl.c: At top level:
./generic/xotcl.c:5246:12: warning: ‘PushProcCallFrame’ defined but not used [-Wunused-function]
 5246 | static int PushProcCallFrame(
      |            ^~~~~~~~~~~~~~~~~
./generic/xotcl.c:5230:1: warning: ‘MakeProcError’ defined but not used [-Wunused-function]
 5230 | MakeProcError(
      | ^~~~~~~~~~~~~
make[1]: *** [Makefile:429: xotcl.o] Error 1
make[1]: Leaving directory '/build/reproducible-path/xotcl-1.6.8'
make: *** [debian/rules:83: build-stamp] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2



More information about the Pkg-tcltk-devel mailing list