* [patch] sparc: fix build
@ 2008-02-10 23:30 ` David Rientjes
0 siblings, 0 replies; 19+ messages in thread
From: David Rientjes @ 2008-02-10 23:30 UTC (permalink / raw)
To: Andrew Morton; +Cc: Adrian Bunk, linux-kernel, sparclinux, Robert Reif
Fix build failures on sparc:
In file included from include/linux/mm.h:39,
from include/linux/memcontrol.h:24,
from include/linux/swap.h:8,
from include/linux/suspend.h:7,
from init/do_mounts.c:6:
include/asm/pgtable.h:344: warning: parameter names (without
types) in function declaration
include/asm/pgtable.h:345: warning: parameter names (without
types) in function declaration
include/asm/pgtable.h:346: error: expected '=', ',', ';', 'asm' or
'__attribute__' before '___f___swp_entry'
and
arch/sparc/kernel/led.c: In function 'led_blink':
arch/sparc/kernel/led.c:35: error: invalid use of undefined type
'struct timer_list'
arch/sparc/kernel/led.c:35: error: 'jiffies' undeclared (first use
in this function)
arch/sparc/kernel/led.c:35: error: (Each undeclared identifier is
reported only once
arch/sparc/kernel/led.c:35: error: for each function it appears
in.)
arch/sparc/kernel/led.c:36: error: 'avenrun' undeclared (first use
in this function)
arch/sparc/kernel/led.c:36: error: 'FSHIFT' undeclared (first use
in this function)
arch/sparc/kernel/led.c:36: error: 'HZ' undeclared (first use in
this function)
arch/sparc/kernel/led.c:37: error: invalid use of undefined type
'struct timer_list'
arch/sparc/kernel/led.c:39: error: invalid use of undefined type
'struct timer_list'
arch/sparc/kernel/led.c:40: error: invalid use of undefined type
'struct timer_list'
arch/sparc/kernel/led.c:42: error: implicit declaration of
function 'add_timer'
arch/sparc/kernel/led.c: In function 'led_write_proc':
arch/sparc/kernel/led.c:70: error: implicit declaration of
function 'copy_from_user'
arch/sparc/kernel/led.c:84: error: implicit declaration of
function 'del_timer_sync'
arch/sparc/kernel/led.c: In function 'led_init':
arch/sparc/kernel/led.c:109: error: implicit declaration of
function 'init_timer'
arch/sparc/kernel/led.c:110: error: invalid use of undefined type
'struct timer_list'
Cc: Adrian Bunk <bunk@kernel.org>
Cc: Robert Reif <reif@earthlink.net>
Signed-off-by: David Rientjes <rientjes@google.com>
---
arch/sparc/kernel/led.c | 3 ++-
include/linux/memcontrol.h | 3 ---
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/sparc/kernel/led.c b/arch/sparc/kernel/led.c
--- a/arch/sparc/kernel/led.c
+++ b/arch/sparc/kernel/led.c
@@ -1,8 +1,9 @@
-#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/proc_fs.h>
#include <linux/string.h>
+#include <linux/sched.h>
+#include <linux/uaccess.h>
#include <asm/auxio.h>
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -20,9 +20,6 @@
#ifndef _LINUX_MEMCONTROL_H
#define _LINUX_MEMCONTROL_H
-#include <linux/rcupdate.h>
-#include <linux/mm.h>
-
struct mem_cgroup;
struct page_cgroup;
struct page;
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [patch] sparc: fix build
2008-02-10 23:30 ` David Rientjes
@ 2008-02-11 9:49 ` Balbir Singh
-1 siblings, 0 replies; 19+ messages in thread
From: Balbir Singh @ 2008-02-11 9:37 UTC (permalink / raw)
To: David Rientjes
Cc: Andrew Morton, Adrian Bunk, linux-kernel, sparclinux, Robert Reif
David Rientjes wrote:
> Fix build failures on sparc:
>
> In file included from include/linux/mm.h:39,
> from include/linux/memcontrol.h:24,
> from include/linux/swap.h:8,
> from include/linux/suspend.h:7,
> from init/do_mounts.c:6:
> include/asm/pgtable.h:344: warning: parameter names (without
> types) in function declaration
> include/asm/pgtable.h:345: warning: parameter names (without
> types) in function declaration
> include/asm/pgtable.h:346: error: expected '=', ',', ';', 'asm' or
> '__attribute__' before '___f___swp_entry'
>
> and
>
> arch/sparc/kernel/led.c: In function 'led_blink':
> arch/sparc/kernel/led.c:35: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:35: error: 'jiffies' undeclared (first use
> in this function)
> arch/sparc/kernel/led.c:35: error: (Each undeclared identifier is
> reported only once
> arch/sparc/kernel/led.c:35: error: for each function it appears
> in.)
> arch/sparc/kernel/led.c:36: error: 'avenrun' undeclared (first use
> in this function)
> arch/sparc/kernel/led.c:36: error: 'FSHIFT' undeclared (first use
> in this function)
> arch/sparc/kernel/led.c:36: error: 'HZ' undeclared (first use in
> this function)
> arch/sparc/kernel/led.c:37: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:39: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:40: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:42: error: implicit declaration of
> function 'add_timer'
> arch/sparc/kernel/led.c: In function 'led_write_proc':
> arch/sparc/kernel/led.c:70: error: implicit declaration of
> function 'copy_from_user'
> arch/sparc/kernel/led.c:84: error: implicit declaration of
> function 'del_timer_sync'
> arch/sparc/kernel/led.c: In function 'led_init':
> arch/sparc/kernel/led.c:109: error: implicit declaration of
> function 'init_timer'
> arch/sparc/kernel/led.c:110: error: invalid use of undefined type
> 'struct timer_list'
>
> Cc: Adrian Bunk <bunk@kernel.org>
> Cc: Robert Reif <reif@earthlink.net>
> Signed-off-by: David Rientjes <rientjes@google.com>
> ---
> arch/sparc/kernel/led.c | 3 ++-
> include/linux/memcontrol.h | 3 ---
> 2 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/arch/sparc/kernel/led.c b/arch/sparc/kernel/led.c
> --- a/arch/sparc/kernel/led.c
> +++ b/arch/sparc/kernel/led.c
> @@ -1,8 +1,9 @@
> -#include <linux/kernel.h>
> #include <linux/module.h>
> #include <linux/init.h>
> #include <linux/proc_fs.h>
> #include <linux/string.h>
> +#include <linux/sched.h>
> +#include <linux/uaccess.h>
>
> #include <asm/auxio.h>
>
> diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
> --- a/include/linux/memcontrol.h
> +++ b/include/linux/memcontrol.h
> @@ -20,9 +20,6 @@
> #ifndef _LINUX_MEMCONTROL_H
> #define _LINUX_MEMCONTROL_H
>
> -#include <linux/rcupdate.h>
> -#include <linux/mm.h>
> -
> struct mem_cgroup;
> struct page_cgroup;
> struct page;
This patch allowed my sparc cross compiler to build beyond mm/memcontrol.o, but
I faced a build issue at
drivers/net/e1000e/netdev.c: In function 'e1000e_update_stats':
drivers/net/e1000e/netdev.c:2583: error: unable to find a register to spill in
class 'FP_REGS'
drivers/net/e1000e/netdev.c:2583: error: this is the insn:
(insn 66 2379 2236 2 drivers/net/e1000e/netdev.c:2459 (set (reg:DI 487 [ D.34076 ])
(mem/s/j:DI (plus:SI (reg/v/f:SI 11 %o3 [orig:492 adapter ] [492])
(reg:SI 7 %g7 [514])) [0 <variable>.stats.gprc+0 S8 A128])) 45
{*movdi_insn_sp32} (insn_list:REG_DEP_TRUE 65 (insn_list:REG_DEP_ANTI 32 (nil)))
(expr_list:REG_EQUIV (mem/s/j:DI (plus:SI (reg/v/f:SI 11 %o3 [orig:492
adapter ] [492])
(reg:SI 7 %g7 [514])) [0 <variable>.stats.gprc+0 S8 A128])
(nil)))
drivers/net/e1000e/netdev.c:2583: confused by earlier errors, bailing out
make[3]: *** [drivers/net/e1000e/netdev.o] Error 1
make[2]: *** [drivers/net/e1000e] Error 2
make[1]: *** [drivers/net] Error 2
So for the problem reported
Tested-by: Balbir Singh <balbir@linux.vnet.ibm.com>
--
Warm Regards,
Balbir Singh
Linux Technology Center
IBM, ISTL
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [patch] sparc: fix build
@ 2008-02-11 9:49 ` Balbir Singh
0 siblings, 0 replies; 19+ messages in thread
From: Balbir Singh @ 2008-02-11 9:49 UTC (permalink / raw)
To: David Rientjes
Cc: Andrew Morton, Adrian Bunk, linux-kernel, sparclinux, Robert Reif
David Rientjes wrote:
> Fix build failures on sparc:
>
> In file included from include/linux/mm.h:39,
> from include/linux/memcontrol.h:24,
> from include/linux/swap.h:8,
> from include/linux/suspend.h:7,
> from init/do_mounts.c:6:
> include/asm/pgtable.h:344: warning: parameter names (without
> types) in function declaration
> include/asm/pgtable.h:345: warning: parameter names (without
> types) in function declaration
> include/asm/pgtable.h:346: error: expected '=', ',', ';', 'asm' or
> '__attribute__' before '___f___swp_entry'
>
> and
>
> arch/sparc/kernel/led.c: In function 'led_blink':
> arch/sparc/kernel/led.c:35: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:35: error: 'jiffies' undeclared (first use
> in this function)
> arch/sparc/kernel/led.c:35: error: (Each undeclared identifier is
> reported only once
> arch/sparc/kernel/led.c:35: error: for each function it appears
> in.)
> arch/sparc/kernel/led.c:36: error: 'avenrun' undeclared (first use
> in this function)
> arch/sparc/kernel/led.c:36: error: 'FSHIFT' undeclared (first use
> in this function)
> arch/sparc/kernel/led.c:36: error: 'HZ' undeclared (first use in
> this function)
> arch/sparc/kernel/led.c:37: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:39: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:40: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:42: error: implicit declaration of
> function 'add_timer'
> arch/sparc/kernel/led.c: In function 'led_write_proc':
> arch/sparc/kernel/led.c:70: error: implicit declaration of
> function 'copy_from_user'
> arch/sparc/kernel/led.c:84: error: implicit declaration of
> function 'del_timer_sync'
> arch/sparc/kernel/led.c: In function 'led_init':
> arch/sparc/kernel/led.c:109: error: implicit declaration of
> function 'init_timer'
> arch/sparc/kernel/led.c:110: error: invalid use of undefined type
> 'struct timer_list'
>
> Cc: Adrian Bunk <bunk@kernel.org>
> Cc: Robert Reif <reif@earthlink.net>
> Signed-off-by: David Rientjes <rientjes@google.com>
> ---
> arch/sparc/kernel/led.c | 3 ++-
> include/linux/memcontrol.h | 3 ---
> 2 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/arch/sparc/kernel/led.c b/arch/sparc/kernel/led.c
> --- a/arch/sparc/kernel/led.c
> +++ b/arch/sparc/kernel/led.c
> @@ -1,8 +1,9 @@
> -#include <linux/kernel.h>
> #include <linux/module.h>
> #include <linux/init.h>
> #include <linux/proc_fs.h>
> #include <linux/string.h>
> +#include <linux/sched.h>
> +#include <linux/uaccess.h>
>
> #include <asm/auxio.h>
>
> diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
> --- a/include/linux/memcontrol.h
> +++ b/include/linux/memcontrol.h
> @@ -20,9 +20,6 @@
> #ifndef _LINUX_MEMCONTROL_H
> #define _LINUX_MEMCONTROL_H
>
> -#include <linux/rcupdate.h>
> -#include <linux/mm.h>
> -
> struct mem_cgroup;
> struct page_cgroup;
> struct page;
This patch allowed my sparc cross compiler to build beyond mm/memcontrol.o, but
I faced a build issue at
drivers/net/e1000e/netdev.c: In function 'e1000e_update_stats':
drivers/net/e1000e/netdev.c:2583: error: unable to find a register to spill in
class 'FP_REGS'
drivers/net/e1000e/netdev.c:2583: error: this is the insn:
(insn 66 2379 2236 2 drivers/net/e1000e/netdev.c:2459 (set (reg:DI 487 [ D.34076 ])
(mem/s/j:DI (plus:SI (reg/v/f:SI 11 %o3 [orig:492 adapter ] [492])
(reg:SI 7 %g7 [514])) [0 <variable>.stats.gprc+0 S8 A128])) 45
{*movdi_insn_sp32} (insn_list:REG_DEP_TRUE 65 (insn_list:REG_DEP_ANTI 32 (nil)))
(expr_list:REG_EQUIV (mem/s/j:DI (plus:SI (reg/v/f:SI 11 %o3 [orig:492
adapter ] [492])
(reg:SI 7 %g7 [514])) [0 <variable>.stats.gprc+0 S8 A128])
(nil)))
drivers/net/e1000e/netdev.c:2583: confused by earlier errors, bailing out
make[3]: *** [drivers/net/e1000e/netdev.o] Error 1
make[2]: *** [drivers/net/e1000e] Error 2
make[1]: *** [drivers/net] Error 2
So for the problem reported
Tested-by: Balbir Singh <balbir@linux.vnet.ibm.com>
--
Warm Regards,
Balbir Singh
Linux Technology Center
IBM, ISTL
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [patch] sparc: fix build
2008-02-10 23:30 ` David Rientjes
@ 2008-02-13 2:46 ` Andrew Morton
-1 siblings, 0 replies; 19+ messages in thread
From: Andrew Morton @ 2008-02-13 2:46 UTC (permalink / raw)
To: David Rientjes; +Cc: Adrian Bunk, linux-kernel, sparclinux, Robert Reif
On Sun, 10 Feb 2008 15:30:51 -0800 (PST) David Rientjes <rientjes@google.com> wrote:
> Fix build failures on sparc:
>
> In file included from include/linux/mm.h:39,
> from include/linux/memcontrol.h:24,
> from include/linux/swap.h:8,
> from include/linux/suspend.h:7,
> from init/do_mounts.c:6:
> include/asm/pgtable.h:344: warning: parameter names (without
> types) in function declaration
> include/asm/pgtable.h:345: warning: parameter names (without
> types) in function declaration
> include/asm/pgtable.h:346: error: expected '=', ',', ';', 'asm' or
> '__attribute__' before '___f___swp_entry'
>
> and
>
> arch/sparc/kernel/led.c: In function 'led_blink':
> arch/sparc/kernel/led.c:35: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:35: error: 'jiffies' undeclared (first use
> in this function)
> arch/sparc/kernel/led.c:35: error: (Each undeclared identifier is
> reported only once
> arch/sparc/kernel/led.c:35: error: for each function it appears
> in.)
> arch/sparc/kernel/led.c:36: error: 'avenrun' undeclared (first use
> in this function)
> arch/sparc/kernel/led.c:36: error: 'FSHIFT' undeclared (first use
> in this function)
> arch/sparc/kernel/led.c:36: error: 'HZ' undeclared (first use in
> this function)
> arch/sparc/kernel/led.c:37: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:39: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:40: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:42: error: implicit declaration of
> function 'add_timer'
> arch/sparc/kernel/led.c: In function 'led_write_proc':
> arch/sparc/kernel/led.c:70: error: implicit declaration of
> function 'copy_from_user'
> arch/sparc/kernel/led.c:84: error: implicit declaration of
> function 'del_timer_sync'
> arch/sparc/kernel/led.c: In function 'led_init':
> arch/sparc/kernel/led.c:109: error: implicit declaration of
> function 'init_timer'
> arch/sparc/kernel/led.c:110: error: invalid use of undefined type
> 'struct timer_list'
>
> ...
>
> diff --git a/arch/sparc/kernel/led.c b/arch/sparc/kernel/led.c
> --- a/arch/sparc/kernel/led.c
> +++ b/arch/sparc/kernel/led.c
> @@ -1,8 +1,9 @@
> -#include <linux/kernel.h>
> #include <linux/module.h>
> #include <linux/init.h>
> #include <linux/proc_fs.h>
> #include <linux/string.h>
> +#include <linux/sched.h>
> +#include <linux/uaccess.h>
>
> #include <asm/auxio.h>
OK, that'll fix one error.
> diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
> --- a/include/linux/memcontrol.h
> +++ b/include/linux/memcontrol.h
> @@ -20,9 +20,6 @@
> #ifndef _LINUX_MEMCONTROL_H
> #define _LINUX_MEMCONTROL_H
>
> -#include <linux/rcupdate.h>
> -#include <linux/mm.h>
> -
> struct mem_cgroup;
> struct page_cgroup;
> struct page;
This really should have been in a separate patch and extensively tested.
Have we checked that every file which directly or indirectly includes
memcontrol.h does not have an requirement for rcupdate.h and mm.h, where
that requirement was satisfied only via this nested inclusion? For all
architectures and for all config selections? Think not.
Sadly, removal of nested includes is a *big* deal, and it takes quite a lot
of time to get it all shaken down.
If we can confirm that all files (.c and .h) which include memcontrol.h
also directly include rcupdate.h and mm.h then we're _probably_ ok (modulo
ordering issues).
Otherwise we should perhaps be taking a second look at how to fix the sparc
problem.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [patch] sparc: fix build
@ 2008-02-13 2:46 ` Andrew Morton
0 siblings, 0 replies; 19+ messages in thread
From: Andrew Morton @ 2008-02-13 2:46 UTC (permalink / raw)
To: David Rientjes; +Cc: Adrian Bunk, linux-kernel, sparclinux, Robert Reif
On Sun, 10 Feb 2008 15:30:51 -0800 (PST) David Rientjes <rientjes@google.com> wrote:
> Fix build failures on sparc:
>
> In file included from include/linux/mm.h:39,
> from include/linux/memcontrol.h:24,
> from include/linux/swap.h:8,
> from include/linux/suspend.h:7,
> from init/do_mounts.c:6:
> include/asm/pgtable.h:344: warning: parameter names (without
> types) in function declaration
> include/asm/pgtable.h:345: warning: parameter names (without
> types) in function declaration
> include/asm/pgtable.h:346: error: expected '=', ',', ';', 'asm' or
> '__attribute__' before '___f___swp_entry'
>
> and
>
> arch/sparc/kernel/led.c: In function 'led_blink':
> arch/sparc/kernel/led.c:35: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:35: error: 'jiffies' undeclared (first use
> in this function)
> arch/sparc/kernel/led.c:35: error: (Each undeclared identifier is
> reported only once
> arch/sparc/kernel/led.c:35: error: for each function it appears
> in.)
> arch/sparc/kernel/led.c:36: error: 'avenrun' undeclared (first use
> in this function)
> arch/sparc/kernel/led.c:36: error: 'FSHIFT' undeclared (first use
> in this function)
> arch/sparc/kernel/led.c:36: error: 'HZ' undeclared (first use in
> this function)
> arch/sparc/kernel/led.c:37: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:39: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:40: error: invalid use of undefined type
> 'struct timer_list'
> arch/sparc/kernel/led.c:42: error: implicit declaration of
> function 'add_timer'
> arch/sparc/kernel/led.c: In function 'led_write_proc':
> arch/sparc/kernel/led.c:70: error: implicit declaration of
> function 'copy_from_user'
> arch/sparc/kernel/led.c:84: error: implicit declaration of
> function 'del_timer_sync'
> arch/sparc/kernel/led.c: In function 'led_init':
> arch/sparc/kernel/led.c:109: error: implicit declaration of
> function 'init_timer'
> arch/sparc/kernel/led.c:110: error: invalid use of undefined type
> 'struct timer_list'
>
> ...
>
> diff --git a/arch/sparc/kernel/led.c b/arch/sparc/kernel/led.c
> --- a/arch/sparc/kernel/led.c
> +++ b/arch/sparc/kernel/led.c
> @@ -1,8 +1,9 @@
> -#include <linux/kernel.h>
> #include <linux/module.h>
> #include <linux/init.h>
> #include <linux/proc_fs.h>
> #include <linux/string.h>
> +#include <linux/sched.h>
> +#include <linux/uaccess.h>
>
> #include <asm/auxio.h>
OK, that'll fix one error.
> diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
> --- a/include/linux/memcontrol.h
> +++ b/include/linux/memcontrol.h
> @@ -20,9 +20,6 @@
> #ifndef _LINUX_MEMCONTROL_H
> #define _LINUX_MEMCONTROL_H
>
> -#include <linux/rcupdate.h>
> -#include <linux/mm.h>
> -
> struct mem_cgroup;
> struct page_cgroup;
> struct page;
This really should have been in a separate patch and extensively tested.
Have we checked that every file which directly or indirectly includes
memcontrol.h does not have an requirement for rcupdate.h and mm.h, where
that requirement was satisfied only via this nested inclusion? For all
architectures and for all config selections? Think not.
Sadly, removal of nested includes is a *big* deal, and it takes quite a lot
of time to get it all shaken down.
If we can confirm that all files (.c and .h) which include memcontrol.h
also directly include rcupdate.h and mm.h then we're _probably_ ok (modulo
ordering issues).
Otherwise we should perhaps be taking a second look at how to fix the sparc
problem.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [patch] sparc: fix build
2008-02-13 2:46 ` Andrew Morton
(?)
@ 2008-02-13 2:57 ` Al Viro
2008-02-13 3:08 ` Andrew Morton
-1 siblings, 1 reply; 19+ messages in thread
From: Al Viro @ 2008-02-13 2:57 UTC (permalink / raw)
To: Andrew Morton
Cc: David Rientjes, Adrian Bunk, linux-kernel, sparclinux,
Robert Reif
On Tue, Feb 12, 2008 at 06:46:54PM -0800, Andrew Morton wrote:
> > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
> > --- a/include/linux/memcontrol.h
> > +++ b/include/linux/memcontrol.h
> > @@ -20,9 +20,6 @@
> > #ifndef _LINUX_MEMCONTROL_H
> > #define _LINUX_MEMCONTROL_H
> >
> > -#include <linux/rcupdate.h>
> > -#include <linux/mm.h>
> > -
> > struct mem_cgroup;
> > struct page_cgroup;
> > struct page;
>
> This really should have been in a separate patch and extensively tested.
>
> Have we checked that every file which directly or indirectly includes
> memcontrol.h does not have an requirement for rcupdate.h and mm.h, where
> that requirement was satisfied only via this nested inclusion? For all
> architectures and for all config selections? Think not.
>
> Sadly, removal of nested includes is a *big* deal, and it takes quite a lot
> of time to get it all shaken down.
>
> If we can confirm that all files (.c and .h) which include memcontrol.h
> also directly include rcupdate.h and mm.h then we're _probably_ ok (modulo
> ordering issues).
>
> Otherwise we should perhaps be taking a second look at how to fix the sparc
> problem.
I've run allmodconfig builds on a bunch of target, FWIW (essentially the
same patch). Note that these includes are recent addition caused by
added inline function that had since then become a define. So while I
agree with your comments in general, in _this_ case it's pretty safe.
Commit that had done it is 3062fc67dad01b1d2a15d58c709eff946389eca4
and switch to #define is 60c12b1202a60eabb1c61317e5d2678fcea9893f (BTW,
that warranted mentioning in changelog of the latter).
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [patch] sparc: fix build
2008-02-13 2:57 ` Al Viro
@ 2008-02-13 3:08 ` Andrew Morton
0 siblings, 0 replies; 19+ messages in thread
From: Andrew Morton @ 2008-02-13 3:08 UTC (permalink / raw)
To: Al Viro; +Cc: David Rientjes, Adrian Bunk, linux-kernel, sparclinux,
Robert Reif
On Wed, 13 Feb 2008 02:57:39 +0000 Al Viro <viro@ZenIV.linux.org.uk> wrote:
> On Tue, Feb 12, 2008 at 06:46:54PM -0800, Andrew Morton wrote:
> > > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
> > > --- a/include/linux/memcontrol.h
> > > +++ b/include/linux/memcontrol.h
> > > @@ -20,9 +20,6 @@
> > > #ifndef _LINUX_MEMCONTROL_H
> > > #define _LINUX_MEMCONTROL_H
> > >
> > > -#include <linux/rcupdate.h>
> > > -#include <linux/mm.h>
> > > -
> > > struct mem_cgroup;
> > > struct page_cgroup;
> > > struct page;
> >
> > This really should have been in a separate patch and extensively tested.
> >
> > Have we checked that every file which directly or indirectly includes
> > memcontrol.h does not have an requirement for rcupdate.h and mm.h, where
> > that requirement was satisfied only via this nested inclusion? For all
> > architectures and for all config selections? Think not.
> >
> > Sadly, removal of nested includes is a *big* deal, and it takes quite a lot
> > of time to get it all shaken down.
> >
> > If we can confirm that all files (.c and .h) which include memcontrol.h
> > also directly include rcupdate.h and mm.h then we're _probably_ ok (modulo
> > ordering issues).
> >
> > Otherwise we should perhaps be taking a second look at how to fix the sparc
> > problem.
>
> I've run allmodconfig builds on a bunch of target, FWIW (essentially the
> same patch). Note that these includes are recent addition caused by
> added inline function that had since then become a define. So while I
> agree with your comments in general, in _this_ case it's pretty safe.
OK, thanks, that increases the comfort level,
> Commit that had done it is 3062fc67dad01b1d2a15d58c709eff946389eca4
> and switch to #define is 60c12b1202a60eabb1c61317e5d2678fcea9893f (BTW,
> that warranted mentioning in changelog of the latter).
I just copied-and-pasted your email ;)
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [patch] sparc: fix build
@ 2008-02-13 3:08 ` Andrew Morton
0 siblings, 0 replies; 19+ messages in thread
From: Andrew Morton @ 2008-02-13 3:08 UTC (permalink / raw)
To: Al Viro; +Cc: David Rientjes, Adrian Bunk, linux-kernel, sparclinux,
Robert Reif
On Wed, 13 Feb 2008 02:57:39 +0000 Al Viro <viro@ZenIV.linux.org.uk> wrote:
> On Tue, Feb 12, 2008 at 06:46:54PM -0800, Andrew Morton wrote:
> > > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
> > > --- a/include/linux/memcontrol.h
> > > +++ b/include/linux/memcontrol.h
> > > @@ -20,9 +20,6 @@
> > > #ifndef _LINUX_MEMCONTROL_H
> > > #define _LINUX_MEMCONTROL_H
> > >
> > > -#include <linux/rcupdate.h>
> > > -#include <linux/mm.h>
> > > -
> > > struct mem_cgroup;
> > > struct page_cgroup;
> > > struct page;
> >
> > This really should have been in a separate patch and extensively tested.
> >
> > Have we checked that every file which directly or indirectly includes
> > memcontrol.h does not have an requirement for rcupdate.h and mm.h, where
> > that requirement was satisfied only via this nested inclusion? For all
> > architectures and for all config selections? Think not.
> >
> > Sadly, removal of nested includes is a *big* deal, and it takes quite a lot
> > of time to get it all shaken down.
> >
> > If we can confirm that all files (.c and .h) which include memcontrol.h
> > also directly include rcupdate.h and mm.h then we're _probably_ ok (modulo
> > ordering issues).
> >
> > Otherwise we should perhaps be taking a second look at how to fix the sparc
> > problem.
>
> I've run allmodconfig builds on a bunch of target, FWIW (essentially the
> same patch). Note that these includes are recent addition caused by
> added inline function that had since then become a define. So while I
> agree with your comments in general, in _this_ case it's pretty safe.
OK, thanks, that increases the comfort level,
> Commit that had done it is 3062fc67dad01b1d2a15d58c709eff946389eca4
> and switch to #define is 60c12b1202a60eabb1c61317e5d2678fcea9893f (BTW,
> that warranted mentioning in changelog of the latter).
I just copied-and-pasted your email ;)
^ permalink raw reply [flat|nested] 19+ messages in thread