[PATCH] alpha: don't reference obsolete termio struct for TC* constants

Sam James posted 1 patch 4 months, 1 week ago
There is a newer version of this series
arch/alpha/include/uapi/asm/ioctls.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
[PATCH] alpha: don't reference obsolete termio struct for TC* constants
Posted by Sam James 4 months, 1 week ago
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
Co-authored-by: Stian Halseth <stian@itx.no>
Co-authored-by: Magnus Lindholm <linmag7@gmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
---
v3: Fix constants per Magnus.
v2: Fix title.

 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.51.0
Re: [PATCH] alpha: don't reference obsolete termio struct for TC* constants
Posted by Maciej W. Rozycki 2 months, 1 week ago
On Thu, 2 Oct 2025, Sam James 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
> Co-authored-by: Stian Halseth <stian@itx.no>
> Co-authored-by: Magnus Lindholm <linmag7@gmail.com>
> Signed-off-by: Sam James <sam@gentoo.org>

 FWIW, the documented tag for co-authors is Co-developed-by: and you're 
supposed to collect corresponding Signed-off-by: tags from each of them 
too.  Cf. <Documentation/process/submitting-patches.rst> and the examples 
there.

  Maciej
Re: [PATCH] alpha: don't reference obsolete termio struct for TC* constants
Posted by Sam James 2 months, 1 week ago
"Maciej W. Rozycki" <macro@orcam.me.uk> writes:

> On Thu, 2 Oct 2025, Sam James 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
>> Co-authored-by: Stian Halseth <stian@itx.no>
>> Co-authored-by: Magnus Lindholm <linmag7@gmail.com>
>> Signed-off-by: Sam James <sam@gentoo.org>
>
>  FWIW, the documented tag for co-authors is Co-developed-by: and you're 
> supposed to collect corresponding Signed-off-by: tags from each of them 
> too.  Cf. <Documentation/process/submitting-patches.rst> and the examples 
> there.

Thanks, though I'd say I was more being gracious here and that it's not
strictly required to have them here at all.

Anyway, Magnus, I can resend with just my Signed-off-by (and nothing
else) if you like, or can you do that in your tree?

>
>   Maciej
Re: [PATCH] alpha: don't reference obsolete termio struct for TC* constants
Posted by Magnus Lindholm 2 months, 1 week ago
>
> Thanks, though I'd say I was more being gracious here and that it's not
> strictly required to have them here at all.
>
> Anyway, Magnus, I can resend with just my Signed-off-by (and nothing
> else) if you like, or can you do that in your tree?
>
> >
> >   Maciej


Hi, Thanks Maciej for pointing this out. Sam, lets send it out again
that way Stian can add his Signed-off-by tag as well

Magnus
Re: [PATCH] alpha: don't reference obsolete termio struct for TC* constants
Posted by Sam James 2 months, 1 week ago
Magnus Lindholm <linmag7@gmail.com> writes:

>>
>> Thanks, though I'd say I was more being gracious here and that it's not
>> strictly required to have them here at all.
>>
>> Anyway, Magnus, I can resend with just my Signed-off-by (and nothing
>> else) if you like, or can you do that in your tree?
>>
>> >
>> >   Maciej
>
>
> Hi, Thanks Maciej for pointing this out. Sam, lets send it out again
> that way Stian can add his Signed-off-by tag as well

Sure.

>
> Magnus
Re: [PATCH] alpha: don't reference obsolete termio struct for TC* constants
Posted by Magnus Lindholm 2 months, 1 week ago
On Thu, Oct 2, 2025 at 1:01 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
> Co-authored-by: Stian Halseth <stian@itx.no>
> Co-authored-by: Magnus Lindholm <linmag7@gmail.com>
> Signed-off-by: Sam James <sam@gentoo.org>
> ---
> v3: Fix constants per Magnus.
> v2: Fix title.
>
>  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.51.0
>

Thanks, looks good to me!

Reviewed-by: Magnus Lindholm <linmag7@gmail.com>
Re: [PATCH] alpha: don't reference obsolete termio struct for TC* constants
Posted by Magnus Lindholm 2 months, 1 week ago
Thanks, looks good to me, sorry for a late reply.

Reviewed-by: Magnus Lindholm <linmag7@gmail.com>


On Thu, Oct 2, 2025 at 1:01 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
> Co-authored-by: Stian Halseth <stian@itx.no>
> Co-authored-by: Magnus Lindholm <linmag7@gmail.com>
> Signed-off-by: Sam James <sam@gentoo.org>
> ---
> v3: Fix constants per Magnus.
> v2: Fix title.
>
>  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.51.0
>
Re: [PATCH] alpha: don't reference obsolete termio struct for TC* constants
Posted by Sam James 3 months, 3 weeks ago
Sam James <sam@gentoo.org> writes:

> 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
> Co-authored-by: Stian Halseth <stian@itx.no>
> Co-authored-by: Magnus Lindholm <linmag7@gmail.com>
> Signed-off-by: Sam James <sam@gentoo.org>
> ---
> v3: Fix constants per Magnus.
> v2: Fix title.

Ping.

>
>  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)
[PATCH] sparc: don't reference obsolete termio struct for TC* constants
Posted by Sam James 4 months, 1 week ago
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
Co-authored-by: Stian Halseth <stian@itx.no>
Signed-off-by: Sam James <sam@gentoo.org>
---
v3: Fix constants.
v2: Fix title.

 arch/sparc/include/uapi/asm/ioctls.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/sparc/include/uapi/asm/ioctls.h b/arch/sparc/include/uapi/asm/ioctls.h
index 7fd2f5873c9e7..f26befbf690fb 100644
--- a/arch/sparc/include/uapi/asm/ioctls.h
+++ b/arch/sparc/include/uapi/asm/ioctls.h
@@ -5,10 +5,10 @@
 #include <asm/ioctl.h>
 
 /* Big T */
-#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)
+#define TCGETA          0x40125401
+#define TCSETA          0x80125402
+#define TCSETAW         0x80125403
+#define TCSETAF         0x80125404
 #define TCSBRK		_IO('T', 5)
 #define TCXONC		_IO('T', 6)
 #define TCFLSH		_IO('T', 7)
-- 
2.51.0
Re: [PATCH] sparc: don't reference obsolete termio struct for TC* constants
Posted by Sam James 3 months, 3 weeks ago
Sam James <sam@gentoo.org> writes:

> 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
> Co-authored-by: Stian Halseth <stian@itx.no>
> Signed-off-by: Sam James <sam@gentoo.org>
> ---
> v3: Fix constants.
> v2: Fix title.
>
>  arch/sparc/include/uapi/asm/ioctls.h | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

Ping.

>
> diff --git a/arch/sparc/include/uapi/asm/ioctls.h b/arch/sparc/include/uapi/asm/ioctls.h
> index 7fd2f5873c9e7..f26befbf690fb 100644
> --- a/arch/sparc/include/uapi/asm/ioctls.h
> +++ b/arch/sparc/include/uapi/asm/ioctls.h
> @@ -5,10 +5,10 @@
>  #include <asm/ioctl.h>
>  
>  /* Big T */
> -#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)
> +#define TCGETA          0x40125401
> +#define TCSETA          0x80125402
> +#define TCSETAW         0x80125403
> +#define TCSETAF         0x80125404
>  #define TCSBRK		_IO('T', 5)
>  #define TCXONC		_IO('T', 6)
>  #define TCFLSH		_IO('T', 7)
Re: [PATCH] sparc: don't reference obsolete termio struct for TC* constants
Posted by Andreas Larsson 3 weeks, 3 days ago
On 2025-10-19 21:18, Sam James wrote:
> Sam James <sam@gentoo.org> writes:
>> Similar in nature to ab107276607af90b13a5994997e19b7b9731e251. glibc-2.42

Please refer to the referenced commit also with "commit", the SHA ID and
the oneline summary of the commit, like so:

commit ab107276607a ("powerpc: Fix struct termio related ioctl macros")

>> 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
>> Co-authored-by: Stian Halseth <stian@itx.no>
>> Signed-off-by: Sam James <sam@gentoo.org>
>> ---
>> v3: Fix constants.
>> v2: Fix title.
>>
>>  arch/sparc/include/uapi/asm/ioctls.h | 8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> Ping.
> 
>>
>> diff --git a/arch/sparc/include/uapi/asm/ioctls.h b/arch/sparc/include/uapi/asm/ioctls.h
>> index 7fd2f5873c9e7..f26befbf690fb 100644
>> --- a/arch/sparc/include/uapi/asm/ioctls.h
>> +++ b/arch/sparc/include/uapi/asm/ioctls.h
>> @@ -5,10 +5,10 @@
>>  #include <asm/ioctl.h>
>>  
>>  /* Big T */
>> -#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)
>> +#define TCGETA          0x40125401
>> +#define TCSETA          0x80125402
>> +#define TCSETAW         0x80125403
>> +#define TCSETAF         0x80125404
>>  #define TCSBRK		_IO('T', 5)
>>  #define TCXONC		_IO('T', 6)
>>  #define TCFLSH		_IO('T', 7)

Please also, like in commit ab107276607a ("powerpc: Fix struct termio
related ioctl macros"), add the previous definitions as comments in
order to be able to know in the future what these hard coded constants
really should correspond to.

Don't forget to make sure that the subject gets a [PATCH v4].

Thanks,
Andreas
Re: [PATCH] sparc: don't reference obsolete termio struct for TC* constants
Posted by John Paul Adrian Glaubitz 3 days, 15 hours ago
Hi Sam,

On Wed, 2026-01-14 at 10:20 +0100, Andreas Larsson wrote:
> On 2025-10-19 21:18, Sam James wrote:
> > Sam James <sam@gentoo.org> writes:
> > > Similar in nature to ab107276607af90b13a5994997e19b7b9731e251. glibc-2.42
> 
> Please refer to the referenced commit also with "commit", the SHA ID and
> the oneline summary of the commit, like so:
> 
> commit ab107276607a ("powerpc: Fix struct termio related ioctl macros")
> 
> > > 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
> > > Co-authored-by: Stian Halseth <stian@itx.no>
> > > Signed-off-by: Sam James <sam@gentoo.org>
> > > ---
> > > v3: Fix constants.
> > > v2: Fix title.
> > > 
> > >  arch/sparc/include/uapi/asm/ioctls.h | 8 ++++----
> > >  1 file changed, 4 insertions(+), 4 deletions(-)
> > 
> > Ping.
> > 
> > > 
> > > diff --git a/arch/sparc/include/uapi/asm/ioctls.h b/arch/sparc/include/uapi/asm/ioctls.h
> > > index 7fd2f5873c9e7..f26befbf690fb 100644
> > > --- a/arch/sparc/include/uapi/asm/ioctls.h
> > > +++ b/arch/sparc/include/uapi/asm/ioctls.h
> > > @@ -5,10 +5,10 @@
> > >  #include <asm/ioctl.h>
> > >  
> > >  /* Big T */
> > > -#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)
> > > +#define TCGETA          0x40125401
> > > +#define TCSETA          0x80125402
> > > +#define TCSETAW         0x80125403
> > > +#define TCSETAF         0x80125404
> > >  #define TCSBRK		_IO('T', 5)
> > >  #define TCXONC		_IO('T', 6)
> > >  #define TCFLSH		_IO('T', 7)
> 
> Please also, like in commit ab107276607a ("powerpc: Fix struct termio
> related ioctl macros"), add the previous definitions as comments in
> order to be able to know in the future what these hard coded constants
> really should correspond to.
> 
> Don't forget to make sure that the subject gets a [PATCH v4].

Could you send a revised version of this, please?

Debian's kernel maintainer refuses to merge this patch locally unless it's
been merged upstream.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
[PATCH v4] sparc: don't reference obsolete termio struct for TC* constants
Posted by Sam James 3 days, 14 hours ago
Similar in nature to commit ab107276607a ("powerpc: Fix struct termio related ioctl macros").

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: Tweak commit message for commit ref and add comments for old definitions.
v3: Fix constants.
v2: Fix title.

 arch/sparc/include/uapi/asm/ioctls.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/sparc/include/uapi/asm/ioctls.h b/arch/sparc/include/uapi/asm/ioctls.h
index 7fd2f5873c9e..a8bbdf9877a4 100644
--- a/arch/sparc/include/uapi/asm/ioctls.h
+++ b/arch/sparc/include/uapi/asm/ioctls.h
@@ -5,10 +5,10 @@
 #include <asm/ioctl.h>
 
 /* Big T */
-#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)
+#define TCGETA          0x40125401 /* _IOR('T', 1, struct termio) */
+#define TCSETA          0x80125402 /* _IOW('T', 2, struct termio) */
+#define TCSETAW         0x80125403 /* _IOW('T', 3, struct termio) */
+#define TCSETAF         0x80125404 /* _IOW('T', 4, struct termio) */
 #define TCSBRK		_IO('T', 5)
 #define TCXONC		_IO('T', 6)
 #define TCFLSH		_IO('T', 7)
-- 
2.53.0
Re: [PATCH v4] sparc: don't reference obsolete termio struct for TC* constants
Posted by Andreas Larsson 1 day, 17 hours ago
On 2026-02-04 14:40, Sam James wrote:
> Similar in nature to commit ab107276607a ("powerpc: Fix struct termio related ioctl macros").
> 
> 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: Tweak commit message for commit ref and add comments for old definitions.
> v3: Fix constants.
> v2: Fix title.
> 
>  arch/sparc/include/uapi/asm/ioctls.h | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/sparc/include/uapi/asm/ioctls.h b/arch/sparc/include/uapi/asm/ioctls.h
> index 7fd2f5873c9e..a8bbdf9877a4 100644
> --- a/arch/sparc/include/uapi/asm/ioctls.h
> +++ b/arch/sparc/include/uapi/asm/ioctls.h
> @@ -5,10 +5,10 @@
>  #include <asm/ioctl.h>
>  
>  /* Big T */
> -#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)
> +#define TCGETA          0x40125401 /* _IOR('T', 1, struct termio) */
> +#define TCSETA          0x80125402 /* _IOW('T', 2, struct termio) */
> +#define TCSETAW         0x80125403 /* _IOW('T', 3, struct termio) */
> +#define TCSETAF         0x80125404 /* _IOW('T', 4, struct termio) */
>  #define TCSBRK		_IO('T', 5)
>  #define TCXONC		_IO('T', 6)
>  #define TCFLSH		_IO('T', 7)


Reviewed-by: Andreas Larsson <andreas@gaisler.com>

Picking this up to my for-next.

Thanks,
Andreas