On Wed, Jul 13, 2016 at 09:35:27AM +0200, Ingo Molnar wrote:
> 
> Hm, the objtool build broke:
> 
>   GEN      arch/x86/insn/inat-tables.c
>   CC       arch/x86/decode.o
> In file included from /home/mingo/tip/tools/include/linux/hashtable.h:12:0,
>                  from arch/x86/../../elf.h:24,
>                  from arch/x86/decode.c:26:
> /home/mingo/tip/tools/include/linux/bitops.h:12:0: error: "BITS_PER_LONG" 
> redefined [-Werror]
>  #define BITS_PER_LONG __WORDSIZE
>  ^
> In file included from /usr/include/x86_64-linux-gnu/asm/bitsperlong.h:10:0,
>                  from /usr/include/asm-generic/int-ll64.h:11,
>                  from /usr/include/asm-generic/types.h:6,
>                  from /usr/include/x86_64-linux-gnu/asm/types.h:4,
>                  from /home/mingo/tip/tools/include/linux/types.h:9,
>                  from /home/mingo/tip/tools/include/linux/list.h:4,
>                  from arch/x86/../../elf.h:23,
>                  from arch/x86/decode.c:26:
> /home/mingo/tip/tools/include/asm-generic/bitsperlong.h:10:0: note: this is 
> the 
> location of the previous definition
>  #define BITS_PER_LONG 32
>  ^

Hi Ingo,

There's still another issue.  Notice in the last line there that
BITS_PER_LONG is getting incorrectly set to 32, at least for objtool.

That '#define BITS_PER_LONG 32' comes from the following code in
tools/include/asm-generic/bitsperlong.h:

  #ifdef CONFIG_64BIT
  #define BITS_PER_LONG 64
  #else
  #define BITS_PER_LONG 32
  #endif /* CONFIG_64BIT */

Because objtool doesn't have CONFIG_64BIT defined, it falls through to
the '#else' condition.  I think tools code shouldn't be relying on
kernel config options.

-- 
Josh

Reply via email to