#1096488 cssc: ftbfs with GCC-15

Package:
src:cssc
Source:
src:cssc
Submitter:
Matthias Klose
Date:
2025-09-04 22:07:38 UTC
Severity:
normal
Tags:
#1096488#5
Date:
2025-02-17 17:08:49 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/cssc_1.4.1-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

[...]
g++ -DHAVE_CONFIG_H -I. -I..  -I ../gl/lib -I ./../gl/lib -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -ffile-prefix-map=/build/reproducible-path/cssc-1.4.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c -o fdclosed.o fdclosed.cc
g++ -DHAVE_CONFIG_H -I. -I..  -I ../gl/lib -I ./../gl/lib -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -ffile-prefix-map=/build/reproducible-path/cssc-1.4.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c -o showconfig.o showconfig.cc
sccsdate.cc: In member function 'std::string sccs_date::as_string() const':
sccsdate.cc:399:46: warning: '__builtin___sprintf_chk' may write a terminating nul past the end of the destination [-Wformat-overflow=]
  399 |   sprintf(buf, "%02d/%02d/%02d %02d:%02d:%02d",
      |                                              ^
In file included from /usr/include/stdio.h:970,
                 from ../gl/lib/stdio.h:43,
                 from /usr/include/c++/15/cstdio:47,
                 from /usr/include/c++/15/ext/string_conversions.h:47,
                 from /usr/include/c++/15/bits/basic_string.h:4230,
                 from /usr/include/c++/15/string:56,
                 from sccsdate.cc:30:
In function 'int sprintf(char*, const char*, ...)',
    inlined from 'std::string sccs_date::as_string() const' at sccsdate.cc:399:10:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:30:34: note: '__builtin___sprintf_chk' output between 18 and 64 bytes into a destination of size 18
   30 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   31 |                                   __glibc_objsize (__s), __fmt,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   32 |                                   __va_arg_pack ());
      |                                   ~~~~~~~~~~~~~~~~~
g++ -DHAVE_CONFIG_H -I. -I..  -I ../gl/lib -I ./../gl/lib -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -ffile-prefix-map=/build/reproducible-path/cssc-1.4.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c -o environment.o environment.cc
gcc -DHAVE_CONFIG_H -I. -I..  -I ../gl/lib -I ./../gl/lib -Wdate-time -D_FORTIFY_SOURCE=2 "-DPREFIX=\"/usr/lib/x86_64-linux-gnu/cssc/\"" -I ../gl/lib -I ./../gl/lib -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/cssc-1.4.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c -o sccs.o sccs.c
In file included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
                 from /usr/include/stdio.h:28,
                 from ../gl/lib/stdio.h:43,
                 from sccs.c:47:
/usr/include/features.h:197:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
  197 | # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
      |   ^~~~~~~
sccs.c:270:14: error: 'bool' cannot be defined via 'typedef'
  270 | typedef char bool;
      |              ^~~~
sccs.c:270:14: note: 'bool' is a keyword with '-std=c23' onwards
sccs.c:270:1: warning: useless type name in empty declaration
  270 | typedef char bool;
      | ^~~~~~~
sccs.c: In function 'main':
sccs.c:643:29: error: conflicting types for 'getpwnam'; have 'struct passwd *(void)'
  643 |       extern struct passwd *getpwnam();
      |                             ^~~~~~~~
In file included from sccs.c:59:
/usr/include/pwd.h:116:23: note: previous declaration of 'getpwnam' with type 'struct passwd *(const char *)'
  116 | extern struct passwd *getpwnam (const char *__name) __nonnull ((1));
      |                       ^~~~~~~~
sccs.c:650:16: error: too many arguments to function 'getpwnam'; expected 0, have 1
  650 |           pw = getpwnam(p);
      |                ^~~~~~~~ ~
sccs.c:643:29: note: declared here
  643 |       extern struct passwd *getpwnam();
      |                             ^~~~~~~~
sccs.c: In function 'callprog':
sccs.c:1454:7: warning: ignoring return value of 'dup' declared with attribute 'warn_unused_result' [-Wunused-result]
 1454 |       dup (OutFile);
      |       ^~~~~~~~~~~~~
make[5]: *** [Makefile:1622: sccs.o] Error 1
make[5]: *** Waiting for unfinished jobs....
make[5]: Leaving directory '/build/reproducible-path/cssc-1.4.1/src'
make[4]: *** [Makefile:1276: all] Error 2
make[4]: Leaving directory '/build/reproducible-path/cssc-1.4.1/src'
make[3]: *** [Makefile:1204: all-recursive] Error 1
make[3]: Leaving directory '/build/reproducible-path/cssc-1.4.1'
make[2]: *** [Makefile:1136: all] Error 2
make[2]: Leaving directory '/build/reproducible-path/cssc-1.4.1'
dh_auto_build: error: make -j8 returned exit code 2
make[1]: *** [debian/rules:18: override_dh_auto_build] Error 255
make[1]: Leaving directory '/build/reproducible-path/cssc-1.4.1'
make: *** [debian/rules:7: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2