#1077205 cython: generated code does not compile with gcc-14

Package:
src:cython
Source:
src:cython
Submitter:
Picca Frédéric-Emmanuel
Date:
2024-08-05 18:00:08 UTC
Severity:
normal
#1077205#5
Date:
2024-07-26 18:55:48 UTC
From:
To:
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