diff --git a/meta-python/recipes-devtools/python/python3-fann2/0002-fann2.i-add-py2-py3-C-API-compat-macros.patch b/meta-python/recipes-devtools/python/python3-fann2/0002-fann2.i-add-py2-py3-C-API-compat-macros.patch new file mode 100644 index 0000000000..03f59b38ba --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-fann2/0002-fann2.i-add-py2-py3-C-API-compat-macros.patch @@ -0,0 +1,36 @@ +From: Khem Raj +Subject: fann2.i: add py2/py3 C-API compat macros + +The HELPER_ARRAY_TEMPLATE typemaps in fann2.i use the Python 2 C-API +names PyInt_Check/PyInt_AsLong/PyInt_FromLong. Python 3.14 no longer +ships any fallback definitions for them, so the SWIG-generated wrapper +fails to compile: + + fann2/fann2_wrap.cxx:10062:41: error: use of undeclared identifier 'PyInt_AsLong'; did you mean 'PyLong_AsLong'? + +Map them to their PyLong_* equivalents. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- +--- a/fann2/fann2.i ++++ b/fann2/fann2.i +@@ -15,6 +15,18 @@ + #include "fann_cpp_subclass.h" + %} + ++%{ ++#ifndef PyInt_Check ++#define PyInt_Check(x) PyLong_Check(x) ++#endif ++#ifndef PyInt_AsLong ++#define PyInt_AsLong(x) PyLong_AsLong(x) ++#endif ++#ifndef PyInt_FromLong ++#define PyInt_FromLong(x) PyLong_FromLong(x) ++#endif ++%} ++ + %define HELPER_ARRAY_TEMPLATE( templ , T, GetFunc, SetFunc, cast) + %typemap(in) templ * (templ temp){ + // templ* type_map in diff --git a/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb b/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb index 3053ca5d71..c2170f6bb0 100644 --- a/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb +++ b/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb @@ -6,6 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c73b943dc75f6f65e007c56ac6515c8f" SRC_URI[sha256sum] = "cdca0a65ad48e08320672affe38c3dd4ea15e27821e5e1db9fa2b34299bdd41e" SRC_URI += " file://0001-setup.py-Don-t-hardcode-swig-and-fann2-binary-locati.patch" +SRC_URI += " file://0002-fann2.i-add-py2-py3-C-API-compat-macros.patch" inherit pypi setuptools3