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

