Skip to content

Fails to build with GCC 15 #10

@sebastic

Description

@sebastic

As reported in Debian Bug #1097249:

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

[...]
/usr/include/netcdf.h:1253:32: note: expected ‘signed char *’ but argument is of type ‘char *’
 1253 |                   signed char *ip);
      |                   ~~~~~~~~~~~~~^~
NetCDF.xs:2246:55: warning: pointer targets in passing argument 4 of ‘nc_get_var1_uint’ differ in signedness [-Wpointer-sign]
 2246 |       rc = nc_get_var1_uint   (ncid, varid, nc_index, &i_elem);
      |                                                       ^~~~~~~
      |                                                       |
      |                                                       int *
/usr/include/netcdf.h:1301:32: note: expected ‘unsigned int *’ but argument is of type ‘int *’
 1301 |                  unsigned int *ip);
      |                  ~~~~~~~~~~~~~~^~
NetCDF.xs:2252:60: warning: pointer targets in passing argument 4 of ‘nc_get_var1_ulonglong’ differ in signedness [-Wpointer-sign]
 2252 |       rc = nc_get_var1_ulonglong   (ncid, varid, nc_index, &ll_elem);
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long long int *
/usr/include/netcdf.h:1317:40: note: expected ‘long long unsigned int *’ but argument is of type ‘long long int *’
 1317 |                    unsigned long long *ip);
      |                    ~~~~~~~~~~~~~~~~~~~~^~
/usr/lib/x86_64-linux-gnu/perl/5.40/CORE/XSUB.h:189:28: warning: unused variable ‘targ’ [-Wunused-variable]
  189 | #define dXSTARG SV * const targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \
      |                            ^~~~
NetCDF.c:3409:9: note: in expansion of macro ‘dXSTARG’
 3409 |         dXSTARG;
      |         ^~~~~~~
NetCDF.c:3408:17: warning: unused variable ‘RETVAL’ [-Wunused-variable]
 3408 |         int     RETVAL;
      |                 ^~~~~~
rm -f blib/arch/auto/PDL/NetCDF/NetCDF.so
x86_64-linux-gnu-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/libpdl-netcdf-perl-4.25=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall -ffunction-sections -Wl,-z,relro -Wl,-z,now  -shared -L/usr/local/lib -fstack-protector-strong  NetCDF.o  -o blib/arch/auto/PDL/NetCDF/NetCDF.so  \
   -lnetcdf   \

chmod 755 blib/arch/auto/PDL/NetCDF/NetCDF.so
Manifying 1 pod document
make[2]: Leaving directory '/build/reproducible-path/libpdl-netcdf-perl-4.25'
make[1]: Leaving directory '/build/reproducible-path/libpdl-netcdf-perl-4.25'
   debian/rules override_dh_auto_test
make[1]: Entering directory '/build/reproducible-path/libpdl-netcdf-perl-4.25'
TEST_VERBOSE=1 DISPLAY="" dh_auto_test
      make -j8 test TEST_VERBOSE=1
make[2]: Entering directory '/build/reproducible-path/libpdl-netcdf-perl-4.25'
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- NetCDF.bs blib/arch/auto/PDL/NetCDF/NetCDF.bs 644
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/*.t
lib/PDL/PP.pm: loadable library and perl binaries are mismatched (got first handshake key 0xf200080, needed 0xeb80080)
t/01-Netcdf3.t ..
Dubious, test returned 1 (wstat 256, 0x100)
No subtests run
lib/PDL/PP.pm: loadable library and perl binaries are mismatched (got first handshake key 0xf200080, needed 0xeb80080)
t/02-Netcdf4.t ..
Dubious, test returned 1 (wstat 256, 0x100)
No subtests run

Test Summary Report
-------------------
t/01-Netcdf3.t (Wstat: 256 (exited 1) Tests: 0 Failed: 0)
  Non-zero exit status: 1
  Parse errors: No plan found in TAP output
t/02-Netcdf4.t (Wstat: 256 (exited 1) Tests: 0 Failed: 0)
  Non-zero exit status: 1
  Parse errors: No plan found in TAP output
Files=2, Tests=0,  0 wallclock secs ( 0.03 usr  0.01 sys +  0.23 cusr  0.04 csys =  0.31 CPU)
Result: FAIL
Failed 2/2 test programs. 0/0 subtests failed.
make[2]: *** [Makefile:1037: test_dynamic] Error 1
make[2]: Leaving directory '/build/reproducible-path/libpdl-netcdf-perl-4.25'
dh_auto_test: error: make -j8 test TEST_VERBOSE=1 returned exit code 2
make[1]: *** [debian/rules:33: override_dh_auto_test] Error 25
make[1]: Leaving directory '/build/reproducible-path/libpdl-netcdf-perl-4.25'
make: *** [debian/rules:27: binary] Error 2
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