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

From: Stephen Rothwell
Date: Tue Jul 19 2016 - 19:53:41 EST


Hi Arnaldo,

On Wed, 20 Jul 2016 09:21:57 +1000 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> On Tue, 19 Jul 2016 14:45:51 -0300 Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> 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