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

From: Paul Gortmaker
Date: Mon Jul 18 2016 - 10:28:21 EST


[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 <sfr@xxxxxxxxxxxxxxxx>
> 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 <sfr@xxxxxxxxxxxxxxxx>
> ---
> 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