Messages in this thread | | | Date | Mon, 8 Nov 2004 23:37:03 +0100 | From | Sam Ravnborg <> | Subject | Re: makeing a loadable module |
| |
On Sun, Nov 07, 2004 at 11:28:48PM -0500, Gene Heskett wrote: > Greetings; > > I found some code I can play with/hack/etc, in the form of a loadable > module and some testing driver programs, in 'dpci8255.tar.gz'. > > Unforch its for a slightly different card than the one I have, and > once I've hacked the code to suit, I need to rebuild it. > > So whats the gcc command line to make just a bare, loadable module for > say a 2.4.25 kernel? Obviously I'm missing something when it > complains and quits, claiming there is no 'main' defined, which I > don't think modules actually have one of those? > > What I'm trying to do (hey, no big dummy jokes please :) > > [root@coyote dist]# cc -o dpci8255.o dpci8255lib.c > /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../../crt1.o(.text+0x18): > In function `_start': > : undefined reference to `main' > collect2: ld returned 1 exit status
Create a small Makefile: echo obj-m := dpci8255.o > Makefile
And use: make -C $PATH_TO_KERNEL_SRC SUBDIRS=$PWD modules
This will give you the correct gcc commandline - adopted to actual configuration of the kernel. Any other way to compile a module is br0ken.
For 2.6 the above syntax works as well, but simpler versions exists.
Sam - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |