#1097972 tclx8.4: ftbfs with GCC-15

Package:
src:tclx8.4
Source:
src:tclx8.4
Submitter:
Matthias Klose
Date:
2025-09-06 13:07:02 UTC
Severity:
normal
Tags:
#1097972#5
Date:
2025-02-17 17:56:25 UTC
From:
To:
[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/tclx8.4_8.4.1-4_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

[...]
 1666 | TclXOSSetAppend (interp, channel, value)
      | ^~~~~~~~~~~~~~~
./unix/tclXunixOS.c: In function ‘TclXOSGetCloseOnExec’:
./unix/tclXunixOS.c:1712:1: warning: old-style function definition [-Wold-style-definition]
 1712 | TclXOSGetCloseOnExec (interp, channel, valuePtr)
      | ^~~~~~~~~~~~~~~~~~~~
./unix/tclXunixOS.c: In function ‘TclXOSSetCloseOnExec’:
./unix/tclXunixOS.c:1776:1: warning: old-style function definition [-Wold-style-definition]
 1776 | TclXOSSetCloseOnExec (interp, channel, value)
      | ^~~~~~~~~~~~~~~~~~~~
./unix/tclXunixOS.c: In function ‘TclXOSsystem’:
./unix/tclXunixOS.c:427:9: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  427 |         write (errPipes [1], &errno, sizeof (errno));
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
x86_64-linux-gnu-gcc -pipe -DPACKAGE_NAME=\"tclx\" -DPACKAGE_TARNAME=\"tclx\" -DPACKAGE_VERSION=\"8.4\" -DPACKAGE_STRING=\"tclx\ 8.4\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DFULL_VERSION=\"8.4.1\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_TIME_H=1 -DSTDC_HEADERS=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DTCL_THREADS=1 -DSTATIC_BUILD=1 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_IS_LONG=1 -DUSE_TCL_STUBS=1 -DHAVE_SYS_SELECT_H=1 -DRETSIGTYPE=void -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_STRUCT_TM_TM_ZONE=1 -DHAVE_TM_ZONE=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TM_GMTOFF=1 -DNO_UNION_WAIT=1 -DTIMES_RETS_STATUS=1 -DBAD_CATCLOSE=1  -I"./generic" -I"./unix" -I"/usr/include/tcl8.6/tcl-private/generic" -I"/usr/include/tcl8.6/tcl-private/unix"  -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/tclx8.4-8.4.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -fomit-frame-pointer -Wall -Wno-implicit-int -c `echo ./unix/tclXunixSock.c` -o tclXunixSock.o
./unix/tclXunixSock.c: In function ‘CloseForError’:
./unix/tclXunixSock.c:54:1: warning: old-style function definition [-Wold-style-definition]
   54 | CloseForError (interp, channel, fileNum)
      | ^~~~~~~~~~~~~
./unix/tclXunixSock.c: In function ‘BindFileHandles’:
./unix/tclXunixSock.c:90:1: warning: old-style function definition [-Wold-style-definition]
   90 | BindFileHandles (interp, options, socketFD)
      | ^~~~~~~~~~~~~~~
./unix/tclXunixSock.c:97:41: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
   97 |     channel = Tcl_MakeTcpClientChannel ((ClientData) socketFD);
      |                                         ^
./unix/tclXunixSock.c: In function ‘TclX_ServerCreateCmd’:
./unix/tclXunixSock.c:134:1: warning: old-style function definition [-Wold-style-definition]
  134 | TclX_ServerCreateCmd (clientData, interp, argc, argv)
      | ^~~~~~~~~~~~~~~~~~~~
./unix/tclXunixSock.c:227:41: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  227 |     channel = Tcl_MakeTcpClientChannel ((ClientData) socketFD);
      |                                         ^
./unix/tclXunixSock.c: In function ‘TclX_ServerAcceptCmd’:
./unix/tclXunixSock.c:261:1: warning: old-style function definition [-Wold-style-definition]
  261 | TclX_ServerAcceptCmd (clientData, interp, argc, argv)
      | ^~~~~~~~~~~~~~~~~~~~
./unix/tclXunixSock.c:328:24: warning: pointer targets in passing argument 3 of ‘accept’ differ in signedness [-Wpointer-sign]
  328 |                        &addrLen);
      |                        ^~~~~~~~
      |                        |
      |                        int *
In file included from /usr/include/tcl8.6/tcl-private/unix/tclUnixPort.h:182,
                 from /usr/include/tcl8.6/tcl-private/generic/tclPort.h:23,
                 from /usr/include/tcl8.6/tcl-private/generic/tclInt.h:36,
                 from ./generic/tclExtdInt.h:26,
                 from ./unix/tclXunixSock.c:22:
/usr/include/x86_64-linux-gnu/sys/socket.h:307:42: note: expected ‘socklen_t * restrict’ {aka ‘unsigned int * restrict’} but argument is of type ‘int *’
  307 |                    socklen_t *__restrict __addr_len);
      |                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
./unix/tclXunixSock.c: In function ‘TclX_ServerInit’:
./unix/tclXunixSock.c:354:1: warning: old-style function definition [-Wold-style-definition]
  354 | TclX_ServerInit (interp)
      | ^~~~~~~~~~~~~~~
./unix/tclXunixSock.c:363:43: error: passing argument 5 of ‘tclStubsPtr->tcl_CreateCommand’ from incompatible pointer type [-Wincompatible-pointer-types]
  363 |                        (ClientData) NULL, (void (*)()) NULL);
      |                                           ^
      |                                           |
      |                                           void (*)(void)
./unix/tclXunixSock.c:363:43: note: expected ‘void (*)(void *)’ but argument is of type ‘void (*)(void)’
./unix/tclXunixSock.c:365:43: error: passing argument 5 of ‘tclStubsPtr->tcl_CreateCommand’ from incompatible pointer type [-Wincompatible-pointer-types]
  365 |                        (ClientData) NULL, (void (*)()) NULL);
      |                                           ^
      |                                           |
      |                                           void (*)(void)
./unix/tclXunixSock.c:365:43: note: expected ‘void (*)(void *)’ but argument is of type ‘void (*)(void)’
make[1]: *** [Makefile:290: tclXunixSock.o] Error 1
make[1]: Leaving directory '/build/reproducible-path/tclx8.4-8.4.1'
make: *** [debian/rules:67: build-stamp-static] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1097972#14
Date:
2025-09-06 13:05:37 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
tclx8.4, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1097972@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Sergei Golovan <sgolovan@debian.org> (supplier of updated tclx8.4 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sat, 06 Sep 2025 12:50:41 +0300
Source: tclx8.4
Architecture: source
Version: 8.4.1-6
Distribution: unstable
Urgency: medium
Maintainer: Debian Tcl/Tk Team <pkg-tcltk-devel@lists.alioth.debian.org>
Changed-By: Sergei Golovan <sgolovan@debian.org>
Closes: 1097972
Changes:
 tclx8.4 (8.4.1-6) unstable; urgency=medium
 .
   * Fix FTBFS when build with GCC 15 (closes: #1097972).
Checksums-Sha1:
 f9ea3af9f51fe46a8d5380ca3a282de65eb9196e 2047 tclx8.4_8.4.1-6.dsc
 e04d641534e8979f3db628aa0c891ca5ec0183e6 7696 tclx8.4_8.4.1-6.debian.tar.xz
 34dd55fee191b68f52ffe24784da138692e2c17b 6523 tclx8.4_8.4.1-6_amd64.buildinfo
Checksums-Sha256:
 4171b8733e83c36a18f22921889108476b56829a9edd76a5e1be31b898fd655b 2047 tclx8.4_8.4.1-6.dsc
 dd5e776e188e5524eb1091b19ff97cb809bd510ff03a9c595c908d902a1c2979 7696 tclx8.4_8.4.1-6.debian.tar.xz
 493675545a2928342bf34c496267b0cc50610161402077729a913f147bc3824e 6523 tclx8.4_8.4.1-6_amd64.buildinfo
Files:
 b7f91f7b3388ea58869d8a1e9bbe20d7 2047 libs optional tclx8.4_8.4.1-6.dsc
 8f272e662344bbddbd888ab1f97d7a70 7696 libs optional tclx8.4_8.4.1-6.debian.tar.xz
 388762f9ecd9f9e476aaaf89502c660f 6523 libs optional tclx8.4_8.4.1-6_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE/SYPsyDB+ShSnvc4Tyrk60tj54cFAmi8BFYACgkQTyrk60tj
54eUuQ/+LDfueGIvb6LlWNsbT/cryg9Hl89+FgxWZirggFSeuBLzqG+OJV3SJ3M1
WcUFAJ+xDvA7w3M6sssuYc5pBqrI6ZbQMO7fW2XHRCqwsNQFXbz0vH2PbrCCNOWA
Kj6sWXp+z8azQM55XtAx7YLYykSLxZAB56XMjlNPNHOI7P9CskId6WxtZkdmKDAC
qkRAD6pIZzJGrUXhvdbxZ8/SxJsVudTneoZhQUPD24H5nbcvcHnZtlt1YdD4MvAX
rDqNLoHRc6hlql9HhEFKuGSLTLt2OuSoNXspuOo/+vdR56m++PMwswYHvwSoY6hH
s2B7b9922rT8GLvlxP/eRmxH2dZGPRT0NBOaAP1oais2TvZsEW1P52I2X6hdsKDn
S1WLhNZRxzoo9clp41QBUXwdF/WeuJG5e7gzA7V7XEmc7QGWFeTIOCPLYeFwsuB6
e/8dKU8tzBY13/YhePMhF1iZOs2n6J5Sm4oHiXoCFmP2n57iP3OvCYj3RkJc9u9q
OwFnbC0nQBTgqrAAiJQ12z6R5VRX0kpfKYlhFcKNZA6dGeCchXt6DKMukjBuCCsO
aH/DOaHxS6tHurSMh+QqO6gbfNl0MlrT/pJi1fiZWp0z182Jqd6ELB6N+/rHIqI6
dgdbA0JKjjyJBdPYIw1RShU+8Zpq4z9N2xtm6dYJtwkfHmHAjU4=
=Y+7f
-----END PGP SIGNATURE-----