Re: 2.1.124-pre

Adam Sulmicki (adam@cfar.UMD.EDU)
Wed, 30 Sep 1998 17:40:11 -0400


Hello,

->> 1) umdos is still broken and refuses to compile

->What problem are you having with umsdos? pre-124 doesn't change the umsdos
->code, and 123 compiled fine here with no additional changes.

Hmm, that's odd, but then again, the 124 does not boot for me
due to the fpu trap problem, while it probaly does boots for many others.

The error message was at the final linking stage. It was as follows.
[fix follows below]

ld -m elf_i386 -T /usr/src/Linux/21/make-123/arch/i386/vmlinux.lds -e
stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o
init/version.o \
arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o
mm/mm.o fs/fs.o ipc/ipc.o \
fs/filesystems.a \
net/network.a \
drivers/block/block.a drivers/char/char.a drivers/misc/misc.a
drivers/net/net.a drivers/cdrom/cdrom.a drivers/pci/pci.a
drivers/pnp/pnp.a drivers/video/video.a \
/usr/src/Linux/21/make-123/arch/i386/lib/lib.a
/usr/src/Linux/21/make-123/lib/lib.a
/usr/src/Linux/21/make-123/arch/i386/lib/lib.a \
-o vmlinux
fs/filesystems.a(umsdos.o): In function `UMSDOS_read_super':
umsdos.o(.text+0x11c0): undefined reference to `umsdos_dentry_operations'
umsdos.o(.text+0x11e9): undefined reference to `umsdos_dentry_operations'
fs/filesystems.a(umsdos.o): In function `umsdos_rlookup_x':
umsdos.o(.text+0x3748): undefined reference to `umsdos_dentry_operations'
make: *** [vmlinux] Error 1
[root@bar make-123]#

It seems to b/c in the files which contain those two functions the
umsdos_dentry operations is defined as

extern foo umsdos_dentry_operations;

while the function itself is defined as

static struct foo umsdos_dentry_operations

Those two signatures does not match. I belive the fix is as
follows (well it does compiles for me with it :)

------------------------------------------------------------------
[adam@bar make-123]$ diff -u fs/umsdos/dir.c{-ORIG,}
--- fs/umsdos/dir.c-ORIG Wed Sep 30 17:26:28 1998
+++ fs/umsdos/dir.c Wed Sep 30 17:32:03 1998
@@ -44,7 +44,7 @@
}
}

-static struct dentry_operations umsdos_dentry_operations =
+struct dentry_operations umsdos_dentry_operations =
{
umsdos_dentry_validate, /* d_validate(struct dentry *) */
NULL, /* d_hash */
------------------------------------------------------------------

Is this cool?

Adam

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/