Dear Maintainer,
while working on the pyfai packages, I got an FTBFS due to gcc-14.
like this
[34/91] cc -Isrc/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p -Isrc/pyFAI/ext -I../src/pyFAI/ext -I/usr/include/python3.12 -fvisibility=hidden -fdiagnostics-color=always -DNDEBUG -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -MD -MQ src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/meson-generated_src_pyFAI_ext_sparse_utils.pyx.c.o -MF src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/meson-generated_src_pyFAI_ext_sparse_utils.pyx.c.o.d -o src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/meson-generated_src_pyFAI_ext_sparse_utils.pyx.c.o -c src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/src/pyFAI/ext/sparse_utils.pyx.c
FAILED: src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/meson-generated_src_pyFAI_ext_sparse_utils.pyx.c.o
cc -Isrc/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p -Isrc/pyFAI/ext -I../src/pyFAI/ext -I/usr/include/python3.12 -fvisibility=hidden -fdiagnostics-color=always -DNDEBUG -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -MD -MQ src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/meson-generated_src_pyFAI_ext_sparse_utils.pyx.c.o -MF src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/meson-generated_src_pyFAI_ext_sparse_utils.pyx.c.o.d -o src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/meson-generated_src_pyFAI_ext_sparse_utils.pyx.c.o -c src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/src/pyFAI/ext/sparse_utils.pyx.c
src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/src/pyFAI/ext/sparse_utils.pyx.c: In function ‘__pyx_pf_5pyFAI_3ext_12sparse_utils_12ArrayBuilder___cinit__’:
src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/src/pyFAI/ext/sparse_utils.pyx.c:45695:17: error: assignment to ‘struct __pyx_obj_5pyFAI_3ext_12sparse_utils_Vector *’ from incompatible pointer type ‘PyObject *’ {aka ‘struct _object *’} [-Wincompatible-pointer-types]
45695 | *__pyx_t_10 = __pyx_t_1;
| ^
src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/src/pyFAI/ext/sparse_utils.pyx.c: In function ‘__pyx_pf_5pyFAI_3ext_12sparse_utils_12ArrayBuilder_2__dealloc__’:
src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/src/pyFAI/ext/sparse_utils.pyx.c:45783:16: error: assignment to ‘struct __pyx_obj_5pyFAI_3ext_12sparse_utils_Vector *’ from incompatible pointer type ‘PyObject *’ {aka ‘struct _object *’} [-Wincompatible-pointer-types]
45783 | *__pyx_t_5 = Py_None;
| ^
src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/src/pyFAI/ext/sparse_utils.pyx.c: At top level:
src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/src/pyFAI/ext/sparse_utils.pyx.c:61594:12: warning: ‘__pyx_memview_set_object’ defined but not used [-Wunused-function]
61594 | static int __pyx_memview_set_object(const char *itemp, PyObject *obj) {
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/pyFAI/ext/sparse_utils.cpython-312-x86_64-linux-gnu.so.p/src/pyFAI/ext/sparse_utils.pyx.c:61589:20: warning: ‘__pyx_memview_get_object’ defined but not used [-Wunused-function]
61589 | static PyObject *__pyx_memview_get_object(const char *itemp) {
| ^~~~~~~~~~~~~~~~~~~~~~~~
It seems that gcc-14 considere that incompatible-pointer-types is now an error.
The workaround proposed by cython is for now to retrograde the erroor int a warning with this flag
This is now an error in GCC 14: gcc-mirror/gcc@9715c54 .
A temporary workaround is to set CFLAGS="${CFLAGS} -Wno-error=incompatible-pointer-types".
https://github.com/cython/cython/issues/5240
since febuary 2024...
Cheers
Frederic