Messages in this thread Patch in this message |  | | From | (Erik B. Andersen) | Subject | Linux 2.1.0 Compilation problem | Date | Mon, 30 Sep 1996 16:36:55 -0600 (MDT) |
| |
I just picked up the brand new patch-2.0.21-2.1.0.gz and patched a clean version of 2.0.21 (I cheated, and renamed patch-2.0.21-2.1.0.gz to patch-2.0.22.gz and just used the patch-kernel script). Anyway, I compiled it the exact way I always compile a new kernel, everything that can be made into modules (at least stuff that I use) I make as modules, except for the ext2 filesystem (I wouldn't want that as a module right now...) . The kernel built just fine. However, I got the following error compiling the umsdos module:
make[2]: Entering directory `/usr/src/linux/fs/umsdos' gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strength-reduce -pipe -m486 -DCPU=486 -DMODULE -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h -c -o emd.o emd.c emd.c:31: conflicting types for `umsdos_file_read_kmem' /usr/src/linux/include/linux/umsdos_fs.p:26: previous declaration of `umsdos_file_read_kmem' emd.c:47: conflicting types for `umsdos_file_write_kmem' /usr/src/linux/include/linux/umsdos_fs.p:30: previous declaration of `umsdos_file_write_kmem' emd.c:68: conflicting types for `umsdos_emd_dir_write' /usr/src/linux/include/linux/umsdos_fs.p:34: previous declaration of `umsdos_emd_dir_write' emd.c:84: conflicting types for `umsdos_emd_dir_read' /usr/src/linux/include/linux/umsdos_fs.p:38: previous declaration of `umsdos_emd_dir_read' make[2]: *** [emd.o] Error 1
A quick glance at the source code shows real differences between the type declarations in /usr/src/linux/fs/umsdos/emd.c and the declarations in /usr/src/linux/include/linux/umsdos_fs.p
Assuming that the declarations introduced into umsdos_fs.p from the new patch are those that are intended to be in effect, a few changes to emd.c are then in order. The following patch allows it to compile with no warnings. I havn't yet tested if umsdos works with these changes... -Erik
-- Erik B. Andersen Web: http://www.et.byu.edu/~andersee/ 2485 South State St. email: andersee@et.byu.edu Springville, Ut 84663 phone: (801) 489-1231 --This message was written using 73% post-consumer electrons--
[Patch Follows] --- /usr/src/linux/fs/umsdos/emd.c.orig Mon Sep 30 15:53:26 1996 +++ /usr/src/linux/fs/umsdos/emd.c Mon Sep 30 16:30:00 1996 @@ -23,11 +23,10 @@ /* Read a file into kernel space memory */ -int umsdos_file_read_kmem( - struct inode *inode, +long umsdos_file_read_kmem (struct inode *inode, struct file *filp, char *buf, - int count) + unsigned long count) { int ret; int old_fs = get_fs(); @@ -39,11 +38,10 @@ /* Write to a file from kernel space */ -int umsdos_file_write_kmem( - struct inode *inode, +long umsdos_file_write_kmem (struct inode *inode, struct file *filp, const char *buf, - int count) + unsigned long count) { int ret; int old_fs = get_fs(); @@ -60,11 +58,10 @@ Return 0 if ok, a negative error code if not. */ -int umsdos_emd_dir_write ( - struct inode *emd_dir, +long umsdos_emd_dir_write (struct inode *emd_dir, struct file *filp, char *buf, /* buffer in kernel memory, not in user space */ - int count) + unsigned long count) { int written; filp->f_flags = 0; @@ -76,18 +73,17 @@ The block of data is NOT in user space. Return 0 if ok, -EIO if any error. */ -int umsdos_emd_dir_read ( - struct inode *emd_dir, +long umsdos_emd_dir_read (struct inode *emd_dir, struct file *filp, char *buf, /* buffer in kernel memory, not in user space */ - int count) + unsigned long count) { - int ret = 0; + long int ret = 0; int sizeread; filp->f_flags = 0; sizeread = umsdos_file_read_kmem (emd_dir,filp,buf,count); if (sizeread != count){ - printk ("UMSDOS: problem with EMD file. Can't read pos = %Ld (%d != %d)\n" + printk ("UMSDOS: problem with EMD file. Can't read pos = %Ld (%d != %ld)\n" ,filp->f_pos,sizeread,count); ret = -EIO; }
|  |