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

From: Stephen Rothwell
Date: Tue Jul 19 2016 - 23:18:23 EST


Hi Arnaldo,

On Wed, 20 Jul 2016 00:09:24 -0300 Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote:
>
> Em Tue, Jul 19, 2016 at 07:57:24PM -0700, Andy Lutomirski escreveu:
> > On Tue, Jul 19, 2016 at 7:52 PM, Arnaldo Carvalho de Melo
> > <acme@xxxxxxxxxx> wrote:
> > > Em Wed, Jul 20, 2016 at 09:53:33AM +1000, Stephen Rothwell escreveu:
> > >> 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:
> > >> > > #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:
> > >
> > >> +++ 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"
> > >
> > > Humm, it seems that the compiler used is not the cross one, but the
> > > native, check if, say, __powerpc__ is defined.
> > >
> >
> > This is still vdso2c, right? It's a hostprog.
> >
> > This stuff is utterly screwed up. We're building a hostprog for an
> > x86_64 kernel cross-compiled from powerpc. We should presumably be
> > pullng in powerpc's uapi headers for hostprogs because it's a *host*
> > prog.
>
> Unsure, I thought that what was breaking was objtool (tools/objtool),
> Stephen?

Yes, it is objtool, but that is also a host program and so should be
using the host architectures includes, right? Thanks for pointing that out
Andy,

--
Cheers,
Stephen Rothwell