Thanks for the explanation. However I am still puzzled as to why it did not compile with the -DMODVERSIONS option. As I understand it, if either of the kernel or the module is built without kernel versioning and the other is built with versioning, there will be a problem during module load i.e during insmod. I could not find any information anywhere saying that the module will not compile. Versioning seems to be supported in the kernel as I had included the following line in my Makefile when I tried to compile the first time (i.e. when it failed). It was only when I commented this line out would it compile correctly ifdef CONFIG_MODVERSIONS CFLAGS += -DMODVERSIONS -include $(KERNELDIR)/include/linux/modversions.h endif thanks RS --- mohanlal jangir <mohanlal@samsung.com> wrote: > -DMODVERSIONS is certainly for module versioning. > Here is the explanation: > If you have a module and you want to work over many > Linux kernels (2.4.18, > 2.4.19, 2.4.20 etc). You have two ways of doing > this. First is that, you > compile your module with header files of each kernel > (you have to compile > every time, you work with a new kernel). Another way > is to compile > with -DMODVERSIONS. When you compile with > -DMODVERSIONS, all functions of > module (as well as kernel, which has module > versioning support) are appended > with a suffix (which a hash calculated over the > function prototype). So as > long as your module function name(with hash) and > kernel api name (with hash) > are matching, your module will be inserted. If API > does not match (then hash > will differ) and kernel will refuse to load the > module. This way you can > make your module to work over multiple kernel > without recompiling (as long > as kernel API hash is matching with module`s one). > > Regards > Mohanlal > > ----- Original Message ----- > From: "LinuxTyro" <linuxtyro@yahoo.com> > To: <kernelnewbies@nl.linux.org> > Sent: Thursday, April 15, 2004 7:31 AM > Subject: Re: compile problems > > > > thanks! it compiled. However I have got to look > into > > what -DMODVERSIONS is used for. I am sure it is > for > > versioning but am not quite sure what its > > functionality is. > > > > Also I had to include slab.h instead of malloc.h > for > > it to compile correctly. Is this the way its going > to > > be for all modules of v 2.4 and later? > > > > thanks > > > > Ranjan > > > > > > > > --- mohanlal jangir <mohanlal@samsung.com> wrote: > > > Why don't you give a try without -DMODVERSIONS > and > > > -include > > > > /usr/src/linux-2.4.20-8/include/linux/modversion.h > > > > > > Regards > > > Mohanlal > > > > > > ----- Original Message ----- > > > From: "LinuxTyro" <linuxtyro@yahoo.com> > > > To: <kernelnewbies@nl.linux.org> > > > Sent: Wednesday, April 14, 2004 8:15 AM > > > Subject: compile problems > > > > > > > > > > Hi everyone, > > > > > > > > This is my first shot at kernel programming so > > > please > > > > bear with me. > > > > I am using Rubini's Device Driver book (2nd > ed)as > > > a > > > > guide and trying to compile one of the sample > > > device > > > > drivers (scull). However I get tons of errors > & > > > > warnings when trying to compile and all of > them > > > point > > > > to errors in the kernel sources. I have > specified > > > my > > > > KERNELDIR(=/usr/src/linux-2.4.20-8) in the > make > > > > command line arguments. Here is a sample of > the > > > > output the make command that I get when I do a > > > make > > > > KERNELDIR(=/usr/src/linux-2.4.20-8) .I havent > > > included > > > > all the errors as it is huge. > > > > > > > > *************** > > > > gcc -D__KERNEL__ -DMODULE > > > > -I/usr/src/linux-2.4.20-8/include > -DMODVERSIONS > > > > -include > > > > > > > > /usr/src/linux-2.4.20-8/include/linux/modversions.h > > > > -O2 -I.. -c -o main.o main.c > > > > In file included from > > > > > > > > /usr/src/linux-2.4.20-8/include/linux/prefetch.h:13, > > > > from > > > > > /usr/src/linux-2.4.20-8/include/linux/list.h:6, > > > > from > > > > > /usr/src/linux-2.4.20-8/include/linux/module.h:12, > > > > from main.c:25: > > > > > > > > /usr/src/linux-2.4.20-8/include/asm/processor.h:60: > > > > warning: parameter names (without types) in > > > function > > > > declaration > > > > > > > > /usr/src/linux-2.4.20-8/include/asm/processor.h:60: > > > > field `loops_per_jiffy_R_ver_str' declared as > a > > > > function > > > > > > > > /usr/src/linux-2.4.20-8/include/asm/processor.h:82: > > > > invalid suffix on integer constant > > > > > > > > /usr/src/linux-2.4.20-8/include/asm/processor.h:82: > > > > parse error before numeric constant > > > > > > > > /usr/src/linux-2.4.20-8/include/asm/processor.h:265: > > > > invalid suffix on integer constant > > > > ************** > > > > The program exits with an Error 1. > > > > I have compiled and loaded a simple helloworld > > > module > > > > in this same kernel. I am not sure what I am > doing > > > > wrong. > > > > Can anyone give me some direction? > > > > > > > > Thanks for your help > > > > > > > > R S > > > > > > > > > > > > > > > > > > > > > > > > __________________________________ > > > > Do you Yahoo!? > > > > Yahoo! Tax Center - File online by April 15th > > > > http://taxes.yahoo.com/filing.html > > > > > > > > -- > > > > Kernelnewbies: Help each other learn about the > > > Linux kernel. > > > > Archive: > > > http://mail.nl.linux.org/kernelnewbies/ > > > > FAQ: http://kernelnewbies.org/faq/ > > > > > > > > > > > > > > > > > -- > > > Kernelnewbies: Help each other learn about the > Linux > > > kernel. > > > Archive: > > > http://mail.nl.linux.org/kernelnewbies/ > > > FAQ: http://kernelnewbies.org/faq/ > > > > > > > > > > > > > > > __________________________________ > > Do you Yahoo!? > > Yahoo! Tax Center - File online by April 15th > > http://taxes.yahoo.com/filing.html > > > > -- > > Kernelnewbies: Help each other learn about the > Linux kernel. > > Archive: > http://mail.nl.linux.org/kernelnewbies/ > > FAQ: http://kernelnewbies.org/faq/ > > > === message truncated === __________________________________ Do you Yahoo!? Yahoo! Tax Center - File online by April 15th http://taxes.yahoo.com/filing.html -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/