Re: 2.6.11-mm2

From: Paul Mundt
Date: Tue Mar 08 2005 - 09:00:00 EST


With the BUG_ON() use in linux/list.h I get this:

CC init/initramfs.o
In file included from include/linux/wait.h:23,
from include/linux/fs.h:205,
from init/initramfs.c:2:
include/linux/list.h: In function `list_del':
include/linux/list.h:164: warning: implicit declaration of function `printk'
In file included from include/linux/spinlock.h:13,
from include/linux/wait.h:25,
from include/linux/fs.h:205,
from init/initramfs.c:2:
include/linux/kernel.h: At top level:
include/linux/kernel.h:116: error: conflicting types for 'printk'
include/linux/kernel.h:116: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
include/linux/list.h:164: error: previous implicit declaration of 'printk' was here
make[1]: *** [init/initramfs.o] Error 1
make: *** [init] Error 2

It looks like this is a result of having asm/bug.h included and not
having linux/kernel.h included before it, as adding that makes this go
away. This seems like it will be a problem for platforms that use
printk() in their BUG() definitions (in the HAVE_ARCH_BUG case) without
dragging in this header from somewhere else.

With this I can build on sh again. The other solution is to add the
include to asm/bug.h directly, but it would be nice to avoid linux/
includes from asm/ context in general..

Thoughts? Or ideas for a more appropriate fix?

--- linux-sh-2.6.11-mm2.orig/include/linux/list.h 2005-03-08 15:46:50.601565604 +0200
+++ linux-sh-2.6.11-mm2/include/linux/list.h 2005-03-08 15:46:53.882114403 +0200
@@ -5,6 +5,7 @@

#include <linux/stddef.h>
#include <linux/prefetch.h>
+#include <linux/kernel.h>
#include <asm/system.h>
#include <asm/bug.h>

Attachment: pgp00000.pgp
Description: PGP signature