GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||
GeezerVison is showing github.com — Modules/termios.c: stop using TC operations that need termio.h by tpetazzoni · Pull Request #142326 · python/cpython Conversation
Contributor
Modules/termios.c makes use of TCGETA, TCSETA, TCSETAF and TCSETAW if they are defined. They are defined by kernel headers on a limited set of CPU architectures, but require the "struct termio" definition to exist, and this structure definition has been removed from glibc as of version 2.42. Since these are seldomly used, we take the approach of just dropping support for those, in order to fix the following build issue: ./Modules/termios.c:1119:16: error: invalid application of 'sizeof' to incomplete type 'struct termio' This issue is observed at least on sparc64, but not on more "mainstream" CPU architectures, as they do not define TCGETA/TCSETA/TCSETAF/TCSETAW.
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactionsModules/termios.c makes use of TCGETA, TCSETA, TCSETAF and TCSETAW if
they are defined. They are defined by kernel headers on a limited set
of CPU architectures, but require the "struct termio" definition to
exist, and this structure definition has been removed from glibc as of
version 2.42.
Since these are seldomly used, we take the approach of just dropping
support for those, in order to fix the following build issue:
./Modules/termios.c:1119:16: error: invalid application of 'sizeof' to incomplete type 'struct termio'
1119 | {"TCGETA", TCGETA},
| ^~~~~~
./Modules/termios.c:1131:16: error: invalid application of 'sizeof' to incomplete type 'struct termio'
1131 | {"TCSETA", TCSETA},
| ^~~~~~
./Modules/termios.c:1134:17: error: invalid application of 'sizeof' to incomplete type 'struct termio'
1134 | {"TCSETAF", TCSETAF},
| ^~~~~~~
./Modules/termios.c:1137:17: error: invalid application of 'sizeof' to incomplete type 'struct termio'
1137 | {"TCSETAW", TCSETAW},
| ^~~~~~~
make[1]: *** [Makefile:3403: Modules/termios.o] Error 1
This issue is observed at least on sparc64, but not on more
"mainstream" CPU architectures, as they do not define
TCGETA/TCSETA/TCSETAF/TCSETAW.
Signed-off-by: Thomas Petazzoni <[email protected]>
|
There was an error while loading. Please reload this page.
|
Please:
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
This is actually a bug in linux-headers. We hit it in Gentoo and I sent patches upstream for the affected arches (https://bugs.gentoo.org/962600). The issue is that those types_are_ still declared, just unusable, for certain arches. hppa is fixed already, alpha has the patch queued, sparc I've not had a reply for yet. But it will take a while for such fixes to propagate, so CPython may still wish to implement a workaround. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Thanks for the very useful feedback! I've opened a new PR at #142380 to track this. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.