Subject: Re: [PATCH/RFC] Re: linux-next: build failure after merge of the luto-misc tree

From: Stephen Rothwell <[email-masked]>
Date: Wed, 20 Jul 2016 09:53:33 +1000

Hi Arnaldo,

On Wed, 20 Jul 2016 09:21:57 +1000 Stephen Rothwell <[email-masked]> wrote:
>
> On Tue, 19 Jul 2016 14:45:51 -0300 Arnaldo Carvalho de Melo <[email-masked]> wrote:
> >
> > No such luck, everything works as expected, objtool doesn't even get
> > compiled, likely it doesn't support powerpc binaries so it isn't built:  
> 
> right.
> 
> > Probably it got the local definition of bitsperlong.h, i.e. the size on the host build
> > and then comparing it against the one for the target host...
> > 
> > Anyway, can you try the patch below to see what value is landing on __BITS_PER_LONG?
> > 
> > diff --git a/tools/include/asm-generic/bitsperlong.h b/tools/include/asm-generic/bitsperlong.h
> > index 45eca517efb3..c8f971e0d6a1 100644
> > --- a/tools/include/asm-generic/bitsperlong.h
> > +++ b/tools/include/asm-generic/bitsperlong.h
> > @@ -10,6 +10,9 @@
> >  #endif
> >  
> >  #if BITS_PER_LONG != __BITS_PER_LONG
> > +#include <linux/stringify.h>
> > +#pragma message "BITS_PER_LONG=" __stringify(BITS_PER_LONG)
> > +#pragma message "__BITS_PER_LONG=" __stringify(__BITS_PER_LONG)
> >  #error Inconsistent word size. Check asm/bitsperlong.h
> >  #endif  
> 
> I added those three lines to the file (just in yesterday's linux-next
> was easiest) and got this:
> 
> /home/sfr/next/next/tools/include/asm-generic/bitsperlong.h:14:9: note: #pragma message: BITS_PER_LONG=(8 * 8)
>  #pragma message "BITS_PER_LONG=" __stringify(BITS_PER_LONG)
>          ^
> /home/sfr/next/next/tools/include/asm-generic/bitsperlong.h:15:9: note: #pragma message: __BITS_PER_LONG=32
>  #pragma message "__BITS_PER_LONG=" __stringify(__BITS_PER_LONG)
>          ^
> 
> (a few times, of course)

So I applied this:

diff --git a/tools/arch/x86/include/uapi/asm/bitsperlong.h b/tools/arch/x86/include/uapi/asm/bitsperlong.h
index 6e23c543cd80..fd299f5468cb 100644
--- a/tools/arch/x86/include/uapi/asm/bitsperlong.h
+++ b/tools/arch/x86/include/uapi/asm/bitsperlong.h
@@ -4,6 +4,12 @@
 #if defined(__x86_64__) && !defined(__ILP32__)
 # define __BITS_PER_LONG 64
 #else
+#ifndef __x86_64__
+#pragma message "__x86_64__ is not defined"
+#endif
+#ifdef __ILP32__
+#pragma message "__ILP32__ is defined"
+#endif
 # define __BITS_PER_LONG 32
 #endif

and got this:

/home/sfr/next/next/tools/arch/x86/include/uapi/asm/bitsperlong.h:8:9: note: #pragma message: __x86_64__ is not defined
 #pragma message "__x86_64__ is not defined"

-- 
Cheers,
Stephen Rothwell