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