On Fri, Apr 12, 2019 at 4:36 PM Christoph Hellwig <hch@xxxxxx> wrote: > > When removing some dead big endian checks in the RISC-V code Nick > suggested that we should have some generic sanity checks. I don't think > we should have thos inside the RISC-V code, but maybe it might make > sense to have these in the generic byteorder headers. Note that these > are UAPI headers and some compilers might not actually define > __BYTE_ORDER__, so we first check that it actually exists. > > Suggested-by: Nick Kossifidis <mick@xxxxxxxxxxxx> > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Acked-by: Arnd Bergmann <arnd@xxxxxxxx> Extra checking like this is good in general, but I'm not sure I see exactly what kind of issue one might expect to prevent with this: All architecture asm/byteorder.h headers either include the only possible option, or they check the compiler defined macros: arch/arc/include/uapi/asm/byteorder.h:#ifdef __BIG_ENDIAN__ arch/arm/include/uapi/asm/byteorder.h:#ifdef __ARMEB__ arch/arm64/include/uapi/asm/byteorder.h:#ifdef __AARCH64EB__ arch/c6x/include/uapi/asm/byteorder.h:#ifdef _BIG_ENDIAN arch/microblaze/include/uapi/asm/byteorder.h:#ifdef __MICROBLAZEEL__ arch/mips/include/uapi/asm/byteorder.h:#if defined(__MIPSEB__) arch/nds32/include/uapi/asm/byteorder.h:#ifdef __NDS32_EB__ arch/powerpc/include/uapi/asm/byteorder.h:#ifdef __LITTLE_ENDIAN__ arch/sh/include/uapi/asm/byteorder.h:#ifdef __LITTLE_ENDIAN__ arch/xtensa/include/uapi/asm/byteorder.h:#ifdef __XTENSA_EL__ Are you worried about toolchains that define those differently from what these headers expect? Did you encounter such a case? Arnd