Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
proton-c-0.36.0
-
None
Description
https://github.com/jiridanek/qpid-proton/runs/4127177911?check_suite_focus=true#step:11:548
This is main branch with one extra commit that changes Python version in GitHub Actions to 3.10. Note that in Yaml it is necessary to quote the 3.10, otherwise you end up passing a float of 3.1.
cproton_wrap.c D:\a\qpid-proton\qpid-proton\BLD\python\dist\include\proton/object.h(242): error C2061: syntax error: identifier 'pn_list_index' [D:\a\qpid-proton\qpid-proton\BLD\python\py_pkg_wheel.vcxproj] D:\a\qpid-proton\qpid-proton\BLD\python\dist\include\proton/object.h(242): error C2059: syntax error: ';' [D:\a\qpid-proton\qpid-proton\BLD\python\py_pkg_wheel.vcxproj] D:\a\qpid-proton\qpid-proton\BLD\python\dist\include\proton/object.h(242): error C2059: syntax error: '<parameter-list>' [D:\a\qpid-proton\qpid-proton\BLD\python\py_pkg_wheel.vcxproj] D:\a\qpid-proton\qpid-proton\BLD\python\dist\include\proton/object.h(280): error C2061: syntax error: identifier 'pn_string_put' [D:\a\qpid-proton\qpid-proton\BLD\python\py_pkg_wheel.vcxproj]
It looks that Python header file stopped defining ssize_t alias on Windows. The Proton headers have a special case for the define that assumes Python will define it.
# ifndef PNI_DEFINE_SSIZE_T
/* ssize_t def is needed, unless third party definition interferes, e.g. python/swig */
# ifndef Py_CONFIG_H
# define PNI_DEFINE_SSIZE_T
# endif
# endif
On the Python side, see https://bugs.python.org/issue11717 and https://github.com/python/cpython/pull/24479