http://bugs.winehq.org/show_bug.cgi?id=58523
--- Comment #1 from Adam Williamson adamw@happyassassin.net --- The undefs are done in sysdeps/unix/sysv/linux/bits/ioctls.h , which I think is installed as /usr/include/bits/ioctls.h , which is included by sys/ioctl.h , which is included by serial.c after it includes asm/ioctls.h . So that's how it gets undefined I guess. I'm not sure if this means wine needs to change its includes, or stop using TCGETS2 / TCSETS2 , or if it means glibc made a mistake and needs to change this so it's not undefining things for external consumers of sys/ioctl.h .