arch/alpha/include/uapi/asm/ioctls.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
Similar in nature to ab107276607af90b13a5994997e19b7b9731e251. glibc-2.42
drops the legacy termio struct, but the ioctls.h header still defines some
TC* constants in terms of termio (via sizeof). Hardcode the values instead.
This fixes building Python for example, which falls over like:
./Modules/termios.c:1119:16: error: invalid application of 'sizeof' to incomplete type 'struct termio'
Link: https://bugs.gentoo.org/961769
Link: https://bugs.gentoo.org/962600
Signed-off-by: Sam James <sam@gentoo.org>
---
v4: Fix trailers and actually send the right constants again (rebased wrong branch, sorry).
arch/alpha/include/uapi/asm/ioctls.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/alpha/include/uapi/asm/ioctls.h b/arch/alpha/include/uapi/asm/ioctls.h
index 971311605288f..a09d04b49cc65 100644
--- a/arch/alpha/include/uapi/asm/ioctls.h
+++ b/arch/alpha/include/uapi/asm/ioctls.h
@@ -23,10 +23,10 @@
#define TCSETSW _IOW('t', 21, struct termios)
#define TCSETSF _IOW('t', 22, struct termios)
-#define TCGETA _IOR('t', 23, struct termio)
-#define TCSETA _IOW('t', 24, struct termio)
-#define TCSETAW _IOW('t', 25, struct termio)
-#define TCSETAF _IOW('t', 28, struct termio)
+#define TCGETA 0x40127417
+#define TCSETA 0x80127418
+#define TCSETAW 0x80127419
+#define TCSETAF 0x8012741c
#define TCSBRK _IO('t', 29)
#define TCXONC _IO('t', 30)
--
2.52.0
On Fri, Dec 5, 2025 at 9:15 AM Sam James <sam@gentoo.org> wrote:
>
> Similar in nature to ab107276607af90b13a5994997e19b7b9731e251. glibc-2.42
> drops the legacy termio struct, but the ioctls.h header still defines some
> TC* constants in terms of termio (via sizeof). Hardcode the values instead.
>
> This fixes building Python for example, which falls over like:
> ./Modules/termios.c:1119:16: error: invalid application of 'sizeof' to incomplete type 'struct termio'
>
> Link: https://bugs.gentoo.org/961769
> Link: https://bugs.gentoo.org/962600
> Signed-off-by: Sam James <sam@gentoo.org>
> ---
> v4: Fix trailers and actually send the right constants again (rebased wrong branch, sorry).
>
> arch/alpha/include/uapi/asm/ioctls.h | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/alpha/include/uapi/asm/ioctls.h b/arch/alpha/include/uapi/asm/ioctls.h
> index 971311605288f..a09d04b49cc65 100644
> --- a/arch/alpha/include/uapi/asm/ioctls.h
> +++ b/arch/alpha/include/uapi/asm/ioctls.h
> @@ -23,10 +23,10 @@
> #define TCSETSW _IOW('t', 21, struct termios)
> #define TCSETSF _IOW('t', 22, struct termios)
>
> -#define TCGETA _IOR('t', 23, struct termio)
> -#define TCSETA _IOW('t', 24, struct termio)
> -#define TCSETAW _IOW('t', 25, struct termio)
> -#define TCSETAF _IOW('t', 28, struct termio)
> +#define TCGETA 0x40127417
> +#define TCSETA 0x80127418
> +#define TCSETAW 0x80127419
> +#define TCSETAF 0x8012741c
>
> #define TCSBRK _IO('t', 29)
> #define TCXONC _IO('t', 30)
> --
> 2.52.0
>
Yes, this version has the correct constans, thanks!
Reviewed-by: Magnus Lindholm <linmag7@gmail.com>
© 2016 - 2025 Red Hat, Inc.