Bug#1097179: libdbd-pg-perl: ftbfs with GCC-15
Matthias Klose
doko at debian.org
Mon Feb 17 17:30:54 GMT 2025
Package: src:libdbd-pg-perl
Version: 3.18.0-1
Severity: important
Tags: sid forky
User: debian-gcc at 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/libdbd-pg-perl_3.18.0-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
[...]
436 | {SQL_TYPE_TIMESTAMP,"SQL_TYPE_TIMESTAMP",1,',', "none", quote_string, dequote_string, {PG_TIMESTAMP}, 0},
| ^~~~~~~~~~~~
types.c:436:58: note: (near initialization for 'sql_types[21].quote')
quote.h:3:8: note: 'quote_string' declared here
3 | char * quote_string(pTHX_ const char *string, STRLEN len, STRLEN *retlen, int estring);
| ^~~~~~~~~~~~
types.c:436:72: error: initialization of 'void (*)(void)' from incompatible pointer type 'void (*)(PerlInterpreter *, const char *, STRLEN *, int)' {aka 'void (*)(struct interpreter *, const char *, long unsigned int *, int)'} [-Wincompatible-pointer-types]
436 | {SQL_TYPE_TIMESTAMP,"SQL_TYPE_TIMESTAMP",1,',', "none", quote_string, dequote_string, {PG_TIMESTAMP}, 0},
| ^~~~~~~~~~~~~~
types.c:436:72: note: (near initialization for 'sql_types[21].dequote')
quote.h:15:6: note: 'dequote_string' declared here
15 | void dequote_string(pTHX_ const char *string, STRLEN *retlen, int estring);
| ^~~~~~~~~~~~~~
types.c:437:86: error: initialization of 'char * (*)(void)' from incompatible pointer type 'char * (*)(PerlInterpreter *, const char *, STRLEN, STRLEN *, int)' {aka 'char * (*)(struct interpreter *, const char *, long unsigned int, long unsigned int *, int)'} [-Wincompatible-pointer-types]
437 | {SQL_TYPE_TIMESTAMP_WITH_TIMEZONE,"SQL_TYPE_TIMESTAMP_WITH_TIMEZONE",1,',', "none", quote_string, dequote_string, {PG_TIMESTAMPTZ}, 0},
| ^~~~~~~~~~~~
types.c:437:86: note: (near initialization for 'sql_types[22].quote')
quote.h:3:8: note: 'quote_string' declared here
3 | char * quote_string(pTHX_ const char *string, STRLEN len, STRLEN *retlen, int estring);
| ^~~~~~~~~~~~
types.c:437:100: error: initialization of 'void (*)(void)' from incompatible pointer type 'void (*)(PerlInterpreter *, const char *, STRLEN *, int)' {aka 'void (*)(struct interpreter *, const char *, long unsigned int *, int)'} [-Wincompatible-pointer-types]
437 | {SQL_TYPE_TIMESTAMP_WITH_TIMEZONE,"SQL_TYPE_TIMESTAMP_WITH_TIMEZONE",1,',', "none", quote_string, dequote_string, {PG_TIMESTAMPTZ}, 0},
| ^~~~~~~~~~~~~~
types.c:437:100: note: (near initialization for 'sql_types[22].dequote')
quote.h:15:6: note: 'dequote_string' declared here
15 | void dequote_string(pTHX_ const char *string, STRLEN *retlen, int estring);
| ^~~~~~~~~~~~~~
types.c:438:76: error: initialization of 'char * (*)(void)' from incompatible pointer type 'char * (*)(PerlInterpreter *, const char *, STRLEN, STRLEN *, int)' {aka 'char * (*)(struct interpreter *, const char *, long unsigned int, long unsigned int *, int)'} [-Wincompatible-pointer-types]
438 | {SQL_TYPE_TIME_WITH_TIMEZONE,"SQL_TYPE_TIME_WITH_TIMEZONE",1,',', "none", quote_string, dequote_string, {PG_TIMESTAMPTZ}, 0},
| ^~~~~~~~~~~~
types.c:438:76: note: (near initialization for 'sql_types[23].quote')
quote.h:3:8: note: 'quote_string' declared here
3 | char * quote_string(pTHX_ const char *string, STRLEN len, STRLEN *retlen, int estring);
| ^~~~~~~~~~~~
types.c:438:90: error: initialization of 'void (*)(void)' from incompatible pointer type 'void (*)(PerlInterpreter *, const char *, STRLEN *, int)' {aka 'void (*)(struct interpreter *, const char *, long unsigned int *, int)'} [-Wincompatible-pointer-types]
438 | {SQL_TYPE_TIME_WITH_TIMEZONE,"SQL_TYPE_TIME_WITH_TIMEZONE",1,',', "none", quote_string, dequote_string, {PG_TIMESTAMPTZ}, 0},
| ^~~~~~~~~~~~~~
types.c:438:90: note: (near initialization for 'sql_types[23].dequote')
quote.h:15:6: note: 'dequote_string' declared here
15 | void dequote_string(pTHX_ const char *string, STRLEN *retlen, int estring);
| ^~~~~~~~~~~~~~
types.c:439:44: error: initialization of 'char * (*)(void)' from incompatible pointer type 'char * (*)(PerlInterpreter *, const char *, STRLEN, STRLEN *, int)' {aka 'char * (*)(struct interpreter *, const char *, long unsigned int, long unsigned int *, int)'} [-Wincompatible-pointer-types]
439 | {SQL_VARCHAR,"SQL_VARCHAR",1,',', "none", quote_string, dequote_string, {PG_VARCHAR}, 0},
| ^~~~~~~~~~~~
types.c:439:44: note: (near initialization for 'sql_types[24].quote')
quote.h:3:8: note: 'quote_string' declared here
3 | char * quote_string(pTHX_ const char *string, STRLEN len, STRLEN *retlen, int estring);
| ^~~~~~~~~~~~
types.c:439:58: error: initialization of 'void (*)(void)' from incompatible pointer type 'void (*)(PerlInterpreter *, const char *, STRLEN *, int)' {aka 'void (*)(struct interpreter *, const char *, long unsigned int *, int)'} [-Wincompatible-pointer-types]
439 | {SQL_VARCHAR,"SQL_VARCHAR",1,',', "none", quote_string, dequote_string, {PG_VARCHAR}, 0},
| ^~~~~~~~~~~~~~
types.c:439:58: note: (near initialization for 'sql_types[24].dequote')
quote.h:15:6: note: 'dequote_string' declared here
15 | void dequote_string(pTHX_ const char *string, STRLEN *retlen, int estring);
| ^~~~~~~~~~~~~~
make[1]: *** [Makefile:360: types.o] Error 1
Pg.xs: In function 'XS_DBD__Pg__db_quote':
Pg.xs:330:22: error: too many arguments to function 'type_info->quote'; expected 0, have 5
330 | quoted = type_info->quote(aTHX_ to_quote, len, &retlen, imp_dbh->pg_server_version >= 80100 ? 1 : 0);
| ^~~~~~~~~
In file included from Pg.h:66,
from Pg.xs:14:
types.h:11:15: note: declared here
11 | char* (*quote)();
| ^~~~~
make[1]: *** [Makefile:360: Pg.o] Error 1
make[1]: Leaving directory '/build/reproducible-path/libdbd-pg-perl-3.18.0'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:18: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
More information about the pkg-perl-maintainers
mailing list