Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fails to build with GCC 15 #30

Closed
sebastic opened this issue Feb 18, 2025 · 2 comments
Closed

Fails to build with GCC 15 #30

sebastic opened this issue Feb 18, 2025 · 2 comments

Comments

@sebastic
Copy link
Contributor

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
@mohawk2
Copy link
Member

mohawk2 commented Feb 19, 2025

Thanks for the report. The above-linked commit fixes the issues shown in the error log (and also in the Real equivalents). Could you try it and report here whether it works?

@sebastic
Copy link
Contributor Author

Confirmed fixed with the changes from 793fd8f.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants