[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1096826: icon: ftbfs with GCC-15



Package: src:icon
Version: 9.5.24a-2
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/icon_9.5.24a-2_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

[...]
rttdb.c: In function 'dumpdb':
rttdb.c:286:57: error: passing argument 6 of 'prt_impls' from incompatible pointer type [-Wincompatible-pointer-types]
  286 |    prt_impls(db, "functions", bhash, num_fnc, sort_ary, name_cmp);
      |                                                         ^~~~~~~~
      |                                                         |
      |                                                         int (*)(char *, char *)
rttdb.c:20:72: note: expected 'int (*)(void)' but argument is of type 'int (*)(char *, char *)'
   20 |                            int num, struct implement **sort_ary, int (*com)());
      |                                                                  ~~~~~~^~~~~~
rttdb.c:16:16: note: 'name_cmp' declared here
   16 | static int     name_cmp  (char *p1, char *p2);
      |                ^~~~~~~~
rttdb.c:287:58: error: passing argument 6 of 'prt_impls' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |    prt_impls(db, "\noperators", ohash, num_op, sort_ary, op_cmp);
      |                                                          ^~~~~~
      |                                                          |
      |                                                          int (*)(char *, char *)
rttdb.c:20:72: note: expected 'int (*)(void)' but argument is of type 'int (*)(char *, char *)'
   20 |                            int num, struct implement **sort_ary, int (*com)());
      |                                                                  ~~~~~~^~~~~~
rttdb.c:17:16: note: 'op_cmp' declared here
   17 | static int     op_cmp    (char *p1, char *p2);
      |                ^~~~~~
rttdb.c:288:58: error: passing argument 6 of 'prt_impls' from incompatible pointer type [-Wincompatible-pointer-types]
  288 |    prt_impls(db, "\nkeywords", khash, num_key, sort_ary, name_cmp);
      |                                                          ^~~~~~~~
      |                                                          |
      |                                                          int (*)(char *, char *)
rttdb.c:20:72: note: expected 'int (*)(void)' but argument is of type 'int (*)(char *, char *)'
   20 |                            int num, struct implement **sort_ary, int (*com)());
      |                                                                  ~~~~~~^~~~~~
rttdb.c:16:16: note: 'name_cmp' declared here
   16 | static int     name_cmp  (char *p1, char *p2);
      |                ^~~~~~~~
rttdb.c: In function 'prt_impls':
rttdb.c:327:64: error: passing argument 4 of 'qsort' from incompatible pointer type [-Wincompatible-pointer-types]
  327 |       qsort((char *)sort_ary, num, sizeof(struct implement *), cmp);
      |                                                                ^~~
      |                                                                |
      |                                                                int (*)(void)
In file included from ../preproc/../h/../h/sys.h:15,
                 from ../preproc/../h/gsupport.h:9,
                 from ../preproc/preproc.h:1,
                 from rtt1.h:1,
                 from rtt.h:2,
                 from rttdb.c:6:
/usr/include/stdlib.h:971:34: note: expected '__compar_fn_t' {aka 'int (*)(const void *, const void *)'} but argument is of type 'int (*)(void)'
  971 |                    __compar_fn_t __compar) __nonnull ((1, 4));
      |                    ~~~~~~~~~~~~~~^~~~~~~~
/usr/include/stdlib.h:948:15: note: '__compar_fn_t' declared here
  948 | typedef int (*__compar_fn_t) (const void *, const void *);
      |               ^~~~~~~~~~~~~
rttdb.c: In function 'prt_dpnd':
rttdb.c:1091:10: error: passing argument 4 of 'qsort' from incompatible pointer type [-Wincompatible-pointer-types]
 1091 |          (int (*)())src_cmp);
      |          ^~~~~~~~~~~~~~~~~~
      |          |
      |          int (*)(void)
/usr/include/stdlib.h:971:34: note: expected '__compar_fn_t' {aka 'int (*)(const void *, const void *)'} but argument is of type 'int (*)(void)'
  971 |                    __compar_fn_t __compar) __nonnull ((1, 4));
      |                    ~~~~~~~~~~~~~~^~~~~~~~
/usr/include/stdlib.h:948:15: note: '__compar_fn_t' declared here
  948 | typedef int (*__compar_fn_t) (const void *, const void *);
      |               ^~~~~~~~~~~~~
make[2]: *** [<builtin>: rttdb.o] Error 1
make[2]: Leaving directory '/build/reproducible-path/icon-9.5.24a/src/rtt'
make[1]: *** [Makefile:68: bin/icont] Error 2
make[1]: Leaving directory '/build/reproducible-path/icon-9.5.24a'
make: *** [debian/rules:47: build-ipl] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2


Reply to: