On Fri, Jul 15, 2016 at 05:06:54PM +1000, Stephen Rothwell wrote: > interacting with commit > > 2a00f026a15d ("tools: Fix up BITS_PER_LONG setting") > > from the tip tree. Yuck.. that thing is horrid :/ What's wrong with so? And if you really want to retain CONFIG_64BIT (because other headers might want it, and they currently do not) then do something like: #ifdef __LP64__ #define CONFIG_64BIT #else #define CONFIG_32BIT #endif All GCC versions I checked have __CHAR_BIT__ and __SIZEOF_LONG__. (and I checked most everything from 4.4 - 6.1) diff --git a/tools/include/asm-generic/bitsperlong.h b/tools/include/asm-generic/bitsperlong.h index cfd661c6fc17..4b4c91b0f042 100644 --- a/tools/include/asm-generic/bitsperlong.h +++ b/tools/include/asm-generic/bitsperlong.h @@ -3,37 +3,6 @@ #include <uapi/asm-generic/bitsperlong.h> -/* - * In the kernel, where this file comes from, we can rely on CONFIG_64BIT, - * here we have to make amends with what the various compilers provides us - * to figure out if we're on a 64-bit machine... - */ -#ifdef __SIZEOF_LONG__ -# if __SIZEOF_LONG__ == 8 -# define CONFIG_64BIT -# endif -#else -# ifdef __WORDSIZE -# if __WORDSIZE == 64 -# define CONFIG_64BIT -# endif -# else -# error Failed to determine BITS_PER_LONG value -# endif -#endif - -#ifdef CONFIG_64BIT -#define BITS_PER_LONG 64 -#else -#define BITS_PER_LONG 32 -#endif /* CONFIG_64BIT */ - -#if BITS_PER_LONG != __BITS_PER_LONG -#error Inconsistent word size. Check asm/bitsperlong.h -#endif - -#ifndef BITS_PER_LONG_LONG -#define BITS_PER_LONG_LONG 64 -#endif +#define BITS_PER_LONG (__CHAR_BIT__ * __SIZEOF_LONG__) #endif /* __ASM_GENERIC_BITS_PER_LONG */ -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html