On Thursday, June 16, 2016 10:33:41 PM CEST Michael Ellerman wrote:
> From: Daniel Axtens <d...@axtens.net>
> 
> Sparse complains that it doesn't know what REG_BYTE is:
> 
>   arch/powerpc/kernel/align.c:313:29: error: undefined identifier 'REG_BYTE'
> 
> REG_BYTE is defined differently based on whether we're compiling for
> LE, BE32 or BE64. Sparse apparently doesn't provide __BIG_ENDIAN__ or
> __LITTLE_ENDIAN__, which means we get no definition.
> 
> Rather than check for __BIG_ENDIAN__ and then separately for
> __LITTLE_ENDIAN__, just switch the #ifdef to check for __BIG_ENDIAN__
> and then #else we define the little endian version. Technically that's
> dicey because PDP_ENDIAN is also a possibility, but we already do it in
> a lot of places so one more hardly matters.
> 
> Signed-off-by: Daniel Axtens <d...@axtens.net>
> Signed-off-by: Michael Ellerman <m...@ellerman.id.au>
> 

That makes the code less robust for the cases that accidentally we
have neither or both of __LITTLE_ENDIAN__/__BIG_ENDIAN__ set during
an actual compilation.

It would be better to fix the sparse compilation so the same endianess
is set that you get when calling gcc.

        Arnd
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to