[issue1722225] Build on QNX 6

Matt Kraai report at bugs.python.org
Wed Jan 23 19:12:24 CET 2008


Matt Kraai added the comment:

If they're defined, TCGETA, TCSETA, TCSETAW, and TCSETAF are used on
lines 702, 714, 717, and 720 of Modules/termios.c as of r60219.  They
are defined by sys/ioctl.h as

 #define TCGETA          _IOR('T', 1, struct termio)
 #define TCSETA          _IOW('T', 2, struct termio)
 #define TCSETAW         _IOW('T', 3, struct termio)
 #define TCSETAF         _IOW('T', 4, struct termio)

These macro definitions expand to

 ( 0x40000000   | ((  sizeof(  struct termio )  & 0x3fff ) << 16) | (( 
  ( 'T' ) ) << 8) | (  (  1 ) ))   
 ( 0x80000000   | ((  sizeof(  struct termio )  & 0x3fff ) << 16) | (( 
   ( 'T' ) ) << 8) | (  (  2 ) ))   
 ( 0x80000000   | ((  sizeof(  struct termio )  & 0x3fff ) << 16) | (( 
   ( 'T' ) ) << 8) | (  (  3 ) ))   
 ( 0x80000000   | ((  sizeof(  struct termio )  & 0x3fff ) << 16) | (( 
   ( 'T' ) ) << 8) | (  (  4 ) ))   

respectively, so struct termio must be declared if any of these macros
are used.  struct termio is declared in sys/termio.h.  Since
sys/termio.h isn't included, Modules/termios.c fails to compile with the
following error messages:

 /home/m_kraai/src/python/Modules/termios.c:702: sizeof applied to an
incomplete type
 /home/m_kraai/src/python/Modules/termios.c:714: sizeof applied to an
incomplete type
 /home/m_kraai/src/python/Modules/termios.c:717: sizeof applied to an
incomplete type
 /home/m_kraai/src/python/Modules/termios.c:720: sizeof applied to an
incomplete type

sys/termio.h checks that it's included before termios.h is first
included.  If it's not included first, it produces the following error
message:

 /usr/qnx630/target/qnx6/usr/include/sys/termio.h:109: #error
termio/termios incompatibility

What should configure test for?

_____________________________________
Tracker <report at bugs.python.org>
<http://bugs.python.org/issue1722225>
_____________________________________


More information about the Python-bugs-list mailing list