Skip to content

Fails to build with GCC 15 #30

@sebastic

Description

@sebastic

As reported in Debian Bug #1097247:

The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/libpdl-linearalgebra-perl_0.433-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

[...]
lib/PDL/LinearAlgebra/Complex-pp-cgges.c: In function ‘pdl_cgges_readdata’:
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:284:25: error: passing argument 4 of ‘cgges_’ from incompatible pointer type [-Wincompatible-pointer-types]
  284 |                         fgselect_wrapper,
      |                         ^~~~~~~~~~~~~~~~
      |                         |
      |                         PDL_Long (*)(float *) {aka int (*)(float *)}
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:263:25: note: expected ‘L_fp’ {aka ‘int (*)(void)’} but argument is of type ‘PDL_Long (*)(float *)’ {aka ‘int (*)(float *)’}
  262 |       PDL_BROADCASTLOOP_START_cgges_readdata    {               extern int FORTRAN(cgges)(char *jobvsl, char *jobvsr, char *sort, L_fp
      |                                                                                                                                   ~~~~
  263 |                         delctg, integer *n, void *a, integer *lda, void *b,
      |                         ^~~~~~
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:75:10: note: ‘fgselect_wrapper’ declared here
   75 | PDL_Long fgselect_wrapper(float *p);
      |          ^~~~~~~~~~~~~~~~
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:37:19: note: ‘L_fp’ declared here
   37 | typedef logical (*L_fp)();
      |                   ^~~~
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:310:25: error: passing argument 4 of ‘cgges_’ from incompatible pointer type [-Wincompatible-pointer-types]
  310 |                         fgselect_wrapper,
      |                         ^~~~~~~~~~~~~~~~
      |                         |
      |                         PDL_Long (*)(float *) {aka int (*)(float *)}
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:263:25: note: expected ‘L_fp’ {aka ‘int (*)(void)’} but argument is of type ‘PDL_Long (*)(float *)’ {aka ‘int (*)(float *)’}
  262 |       PDL_BROADCASTLOOP_START_cgges_readdata    {               extern int FORTRAN(cgges)(char *jobvsl, char *jobvsr, char *sort, L_fp
      |                                                                                                                                   ~~~~
  263 |                         delctg, integer *n, void *a, integer *lda, void *b,
      |                         ^~~~~~
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:75:10: note: ‘fgselect_wrapper’ declared here
   75 | PDL_Long fgselect_wrapper(float *p);
      |          ^~~~~~~~~~~~~~~~
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:37:19: note: ‘L_fp’ declared here
   37 | typedef logical (*L_fp)();
      |                   ^~~~
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:356:25: error: passing argument 4 of ‘zgges_’ from incompatible pointer type [-Wincompatible-pointer-types]
  356 |                         dgselect_wrapper,
      |                         ^~~~~~~~~~~~~~~~
      |                         |
      |                         PDL_Long (*)(double *) {aka int (*)(double *)}
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:335:25: note: expected ‘L_fp’ {aka ‘int (*)(void)’} but argument is of type ‘PDL_Long (*)(double *)’ {aka ‘int (*)(double *)’}
  334 |       PDL_BROADCASTLOOP_START_cgges_readdata    {               extern int FORTRAN(zgges)(char *jobvsl, char *jobvsr, char *sort, L_fp
      |                                                                                                                                   ~~~~
  335 |                         delctg, integer *n, void *a, integer *lda, void *b,
      |                         ^~~~~~
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:76:10: note: ‘dgselect_wrapper’ declared here
   76 | PDL_Long dgselect_wrapper(double *p);
      |          ^~~~~~~~~~~~~~~~
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:37:19: note: ‘L_fp’ declared here
   37 | typedef logical (*L_fp)();
      |                   ^~~~
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:382:25: error: passing argument 4 of ‘zgges_’ from incompatible pointer type [-Wincompatible-pointer-types]
  382 |                         dgselect_wrapper,
      |                         ^~~~~~~~~~~~~~~~
      |                         |
      |                         PDL_Long (*)(double *) {aka int (*)(double *)}
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:335:25: note: expected ‘L_fp’ {aka ‘int (*)(void)’} but argument is of type ‘PDL_Long (*)(double *)’ {aka ‘int (*)(double *)’}
  334 |       PDL_BROADCASTLOOP_START_cgges_readdata    {               extern int FORTRAN(zgges)(char *jobvsl, char *jobvsr, char *sort, L_fp
      |                                                                                                                                   ~~~~
  335 |                         delctg, integer *n, void *a, integer *lda, void *b,
      |                         ^~~~~~
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:76:10: note: ‘dgselect_wrapper’ declared here
   76 | PDL_Long dgselect_wrapper(double *p);
      |          ^~~~~~~~~~~~~~~~
lib/PDL/LinearAlgebra/Complex-pp-cgges.c:37:19: note: ‘L_fp’ declared here
   37 | typedef logical (*L_fp)();
      |                   ^~~~
make[1]: *** [Makefile:356: lib/PDL/LinearAlgebra/Complex-pp-cgges.o] Error 1
make[1]: Leaving directory '/build/reproducible-path/libpdl-linearalgebra-perl-0.433'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:7: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions