Bug summary
When the build gets to https://github.com/matplotlib/matplotlib/blob/main/src/_tkagg.cpp#L262-L273 on Cygwin, the build fails with a few goto crosses initialization warnings, which are easy to fix (closed by #23051), and two error: ‘PyErr_SetFromWindowsErr’ was not declared in this scope, which are less easy to fix.
Code for reproduction
Actual outcome
...
lots of compiler command lines and some warnings (`array subscript has type 'char'`)
...
gcc ... -I/usr/include/python3.8 -c src/_tkagg.cpp -o build/temp.cygwin-3.3.4-x86_64-3.8/matplotlib.backends._tkagg/src/_tkagg.o -fvisibility=hidden -flto
src/_tkagg.cpp: In function ‘void load_tkinter_funcs()’:
src/_tkagg.cpp:263:9: error: ‘PyErr_SetFromWindowsErr’ was not declared in this scope
263 | PyErr_SetFromWindowsErr(0);
| ^~~~~~~~~~~~~~~~~~~~~~~
src/_tkagg.cpp:271:9: error: ‘PyErr_SetFromWindowsErr’ was not declared in this scope
271 | PyErr_SetFromWindowsErr(0);
| ^~~~~~~~~~~~~~~~~~~~~~~
src/_tkagg.cpp:283:1: error: jump to label ‘exit’
283 | exit:
| ^~~~
src/_tkagg.cpp:272:14: note: from here
272 | goto exit;
| ^~~~
src/_tkagg.cpp:274:26: note: crosses initialization of ‘bool tk_ok’
274 | bool tcl_ok = false, tk_ok = false;
| ^~~~~
src/_tkagg.cpp:274:10: note: crosses initialization of ‘bool tcl_ok’
274 | bool tcl_ok = false, tk_ok = false;
| ^~~~~~
src/_tkagg.cpp:283:1: error: jump to label ‘exit’
283 | exit:
| ^~~~
src/_tkagg.cpp:268:14: note: from here
268 | goto exit;
| ^~~~
src/_tkagg.cpp:274:26: note: crosses initialization of ‘bool tk_ok’
274 | bool tcl_ok = false, tk_ok = false;
| ^~~~~
src/_tkagg.cpp:274:10: note: crosses initialization of ‘bool tcl_ok’
274 | bool tcl_ok = false, tk_ok = false;
| ^~~~~~
src/_tkagg.cpp:283:1: error: jump to label ‘exit’
283 | exit:
| ^~~~
src/_tkagg.cpp:264:14: note: from here
264 | goto exit;
| ^~~~
src/_tkagg.cpp:274:26: note: crosses initialization of ‘bool tk_ok’
274 | bool tcl_ok = false, tk_ok = false;
| ^~~~~
src/_tkagg.cpp:274:10: note: crosses initialization of ‘bool tcl_ok’
274 | bool tcl_ok = false, tk_ok = false;
| ^~~~~~
error: command '/usr/bin/gcc' failed with exit code 1
...
pip reminds me this is not pip's fault
Expected outcome
...
Successfully installed collected packages: matplotlib
Additional information
Cygwin 3.3.4
GCC 11.2.0
Python 3.8.12
I've installed matplotlib in earlier versions. #17415 rather suggests that Cygwin builds worked at that time, and probably made using the default backend somewhat easier. #22445 seems to be where the PyErr_SetFromWindowsErr calls came in.
I've attempted to create a dummy PyErr_SetFromWindowsErr on Cygwin, but, given the number of failures in the test suite, I probably didn't do it right.
Operating system
Cygwin 3.3.4 on Windows 10
Matplotlib Version
3.5.2
Matplotlib Backend
TkAgg
Python version
3.8.12
Jupyter version
N/A
Installation
pip
Bug summary
When the build gets to https://github.com/matplotlib/matplotlib/blob/main/src/_tkagg.cpp#L262-L273 on Cygwin, the build fails with a few
goto crosses initializationwarnings, which are easy to fix (closed by #23051), and twoerror: ‘PyErr_SetFromWindowsErr’ was not declared in this scope, which are less easy to fix.Code for reproduction
Actual outcome
Expected outcome
Additional information
Cygwin 3.3.4
GCC 11.2.0
Python 3.8.12
I've installed matplotlib in earlier versions. #17415 rather suggests that Cygwin builds worked at that time, and probably made using the default backend somewhat easier. #22445 seems to be where the
PyErr_SetFromWindowsErrcalls came in.I've attempted to create a dummy
PyErr_SetFromWindowsErron Cygwin, but, given the number of failures in the test suite, I probably didn't do it right.Operating system
Cygwin 3.3.4 on Windows 10
Matplotlib Version
3.5.2
Matplotlib Backend
TkAgg
Python version
3.8.12
Jupyter version
N/A
Installation
pip