- From: Ian Abbott <abbotti_at_mev.co.uk>
- Date: Tue, 31 Jan 2006 11:44:58 +0000
On 30/01/2006 17:12, steve.sharples_at_nottingham.ac.uk wrote: > I can get comedi to compile ok by adding an appropriate -I line in the > Makefile. Actually what I do is edit a line in ./configure: change: > > LINUX_CFLAGS="$LINUX_CFLAGS $LINUX_CFLAGS_MODULE" > to > LINUX_CFLAGS="$LINUX_CFLAGS -I/usr/src/linux/include/asm-i386/mach-default/ $LINUX_CFLAGS_MODULE" > > (...then run ./configure again to re-make all my Makesfiles) > This is a very dirty hack, and I haven't tried a card yet, but the comedi > kernel module loads without complaint. > > I've got virtually zero experience with Suse, I don't know how different > their kernels are from vanilla but I don't think there is too much > difference. They'll use the usual array of vendor patches I guess, but I think the main thing Suse do differently to most distros is build the kernel object files outside the kernel source directory (so they can build kernels for different architectures and sub-architectures using a single copy of the source directory. I guess Comedi's configure script is falling foul of this technique! > All I did by way of preparation is install the "kernel-source" > package. If I do the additional steps as described in the comedi INSTALL > file (btw, I had to grab this off the most recent release version of > comedi, as autogen.sh seems to create some sort of default INSTALL file > that has nothing to do with comedi) like putting the current kernel > configuration file into /usr/src/linux/.config, checking Makefile for > EXTRAVERSION, run 'make oldconfig' and run 'make modules_prepare'... well, > there seems to be absolutely no difference. > > Is the machine-specific directory for irq_vectors.h meant to be something > that's defined in the kernel configuration, the compiler, or by comedi? > > I can provide any extra debug info you like, but you'll have to guide me > because I'm a little ignorant of these things. Just wondered if anyone > else had experience anything else like it, or had a "proper" fix (that > doesn't involve compiling my own kernel). It might be possible to cater for the Suse way of doing things with a bit of configure script hackery in a slightly more clean way than adding hard-coded include paths. I think a "proper" fix would involve adopting the kernel's kbuild mechanism for building Comedi, but that's a fair bit of work involving some disruptive changes to the Comedi source code (especially to the Makefiles and kernel compatibility headers), so would have to be worked on in a new CVS branch. There are some benefits - the Comedi build wouldn't keep tripping up over changes to the kbuild mechanism in the kernel (for example there are changes in 2.6.16-rc that are transparent to modules built using the kbuild mechanism, but currently cause Comedi to fail to build). There are other issues with adopting kbuild, especially for 2.4 kernels which only supports a subset of the 2.6 kbuild mechanism, so the configure scripts would have to add extra stuff to the Makefile for 2.4 to deal with dependency tracking and linking .o files together for example. At least we don't have to worry about 2.2 kernels anymore! Sorry, I kind of got off the the original subject a little :-) -- -=( Ian Abbott _at_ MEV Ltd. E-mail: <abbotti_at_mev.co.uk> )=- -=( Tel: +44 (0)161 477 1898 FAX: +44 (0)161 718 3587 )=-
Received on 2006-01-31Z11:44:58