#1098116 x2x: ftbfs with GCC-15

#1098116#5
Date:
2025-02-17 18:00:59 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/x2x_1.30-11_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

[...]
x2x.c:168:16: note: declared here
  168 | static void    SendSelectionNotify();
      |                ^~~~~~~~~~~~~~~~~~~
x2x.c: In function ‘SendSelectionNotify’:
x2x.c:2457:13: warning: old-style function definition [-Wold-style-definition]
 2457 | static void SendSelectionNotify(pSelReq)
      |             ^~~~~~~~~~~~~~~~~~~
x2x.c: In function ‘ProcessSelectionClear’:
x2x.c:2476:13: warning: old-style function definition [-Wold-style-definition]
 2476 | static Bool ProcessSelectionClear(dpy, pDpyInfo, pEv)
      |             ^~~~~~~~~~~~~~~~~~~~~
x2x.c:2493:5: error: too many arguments to function ‘SendPing’; expected 0, have 2
 2493 |     SendPing(otherDpy, pOtherXtra);
      |     ^~~~~~~~ ~~~~~~~~
x2x.c:2332:13: note: declared here
 2332 | static void SendPing(dpy, pDpyXtra)
      |             ^~~~~~~~
x2x.c:2496:7: error: too many arguments to function ‘SendSelectionNotify’; expected 0, have 1
 2496 |       SendSelectionNotify(&(pDpyInfo->sEv)); /* blam! */
      |       ^~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
x2x.c:2457:13: note: declared here
 2457 | static void SendSelectionNotify(pSelReq)
      |             ^~~~~~~~~~~~~~~~~~~
x2x.c: In function ‘ProcessVisibility’:
x2x.c:2507:13: warning: old-style function definition [-Wold-style-definition]
 2507 | static Bool ProcessVisibility(dpy, pDpyInfo, pEv)
      |             ^~~~~~~~~~~~~~~~~
x2x.c: In function ‘ProcessMapping’:
x2x.c:2525:13: warning: old-style function definition [-Wold-style-definition]
 2525 | static Bool ProcessMapping(dpy, pDpyInfo, pEv)
      |             ^~~~~~~~~~~~~~
x2x.c:2538:5: error: too many arguments to function ‘RefreshPointerMapping’; expected 0, have 2
 2538 |     RefreshPointerMapping(dpy, pDpyInfo);
      |     ^~~~~~~~~~~~~~~~~~~~~ ~~~
x2x.c:174:16: note: declared here
  174 | static void    RefreshPointerMapping();
      |                ^~~~~~~~~~~~~~~~~~~~~
x2x.c: In function ‘FakeAction’:
x2x.c:2546:13: warning: old-style function definition [-Wold-style-definition]
 2546 | static void FakeAction(pDpyInfo, type, thing, bDown)
      |             ^~~~~~~~~~
x2x.c:2570:22: error: too many arguments to function ‘xmalloc’; expected 0, have 1
 2570 |       pFake = (PFAKE)xmalloc(sizeof(FAKE));
      |                      ^~~~~~~ ~~~~~~~~~~~~
x2x.c:176:17: note: declared here
  176 | static void    *xmalloc();
      |                 ^~~~~~~
x2x.c: In function ‘FakeThingsUp’:
x2x.c:2588:13: warning: old-style function definition [-Wold-style-definition]
 2588 | static void FakeThingsUp(pDpyInfo)
      |             ^~~~~~~~~~~~
x2x.c: In function ‘RefreshPointerMapping’:
x2x.c:2631:13: warning: old-style function definition [-Wold-style-definition]
 2631 | static void RefreshPointerMapping(dpy, pDpyInfo)
      |             ^~~~~~~~~~~~~~~~~~~~~
x2x.c: In function ‘xmalloc’:
x2x.c:3688:14: warning: old-style function definition [-Wold-style-definition]
 3688 | static void *xmalloc(size)
      |              ^~~~~~~
x2x.c: At top level:
x2x.c:146:16: warning: ‘ErrorHandler’ used but never defined
  146 | static int     ErrorHandler();
      |                ^~~~~~~~~~~~
make[2]: *** [Makefile:469: x2x.o] Error 1
make[2]: Leaving directory '/build/reproducible-path/x2x-1.30'
make[1]: *** [Makefile:348: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/x2x-1.30'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2