On Wed, Oct 19, 2022 at 10:26:48AM -0600, Jason A. Donenfeld wrote: > Recently, some compile-time checking I added to the clamp_t family of > functions triggered a build error when a poorly written driver was > compiled on ARM, because the driver assumed that the naked `char` type > is signed, but ARM treats it as unsigned, and the C standard says it's > architecture-dependent. > So let's just eliminate this particular variety of heisensigned bugs > entirely. Set `-fsigned-char` globally, so that gcc makes the type > signed on all architectures. This is an ABI change. It is also hugely detrimental to generated code quality on architectures that make the saner choice (that is, have most instructions zero-extend byte quantities). Instead, don't actively disable the compiler warnings that catch such cases? So start with removing footguns like # disable pointer signed / unsigned warnings in gcc 4.0 KBUILD_CFLAGS += -Wno-pointer-sign Segher