From: Adrian P. <a.p...@dn...> - 2002-03-21 14:53:22
|
>>>>> "Gabriel" == Gabriel Paues <ga...@si...> writes: Gabriel> Hi! I'm developing a new kernel module and want to try Gabriel> it with UML. I use the rh7.2-rootfs and my host is Gabriel> running the same dist as well. I use the following Gabriel> Makefile: Gabriel> #Makefile CC=gcc MODCFLAGS := -Wall -DMODULE -D__KERNEL__ Gabriel> -DLINUX Gabriel> ip6headsniff.o: ip6headsniff.c Gabriel> /usr/include/linux/version.h $(CC) $(MODCFLAGS) -c Gabriel> ip6headsniff.c Gabriel> When I compile it, my module (naturaly) gets its version Gabriel> from /usr/include/linux/version.h and uses all standard Gabriel> includes (from Red Hat 7.2). That means it gets compiled Gabriel> for kernel 2.4.7-10. It does also mean that I cannot Gabriel> insmod it into my UML-kernel since it is running Gabriel> 2.4.13um. Gabriel> What I want is crosscompile the module. Since the Gabriel> /usr/include/linux directory is from kernel version Gabriel> 2.4.17-10 in the root_fs i cannot compile the module on Gabriel> the UML natively either. Gabriel> What is the trick? I suppose there is because this must Gabriel> be the primary use of UML after all... :-) If you're compiling a kernel module then you have to compile against the version you wish to load it in. Don't use /usr/include/linux has these headers are for glibc's use. You'll need a -I<path to kernel headers> in your makefile and you can drop the explicit version.h, Sincerely, Adrian Phillips -- Your mouse has moved. Windows NT must be restarted for the change to take effect. Reboot now? [OK] |