[PATCH] Fix broken kernel headers preventing ARM build

From: Russell King
Date: Tue Jul 11 2006 - 16:25:13 EST


And this can be the first of the series. Note that this is NOT a
cleanup, but a build fix, so _is_ immediate -rc1 material.
-----

As a result of 894673ee6122a3ce1958e1fe096901ba5356a96b, the ARM
architecture is more or less unbuildable - only one defconfig appears
to build, with all others erroring out with:

CC arch/arm/kernel/setup.o
In file included from /home/rmk/git/linux-2.6-rmk/arch/arm/kernel/setup.c:22:
/home/rmk/git/linux-2.6-rmk/include/linux/root_dev.h:7: warning: implicit declaration of function `MKDEV'
/home/rmk/git/linux-2.6-rmk/include/linux/root_dev.h:7: error: enumerator value for `Root_NFS' not integer constant
/home/rmk/git/linux-2.6-rmk/include/linux/root_dev.h:8: error: enumerator value for `Root_RAM0' not integer constant
/home/rmk/git/linux-2.6-rmk/include/linux/root_dev.h:9: error: enumerator value for `Root_RAM1' not integer constant
/home/rmk/git/linux-2.6-rmk/include/linux/root_dev.h:10: error: enumerator value for `Root_FD0' not integer constant
/home/rmk/git/linux-2.6-rmk/include/linux/root_dev.h:11: error: enumerator value for `Root_HDA1' not integer constant
/home/rmk/git/linux-2.6-rmk/include/linux/root_dev.h:12: error: enumerator value for `Root_HDA2' not integer constant
/home/rmk/git/linux-2.6-rmk/include/linux/root_dev.h:13: error: enumerator value for `Root_SDA1' not integer constant
/home/rmk/git/linux-2.6-rmk/include/linux/root_dev.h:14: error: enumerator value for `Root_SDA2' not integer constant
/home/rmk/git/linux-2.6-rmk/include/linux/root_dev.h:15: error: enumerator value for `Root_HDC1' not integer constant
/home/rmk/git/linux-2.6-rmk/include/linux/root_dev.h:16: error: enumerator value for `Root_SR0' not integer constant
make[2]: *** [arch/arm/kernel/setup.o] Error 1
make[1]: *** [arch/arm/kernel] Error 2
make: *** [_all] Error 2

Essentially, root_dev.h uses MKDEV and dev_t, but does not include any
headers which provide either of these definitions. The reason it worked
previously is that linux/tty.h just happened to include the required
headers for linux/root_dev.h.

Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>

---

include/linux/root_dev.h | 2 ++
1 file changed, 2 insertions(+)

diff --git a/include/linux/root_dev.h b/include/linux/root_dev.h
index ea4bc9d..ed241aa 100644
--- a/include/linux/root_dev.h
+++ b/include/linux/root_dev.h
@@ -2,6 +2,8 @@ #ifndef _ROOT_DEV_H_
#define _ROOT_DEV_H_

#include <linux/major.h>
+#include <linux/types.h>
+#include <linux/kdev_t.h>

enum {
Root_NFS = MKDEV(UNNAMED_MAJOR, 255),


--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/