[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem with module compilation



On Thu, 15 Feb 2001, Tiziano Fagni wrote:

> Hi, I am a new kernel hacker and I am trying to write my first character device
> 
> driver. I want to develop the driver as module so I get "Linux Kernel Module 
> 
> Programming Guide" and I begin writing....
> 
> After I have writed the basic code such as init_module() and cleanup_module()
> 
> I have tryed to compile the module but I obtain an infinite number of errors.
> 
> The errors are relative to the standard include files.
> 
> This is the output of my compiler (the first lines):
> 
> gcc -D__KERNEL__ -D__SMP__ -Wall -DMODULE -DMODVERSIONS -c -o idx_module.o idx_module.c

Where is -O2 ? That broken HOWTO forgets to mention it I believe.

john

> 
> In file included from /usr/include/linux/dcache.h:7,
> 
> from /usr/include/linux/fs.h:19,
> 
> from idx_module.c:7:
> 
> /usr/include/linux/mount.h:32: parse error before `uid_t'
> 
> /usr/include/linux/mount.h:32: warning: no semicolon at end of struct or union
> 
> /usr/include/linux/mount.h: In function `mntget':
> 
> /usr/include/linux/mount.h:38: dereferencing pointer to incomplete type
> 
> /usr/include/linux/mount.h: In function `mntput':
> 
> /usr/include/linux/mount.h:45: dereferencing pointer to incomplete type
> 
> /usr/include/linux/mount.h:46: warning: implicit declaration of function `printk_Rsmp_1b7d4074'
> 
> In file included from /usr/include/linux/string.h:21,
> 
> from /usr/include/linux/fs.h:23,
> 
> from idx_module.c:7:
> 
> /usr/include/asm/string.h: At top level:
> 
> /usr/include/asm/string.h:47: parse error before `size_t'
> 
> /usr/include/asm/string.h: In function `strncpy':
> 
> /usr/include/asm/string.h:61: `src' undeclared (first use in this function)
> 
> /usr/include/asm/string.h:61: (Each undeclared identifier is reported only once
> 
> /usr/include/asm/string.h:61: for each function it appears in.)
> 
> /usr/include/asm/string.h:61: `dest' undeclared (first use in this function)
> 
> /usr/include/asm/string.h:61: `count' undeclared (first use in this function)
> 
> /usr/include/asm/string.h:63: warning: control reaches end of non-void function
> 
> 
> 
> 
> 
> 
> 
> My module source file is this:
> 
> 
> 
> 
> 
> 
> 
> #include <linux/kernel.h>
> 
> #include <linux/module.h>
> 
> #include <linux/modversions.h>
> 
> 
> 
> /* For character devices. */
> 
> #include <linux/types.h>
> 
> #include <linux/fs.h>
> 
> #include <linux/wrapper.h>
> 
> #include <asm/uaccess.h>
> 
> 
> 
> 
> 
> 
> 
> /* Initialize the module - Register the character device */
> 
> int init_module()
> 
> {
> 
>     /* Register the character device. */
> 
>     Major = module_register_chrdev(0, DEVICE_NAME, &Fops);
> 
>     if (Major < 0)
> 
>    {
> 
>        printk("Register device failed\n");
> 
>        return Major;
> 
>    }
> 
>    printk("Device register with major <%d>!!\n", Major);
> 
>    return 0;
> 
> }
> 
> 
> 
> 
> 
> /* Cleanup function. */
> 
> void cleanup_module()
> 
> {
> 
>    int ret;
> 
>    /* Unregister the device. */
> 
>    ret = module_unregister_chrdev(Major, DEVICE_NAME);
> 
>    if (ret < 0)
> 
>        printk("Error <%d> when try to unloading module!!\n", ret);
> 
> }
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> I try to compile the module on a system running kernel 2.4.0 in SMP mode.
> 
> Anyone can help me to solve this problem?
> 
> Thanks Tiziano Fagni
> 
> 

-- 
"Good sense is, of all things among men, the most equally distributed; for
 every one thinks himself so abundantly provided with it, that those even
 who are the most difficult to satisfy in everything else, do not usually
 desire a larger measure of this quality than they already possess." 
	- Descartes 

-
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/
IRC Channel:   irc.openprojects.net / #kernelnewbies
Web Page:      http://www.surriel.com/kernelnewbies.shtml