Re: linux-next: build failure after merge of the luto-misc tree
From: Peter Zijlstra <peterz@infradead.org>
Date: 2016-07-15 07:22:54
Also in:
lkml
Subsystem:
the rest · Maintainer:
Linus Torvalds
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 */