Hi,
octave-netcdf fails to build in a test rebuild on at least amd64 and arm64 with
gcc-16/g++-16, but builds properly with gcc-15/g++-15. The severity of this
report will be raised before the forky release.
The full build log can be found at:
https://people.debian.org/~ema/gcc-16-rebuilds/output-1/octave-netcdf_arm64.build.xz
The last lines of the build log are at the end of this report.
To build with GCC 16, either set CC=gcc-16 CXX=g++-16 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.
apt-get -t=experimental install g++
Common build failures include unused (but set) variables, array subscripts
partly outside array bounds, and new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-16/porting_to.html
Please only close this issue after double-checking that the package can be
built correctly with GCC 16.
Please do not reassign this bug to another package. If a fix in another package
is required, then file a bug for the other package (or clone), and mark this
bug as blocked by the bug in the other package.
[...]
make[2]: Leaving directory '/build/reproducible-path/octave-netcdf-1.0.19'
make[1]: Leaving directory '/build/reproducible-path/octave-netcdf-1.0.19'
dh_auto_build -O--buildsystem=octave
dh_auto_test -O--buildsystem=octave
create-stamp debian/debhelper-build-stamp
dh_testroot -O--buildsystem=octave
dh_prep -O--buildsystem=octave
dh_auto_install --destdir=debian/octave-netcdf/ -O--buildsystem=octave
octave --no-gui --no-history --silent --no-init-file --no-window-system /usr/share/dh-octave/install-pkg.m /build/reproducible-path/octave-netcdf-1.0.19/debian/octave-netcdf/usr/share/octave/packages /build/reproducible-path/octave-netcdf-1.0.19/debian/octave-netcdf/usr/lib/aarch64-linux-gnu/octave/packages
mkdir (/tmp/oct-6zw5ZU)
untar (/tmp//octave-netcdf-1.0.19.tar.gz, /tmp/oct-6zw5ZU)
checking build system type... aarch64-unknown-linux-gnu
checking host system type... aarch64-unknown-linux-gnu
checking target system type... aarch64-unknown-linux-gnu
checking for gawk... no
checking for mawk... mawk
checking for a sed that does not truncate output... /usr/bin/sed
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... -std=gnu++11
checking for mkoctfile... /usr/bin/mkoctfile --verbose
checking for nc-config... nc-config
checking for netcdf4 support... yes
checking is_cell or iscell... is_cell
checking is_empty or isempty... is_empty
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
octave-forge is configured with
mkoctfile: /usr/bin/mkoctfile --verbose
nc-config: nc-config
netCDF compiler flags: -I/usr/include -I/usr/include/hdf5/serial
netCDF libraries: -L/usr/lib/aarch64-linux-gnu -L/usr/lib/aarch64-linux-gnu/hdf5/serial -lnetcdf
make[1]: Entering directory '/tmp/oct-6zw5ZU/octave-netcdf-1.0.19/src'
generating netcdf_constants.h
/usr/bin/mkoctfile --verbose -v -I/usr/include -I/usr/include/hdf5/serial __netcdf__.cc -L/usr/lib/aarch64-linux-gnu -L/usr/lib/aarch64-linux-gnu/hdf5/serial -lnetcdf
g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-11.1.0/octave/.. -I/usr/include/octave-11.1.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-netcdf-1.0.19=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -I/usr/include -I/usr/include/hdf5/serial __netcdf__.cc -o /tmp/oct-3CH7eo.o
In file included from __netcdf__.cc:30:
__netcdf__.cc: In function ‘octave_value_list Fnetcdf_defVar(const octave_value_list&, int)’:
config.h:10:20: error: ‘const class octave_value’ has no member named ‘is_empty’; did you mean ‘isempty’?
10 | #define OV_ISEMPTY is_empty
| ^~~~~~~~
__netcdf__.cc:622:16: note: in expansion of macro ‘OV_ISEMPTY’
622 | if (!args(3).OV_ISEMPTY()) {
| ^~~~~~~~~~
__netcdf__.cc: In function ‘octave_value_list Fnetcdf_putVar(const octave_value_list&, int)’:
config.h:7:19: error: ‘class octave_value’ has no member named ‘is_cell’; did you mean ‘iscell’?
7 | #define OV_ISCELL is_cell
| ^~~~~~~
__netcdf__.cc:1193:17: note: in expansion of macro ‘OV_ISCELL’
1193 | if (!data.OV_ISCELL())
| ^~~~~~~~~
make[1]: *** [Makefile:43: __netcdf__.oct] Error 1
make[1]: Leaving directory '/tmp/oct-6zw5ZU/octave-netcdf-1.0.19/src'
error: pkg: error running 'make' for the netcdf package
error: called from
configure_make at line 121 column 9
install at line 202 column 7
pkg at line 692 column 9
/usr/share/dh-octave/install-pkg.m at line 45 column 1
dh_auto_install: error: octave --no-gui --no-history --silent --no-init-file --no-window-system /usr/share/dh-octave/install-pkg.m /build/reproducible-path/octave-netcdf-1.0.19/debian/octave-netcdf/usr/share/octave/packages /build/reproducible-path/octave-netcdf-1.0.19/debian/octave-netcdf/usr/lib/aarch64-linux-gnu/octave/packages returned exit code 1
make: *** [debian/rules:5: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2