Subject: Re: linux-next: build failure after merge of the tip tree

From: Paul Gortmaker <[email-masked]>
Date: Mon, 18 Jul 2016 10:27:13 -0400

[linux-next: build failure after merge of the tip tree] On 18/07/2016 (Mon 18:29) Stephen Rothwell wrote:

> Hi all,
> 
> After merging the tip tree, today's linux-next build (x86_64 allnoconfig)
> failed like this:
> 
> In file included from arch/x86/kernel/x8664_ksyms_64.c:10:0:
> arch/x86/include/asm/pgtable.h:38:8: error: unknown type name 'spinlock_t'
>  extern spinlock_t pgd_lock;

>         ^
> 
> Probably caused by commit
> 
>   186f43608a5c ("x86/kernel: Audit and remove any unnecessary uses of module.h")

Wondering why I didn't see this, when I _thought_ I did the same
coverage, I learned an interesting thing.  I'd been doing 

make ARCH=i386 allnoconfig
make allnoconfig

...figuring on x86_64 host that I'd need to explicitly choose i386 and
that w/o an ARCH specified, I'd get the native arch...  Not so.  I just
end up doing the i386 arch coverage twice.  :-(   I'll go out on a limb
here and guess I'm not the only person to fall into that trap.

I'll now be using:

make ARCH=i386 allnoconfig
make ARCH=x86_64 allnoconfig

Thanks Stephen for the fix and for helping find this gap in my tests.
If my build coverage moves to Power like yours, I'll still be good. :)

Paul.
--

> 
> I added this patch for today (maybe adding the include to
> arch/x86/include/asm/pgtable.h would be better?):
> 
> From: Stephen Rothwell <[email-masked]>
> Date: Mon, 18 Jul 2016 18:23:24 +1000
> Subject: [PATCH] x86/kernel: include spinlock_types.h for missing spinlock_t
> 
> Fixes: 186f43608a5c ("x86/kernel: Audit and remove any unnecessary uses of module.h")
> Signed-off-by: Stephen Rothwell <[email-masked]>
> ---
>  arch/x86/kernel/x8664_ksyms_64.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/x86/kernel/x8664_ksyms_64.c b/arch/x86/kernel/x8664_ksyms_64.c
> index f6d30fedcc03..95e49f6e4fc3 100644
> --- a/arch/x86/kernel/x8664_ksyms_64.c
> +++ b/arch/x86/kernel/x8664_ksyms_64.c
> @@ -2,6 +2,7 @@
>     All C exports should go in the respective C files. */
>  
>  #include <linux/export.h>
> +#include <linux/spinlock_types.h>
>  #include <linux/smp.h>
>  
>  #include <net/checksum.h>
> -- 
> 2.8.1
> 
> -- 
> Cheers,
> Stephen Rothwell