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

Bug#1097858: scm: ftbfs with GCC-15



Package: src:scm
Version: 5f4-3
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/scm_5f4-3_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

[...]
      |                ^~~~~~~~~~~~~~
scm.c: In function ‘scm_init_from_argv’:
scm.c:670:6: warning: old-style function definition [-Wold-style-definition]
  670 | void scm_init_from_argv(argc, argv, script_arg, iverbose, buf0stdin)
      |      ^~~~~~~~~~~~~~~~~~
scm.c: In function ‘final_scm’:
scm.c:692:6: warning: old-style function definition [-Wold-style-definition]
  692 | void final_scm(freeall)
      |      ^~~~~~~~~
scm.c: In function ‘init_buf0’:
scm.c:826:5: warning: old-style function definition [-Wold-style-definition]
  826 | int init_buf0(inport)
      |     ^~~~~~~~~
scm.c: In function ‘scm_execpath’:
scm.c:863:5: warning: old-style function definition [-Wold-style-definition]
  863 | SCM scm_execpath(newpath)
      |     ^~~~~~~~~~~~
scm.c: In function ‘scm_find_execpath’:
scm.c:882:7: warning: old-style function definition [-Wold-style-definition]
  882 | char *scm_find_execpath(argc, argv, script_arg)
      |       ^~~~~~~~~~~~~~~~~
scm.c: In function ‘lsystem’:
scm.c:922:5: warning: old-style function definition [-Wold-style-definition]
  922 | SCM lsystem(cmd)
      |     ^~~~~~~
scm.c: At top level:
scm.c:940:7: error: conflicting types for ‘getenv’; have ‘char *(void)’
  940 | char *getenv();
      |       ^~~~~~
In file included from scmfig.h:813,
                 from scm.h:65,
                 from scm.c:26:
/usr/include/stdlib.h:773:14: note: previous declaration of ‘getenv’ with type ‘char *(const char *)’
  773 | extern char *getenv (const char *__name) __THROW __nonnull ((1)) __wur;
      |              ^~~~~~
scm.c: In function ‘scm_getenv’:
scm.c:941:5: warning: old-style function definition [-Wold-style-definition]
  941 | SCM scm_getenv(nam)
      |     ^~~~~~~~~~
scm.c:958:9: error: too many arguments to function ‘getenv’; expected 0, have 1
  958 |   val = getenv(CHARS(nam));
      |         ^~~~~~
scm.c:940:7: note: declared here
  940 | char *getenv();
      |       ^~~~~~
scm.c: In function ‘add_feature’:
scm.c:1025:6: warning: old-style function definition [-Wold-style-definition]
 1025 | void add_feature(str)
      |      ^~~~~~~~~~~
scm.c: In function ‘init_features’:
scm.c:1036:36: error: passing argument 3 of ‘make_subr’ from incompatible pointer type [-Wincompatible-pointer-types]
 1036 |   make_subr(s_getenv, tc7_subr_1o, scm_getenv);
      |                                    ^~~~~~~~~~
      |                                    |
      |                                    SCM (*)(SCM) {aka long int (*)(long int)}
scm.h:816:64: note: expected ‘SCM (*)(void)’ {aka ‘long int (*)(void)’} but argument is of type ‘SCM (*)(SCM)’ {aka ‘long int (*)(long int)’}
  816 | SCM_EXPORT SCM  make_subr P((const char *name, int type, SCM (*fcn)()));
      |                                                          ~~~~~~^~~~~~
scm.h:97:15: note: in definition of macro ‘P’
   97 | # define P(s) s
      |               ^
scm.c:941:5: note: ‘scm_getenv’ declared here
  941 | SCM scm_getenv(nam)
      |     ^~~~~~~~~~
make[2]: *** [Makefile:320: scm.o] Error 1
make[2]: Leaving directory '/build/reproducible-path/scm-5f4'
make[1]: *** [debian/rules:32: override_dh_auto_build] Error 2
make[1]: Leaving directory '/build/reproducible-path/scm-5f4'
make: *** [debian/rules:19: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2


Reply to: