tools: Fix up BITS_PER_LONG setting
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: 2a00f026a15d161b47ba3d3417d0fec5193468c3 Gitweb: http://git.kernel.org/tip/2a00f026a15d161b47ba3d3417d0fec5193468c3 Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Wed, 13 Jul 2016 15:04:04 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Wed, 13 Jul 2016 15:04:04 -0300
tools: Fix up BITS_PER_LONG setting
It was set based on CONFIG_64BIT, that is available only when using Kconfig, which we're working towards but not to the point of having this CONFIG variable set, so synthesize it from available compiler defined defines, __SIZEOF_LONG__ or, lacking that, __WORDSIZE.
Cc Adrian Hunter <[email protected]>
Cc David Ahern <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Wang Nan <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/include/asm-generic/bitsperlong.h | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-)
tools/include/asm-generic/bitsperlong.h +19 -5
@@ -3,6 +3,24 @@#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
@@ -10,11 +28,7 @@#define BITS_PER_LONG 32#endif /* CONFIG_64BIT */ -/* -* FIXME: The check currently breaks x86-64 build, so it's -* temporarily disabled. Please fix x86-64 and reenable -*/ -#if 0 &&BITS_PER_LONG != __BITS_PER_LONG +#if BITS_PER_LONG != __BITS_PER_LONG#error Inconsistent word size. Check asm/bitsperlong.h#endif