linux-alpha.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 2/3] alpha: don't reference obsolete termio struct for TC* constants
       [not found] <fc2e8775d55f43e08eb79d326d6fdd89291898dd.1759347737.git.sam@gentoo.org>
@ 2025-10-01 19:42 ` Sam James
  2025-10-01 22:12   ` Magnus Lindholm
  0 siblings, 1 reply; 3+ messages in thread
From: Sam James @ 2025-10-01 19:42 UTC (permalink / raw)
  To: Richard Henderson, Matt Turner
  Cc: Sam James, Stian Halseth, linux-alpha, linux-kernel

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>
---
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..857e280f95d1e 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          0x5405
+#define TCSETA          0x5406
+#define TCSETAW         0x5407
+#define TCSETAF         0x5408
 
 #define TCSBRK		_IO('t', 29)
 #define TCXONC		_IO('t', 30)
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 2/3] alpha: don't reference obsolete termio struct for TC* constants
  2025-10-01 19:42 ` [PATCH v2 2/3] alpha: don't reference obsolete termio struct for TC* constants Sam James
@ 2025-10-01 22:12   ` Magnus Lindholm
  2025-10-01 22:26     ` Sam James
  0 siblings, 1 reply; 3+ messages in thread
From: Magnus Lindholm @ 2025-10-01 22:12 UTC (permalink / raw)
  To: Sam James
  Cc: Richard Henderson, Matt Turner, Stian Halseth, linux-alpha,
	linux-kernel

> +#define TCGETA          0x5405
> +#define TCSETA          0x5406
> +#define TCSETAW         0x5407
> +#define TCSETAF         0x5408

Hi,

A similar patch aimed for powerpc (commit ab10727) had the following
definitions:

#define TCGETA    0x40147417
#define TCSETA    0x80147418
#define TCSETAW 0x80147419
#define TCSETAF  0x8014741c

On Alpha, if I do something like printf("TCGETA = 0x%08x\n", TCGETA);
I get TCGETA = 0x40127417, but on an intel/x64 I get 0x5405.
Is this something we need to consider here?

Regards

Magnus

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 2/3] alpha: don't reference obsolete termio struct for TC* constants
  2025-10-01 22:12   ` Magnus Lindholm
@ 2025-10-01 22:26     ` Sam James
  0 siblings, 0 replies; 3+ messages in thread
From: Sam James @ 2025-10-01 22:26 UTC (permalink / raw)
  To: Magnus Lindholm
  Cc: Richard Henderson, Matt Turner, Stian Halseth, linux-alpha,
	linux-kernel

Magnus Lindholm <linmag7@gmail.com> writes:

>> +#define TCGETA          0x5405
>> +#define TCSETA          0x5406
>> +#define TCSETAW         0x5407
>> +#define TCSETAF         0x5408
>
> Hi,
>
> A similar patch aimed for powerpc (commit ab10727) had the following
> definitions:
>
> #define TCGETA    0x40147417
> #define TCSETA    0x80147418
> #define TCSETAW 0x80147419
> #define TCSETAF  0x8014741c
>
> On Alpha, if I do something like printf("TCGETA = 0x%08x\n", TCGETA);
> I get TCGETA = 0x40127417, but on an intel/x64 I get 0x5405.
> Is this something we need to consider here?

There are fallback definitions in generic:

tools/include/uapi/asm-generic/ioctls.h:24:#define TCGETA               0x5405
include/uapi/asm-generic/ioctls.h:24:#define TCGETA             0x5405

I think those are used where there was no historical value (i.e. for
newer ioctls). Coud you run something like
https://bugs.gentoo.org/962600#c5 to get the full list of (removed)
constant values for alpha? It's awkward for me to test with older glibc.

>
> Regards
>
> Magnus

thanks,
sam

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-10-01 22:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <fc2e8775d55f43e08eb79d326d6fdd89291898dd.1759347737.git.sam@gentoo.org>
2025-10-01 19:42 ` [PATCH v2 2/3] alpha: don't reference obsolete termio struct for TC* constants Sam James
2025-10-01 22:12   ` Magnus Lindholm
2025-10-01 22:26     ` Sam James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).