Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2a00f026 authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo
Browse files

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 <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-og5fmkr17856lhupacihwxvb@git.kernel.org


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 7b39cafb
Loading
Loading
Loading
Loading
+19 −5
Original line number Diff line number Diff line
@@ -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