latest mtd code from CVS cannot be compiled with the latest linuxppc_2_4_devel tree? Weird???
Xiaogeng (Shawn) Jin
xjin at redswitch.com
Thu Jan 9 13:51:12 EST 2003
Hi,
I had a compilation error when compiling linuxppc_2_4_devel
(v2.4.21-pre3) with the latest mtd code. Here is the error message.
ppc_8xx-gcc -D__KERNEL__
-I/u/xjin/2_4_devel/Software/Linux/MPC855/linuxppc_2_4_
devel/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2
-fno-strict-aliasing
-fno-common -fomit-frame-pointer
-I/u/xjin/2_4_devel/Software/Linux/MPC855/linux
ppc_2_4_devel/arch/ppc -fsigned-char -msoft-float -pipe -ffixed-r2
-Wno-uninitia
lized -mmultiple -mstring -nostdinc -I
/opt/eldk2.0/usr/lib/gcc-lib/ppc-linux/
2.95.4/include -DKBUILD_BASENAME=mtdblock_core -c -o mtdblock-core.o
mtdblock-c
ore.c
In file included from
/u/xjin/2_4_devel/Software/Linux/MPC855/linuxppc_2_4_devel
/include/linux/blk.h:4,
from mtdblock-core.c:18:
/u/xjin/2_4_devel/Software/Linux/MPC855/linuxppc_2_4_devel/include/linux/blkdev.
h:147: parse error before `struct'
I tried to solve the problem by moving #include <linux/blk.h> forward,
which is originally after #include <linux/mtd/compatmac.h>. So
mtdblock-core.c became the following.
#include <linux/config.h>
#include <linux/types.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/blk.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/compatmac.h>
#include "mtdblock.h"
And the error was gone.
However when mtdblock-24.c was compiled, the same error message occured.
And this time I had no such luck because there seems to be some specific
sequence to be followed when headers are included. This time
<linux/blk.h> cannot be moved forward. So I doubt that I solved the
compilation error in mtdblock-core.c.
#include <linux/config.h>
#include <linux/types.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/compatmac.h>
#include "mtdblock.h"
#define DEVICE_REQUEST mtdblock_request
#define DEVICE_NR(device) (device)
#define DEVICE_ON(device)
#define DEVICE_OFF(device)
#define DEVICE_NO_RANDOM
#include <linux/blk.h>
The compiler I used is from ELDK 2.0 (ppc_8xx-gcc 2.95.4). Is it a known
problem that already has been solved?
--
Shawn Jin
RedSwitch Inc.
More information about the linux-mtd
mailing list