[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 3 Mar 2022 11:44:42 +0000
From: David Laight <David.Laight@...LAB.COM>
To: "'Maciej W. Rozycki'" <macro@...am.me.uk>,
Paul Cercueil <paul@...pouillou.net>
CC: Jiri Slaby <jslaby@...e.cz>,
'Uwe Kleine-König'
<u.kleine-koenig@...gutronix.de>,
"gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
Alexandre Belloni <alexandre.belloni@...tlin.com>,
Mateusz Holenko <mholenko@...micro.com>,
Neil Armstrong <narmstrong@...libre.com>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Liviu Dudau <liviu.dudau@....com>,
Baruch Siach <baruch@...s.co.il>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Paul Mackerras <paulus@...ba.org>,
"Michael Ellerman" <mpe@...erman.id.au>,
Michal Simek <michal.simek@...inx.com>,
"Karol Gugala" <kgugala@...micro.com>,
Jerome Brunet <jbrunet@...libre.com>,
"Peter Korsgaard" <peter@...sgaard.com>,
Florian Fainelli <f.fainelli@...il.com>,
Alexander Shiyan <shc_work@...l.ru>,
Krzysztof Kozlowski <krzysztof.kozlowski@...onical.com>,
Alexandre Torgue <alexandre.torgue@...s.st.com>,
Fabio Estevam <festevam@...il.com>,
"Russell King" <linux@...linux.org.uk>,
Ludovic Desroches <ludovic.desroches@...rochip.com>,
Andy Gross <agross@...nel.org>,
"bcm-kernel-feedback-list@...adcom.com"
<bcm-kernel-feedback-list@...adcom.com>,
NXP Linux Team <linux-imx@....com>,
"linux-serial@...r.kernel.org" <linux-serial@...r.kernel.org>,
Vineet Gupta <vgupta@...nel.org>,
Orson Zhai <orsonzhai@...il.com>,
Tobias Klauser <tklauser@...tanz.ch>,
Patrice Chotard <patrice.chotard@...s.st.com>,
"Albert Ou" <aou@...s.berkeley.edu>,
Maxime Coquelin <mcoquelin.stm32@...il.com>,
Manivannan Sadhasivam <mani@...nel.org>,
Martin Blumenstingl <martin.blumenstingl@...glemail.com>,
Sascha Hauer <s.hauer@...gutronix.de>,
Takao Orito <orito.takao@...ionext.com>,
Vladimir Zapolskiy <vz@...ia.com>,
Lorenzo Pieralisi <lorenzo.pieralisi@....com>,
Paul Walmsley <paul.walmsley@...ive.com>,
Bjorn Andersson <bjorn.andersson@...aro.org>,
Sudeep Holla <sudeep.holla@....com>,
Richard Genoud <richard.genoud@...il.com>,
Chunyan Zhang <zhang.lyra@...il.com>,
"Nicolas Ferre" <nicolas.ferre@...rochip.com>,
"David S. Miller" <davem@...emloft.net>,
Taichi Sugaya <sugaya.taichi@...ionext.com>,
Palmer Dabbelt <palmer@...belt.com>,
Pengutronix Kernel Team <kernel@...gutronix.de>,
"Kevin Hilman" <khilman@...libre.com>,
Baolin Wang <baolin.wang7@...il.com>,
"Shawn Guo" <shawnguo@...nel.org>,
Andreas Färber <afaerber@...e.de>
Subject: RE: [PATCH v3] serial: make uart_console_write->putchar()'s character
an unsigned char
From: Maciej W. Rozycki
> Sent: 03 March 2022 11:31
..
> It does, but, oh dear, it's a "solution" to a problem we have created in
> the first place. Why do we ever want to have signed characters in the TTY
> layer, and then to vary between platforms? It's asking for portability
> issues.
C 'char' is signed because the pdp/11 byte load sign extended.
I guess some ABI use unsigned char to avoid issues with all
the functions that take/return an int parameter that is
either a 'char' cast to 'unsigned char' or EOF.
EOF is usually (-1) - but doesn't have to be.
But it needs to be different from any value obtained
by casting a 'char' to 'unsigned char'.
(But that may only need to be all characters, not all values of 'char'.)
Then you get the requirement that:
sizeof (int) >= sizeof (short) >= sizeof (char)
which means that it is perfectly valid for all 3 to be the same size [1].
In that case 'unsigned char' promotes to 'unsigned int'
which probably breaks some code.
It also makes defining EOF troublesome!
[1] The C compiler for a DSP had this 'feature'.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Powered by blists - more mailing lists