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

From: Borislav Petkov <[email-masked]>
Date: Wed, 28 Sep 2011 09:58:45 +0200

On Wed, Sep 28, 2011 at 03:42:14AM -0400, Stephen Rothwell wrote:
> Hi Paul,
> 
> After merging the moduleh tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
> 
> arch/x86/kernel/sys_x86_64.c:28:10: warning: 'enum align_flags' declared inside parameter list
> arch/x86/kernel/sys_x86_64.c:28:10: warning: its scope is only this definition or declaration, which is probably not what you want
> arch/x86/kernel/sys_x86_64.c:28:22: error: parameter 3 ('flags') has incomplete type
> arch/x86/kernel/sys_x86_64.c:27:15: warning: function declaration isn't a prototype
> arch/x86/kernel/sys_x86_64.c: In function 'align_addr':
> arch/x86/kernel/sys_x86_64.c:33:6: error: 'va_align' undeclared (first use in this function)
> arch/x86/kernel/sys_x86_64.c:33:6: note: each undeclared identifier is reported only once for each function it appears in
> arch/x86/kernel/sys_x86_64.c:33:2: error: implicit declaration of function 'mmap_is_ia32'
> arch/x86/kernel/sys_x86_64.c:39:17: error: 'ALIGN_VDSO' undeclared (first use in this function)
> arch/x86/kernel/sys_x86_64.c:48:16: error: 'ALIGN_TOPDOWN' undeclared (first use in this function)
> arch/x86/kernel/sys_x86_64.c: In function 'control_va_addr_alignment':
> arch/x86/kernel/sys_x86_64.c:59:6: error: 'va_align' undeclared (first use in this function)
> arch/x86/kernel/sys_x86_64.c:69:20: error: 'ALIGN_VA_32' undeclared (first use in this function)
> arch/x86/kernel/sys_x86_64.c:71:20: error: 'ALIGN_VA_64' undeclared (first use in this function)
> arch/x86/kernel/sys_x86_64.c: In function 'arch_get_unmapped_area_topdown':
> arch/x86/kernel/sys_x86_64.c:231:11: error: 'ALIGN_TOPDOWN' undeclared (first use in this function)
> 
> Presumably caused by commit dfb09f9b7ab0 ("x86, amd: Avoid cache aliasing
> penalties on AMD family 15h") from the tip tree interacting with the
> module.h split up.
> 
> I applied the following patch (which could be applied to the tip
> tree ...).
> 
> From 6b1212311c0728a7e3054e1f187e7c3b9f464bd5 Mon Sep 17 00:00:00 2001
> From: Stephen Rothwell <[email-masked]>
> Date: Wed, 28 Sep 2011 17:28:50 +1000
> Subject: [PATCH] x86, amd: include linux/elf.h since we use stuff from
>  asm/elf.h
> 
> The lack of this inclusion causes build erros after the module.h split up:
> 
> arch/x86/kernel/sys_x86_64.c:28:10: warning: 'enum align_flags' declared inside parameter list
> arch/x86/kernel/sys_x86_64.c:28:10: warning: its scope is only this definition or declaration, which is probably not what you want
> arch/x86/kernel/sys_x86_64.c:28:22: error: parameter 3 ('flags') has incomplete type
> arch/x86/kernel/sys_x86_64.c:27:15: warning: function declaration isn't a prototype
> arch/x86/kernel/sys_x86_64.c: In function 'align_addr':
> arch/x86/kernel/sys_x86_64.c:33:6: error: 'va_align' undeclared (first use in this function)
> arch/x86/kernel/sys_x86_64.c:33:6: note: each undeclared identifier is reported only once for each function it appears in
> arch/x86/kernel/sys_x86_64.c:33:2: error: implicit declaration of function 'mmap_is_ia32'
> arch/x86/kernel/sys_x86_64.c:39:17: error: 'ALIGN_VDSO' undeclared (first use in this function)
> arch/x86/kernel/sys_x86_64.c:48:16: error: 'ALIGN_TOPDOWN' undeclared (first use in this function)
> arch/x86/kernel/sys_x86_64.c: In function 'control_va_addr_alignment':
> arch/x86/kernel/sys_x86_64.c:59:6: error: 'va_align' undeclared (first use in this function)
> arch/x86/kernel/sys_x86_64.c:69:20: error: 'ALIGN_VA_32' undeclared (first use in this function)
> arch/x86/kernel/sys_x86_64.c:71:20: error: 'ALIGN_VA_64' undeclared (first use in this function)
> arch/x86/kernel/sys_x86_64.c: In function 'arch_get_unmapped_area_topdown':
> arch/x86/kernel/sys_x86_64.c:231:11: error: 'ALIGN_TOPDOWN' undeclared (first use in this function)
> 
> Signed-off-by: Stephen Rothwell <[email-masked]>
> ---
>  arch/x86/kernel/sys_x86_64.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/x86/kernel/sys_x86_64.c b/arch/x86/kernel/sys_x86_64.c
> index fe7d2da..0514890 100644
> --- a/arch/x86/kernel/sys_x86_64.c
> +++ b/arch/x86/kernel/sys_x86_64.c
> @@ -14,6 +14,7 @@
>  #include <linux/personality.h>
>  #include <linux/random.h>
>  #include <linux/uaccess.h>
> +#include <linux/elf.h>
>  
>  #include <asm/ia32.h>
>  #include <asm/syscalls.h>

Yep, it looks good, thanks Stephen. Btw, this is the second time
something like that happens as a result from the module split tree,
here's the first one: http://marc.info/?l=linux-kernel&m=131296515915227

It's a good thing we have linux-next! :-)

Thanks.

-- 
Regards/Gruss,
Boris.

Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach
GM: Alberto Bozzo
Reg: Dornach, Landkreis Muenchen
HRB Nr. 43632 WEEE Registernr: 129 19551