Hello, has anyone recompiled the loop device? I had a
problem when trying to load the recompiled loop.o into
the kernel. When I use the insmod to load the loop.o,
the system always return "loop.o: unresolved external
__put_user_bad". What is wrong? I found that the
__put_user_bad() was defined in the <asm/uaccess.h> as
"extern void __put_user_bad(void);". But I couldn't
found the source code of this function. I don't know
why. Can I define my own __put_user_bad() function in
my recompiled loop.c?
Another question. My recompiled loop.o is about 25K.
But I found that the loop.o in the
"linux/drivers/block" directory is only 15K. What is
the reason of this difference? I use the following
command line to compile the loop.c file.
gcc -D__KERNEL__ -I/home/mzhu/linux/include -Wall
-DMODULE -DMODVERSIONS -include
/home/mzhu/linux/include/linux/modversions.h -c loop.c
Am I right? I can compile the loop.c and create the
loop.o successfully. But I couldn't load it.
Thanks
Best regards,
Michael
______________________________________________________________________
Web-hosting solutions for home and business! http://website.yahoo.ca
Michael Zhu wrote:
>
> Hello, has anyone recompiled the loop device? I had a
> problem when trying to load the recompiled loop.o into
> the kernel. When I use the insmod to load the loop.o,
> the system always return "loop.o: unresolved external
> __put_user_bad". What is wrong? I found that the
> __put_user_bad() was defined in the <asm/uaccess.h> as
> "extern void __put_user_bad(void);". But I couldn't
> found the source code of this function. I don't know
> why. Can I define my own __put_user_bad() function in
> my recompiled loop.c?
>
> Another question. My recompiled loop.o is about 25K.
> But I found that the loop.o in the
> "linux/drivers/block" directory is only 15K. What is
> the reason of this difference? I use the following
> command line to compile the loop.c file.
>
> gcc -D__KERNEL__ -I/home/mzhu/linux/include -Wall
> -DMODULE -DMODVERSIONS -include
> /home/mzhu/linux/include/linux/modversions.h -c loop.c
>
> Am I right? I can compile the loop.c and create the
> loop.o successfully. But I couldn't load it.
>
I think this is one of the FAQ items: you forgot -O2