Messages in this thread Patch in this message | | | Subject | [PATCH] x86: uapi: Fix __BITS_PER_LONG for x32 | From | Ben Hutchings <> | Date | Thu, 01 Oct 2015 01:40:43 +0100 |
| |
On x32, gcc predefines __x86_64__ but long is only 32-bit. Use __ILP32__ to distinguish x32.
Fixes this compiler error in perf:
/«PKGBUILDDIR»/tools/include/asm-generic/bitops/__ffs.h: In function '__ffs': /«PKGBUILDDIR»/tools/include/asm-generic/bitops/__ffs.h:19:8: error: right shift count >= width of type [-Werror=shift-count-overflow] word >>= 32; ^
This isn't sufficient to build perf for x32, though.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk> --- arch/x86/include/uapi/asm/bitsperlong.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/include/uapi/asm/bitsperlong.h b/arch/x86/include/uapi/asm/bitsperlong.h index b0ae1c4..217909b 100644 --- a/arch/x86/include/uapi/asm/bitsperlong.h +++ b/arch/x86/include/uapi/asm/bitsperlong.h @@ -1,7 +1,7 @@ #ifndef __ASM_X86_BITSPERLONG_H #define __ASM_X86_BITSPERLONG_H -#ifdef __x86_64__ +#if defined(__x86_64__) && !defined(__ILP32__) # define __BITS_PER_LONG 64 #else # define __BITS_PER_LONG 32 -- Ben Hutchings Knowledge is power. France is bacon.[unhandled content-type:application/pgp-signature] | |