* 2.6.5 - incomplete headers?
@ 2004-04-11 11:27 Axel Weiss
2004-04-11 11:52 ` Jan Dittmer
0 siblings, 1 reply; 5+ messages in thread
From: Axel Weiss @ 2004-04-11 11:27 UTC (permalink / raw)
To: linux-kernel
Hi,
I'm going to bring my device drivers[1] from 2.4 to 2.6 and have successfully
installed kernel-2.6.5 for my athlon-PC.
Compiling (unmodified) 2.4-sources of my modules stops, missing irq_vectors.h.
What do I have to do to successfully include <linux/interrupt.h> from inside a
kernel module? Or is ther a completely different strategy for ISRs in 2.6?
(Where is the starting point to read, in this case?)
FYI:
$ uname -r
2.6.5
$ gcc -c -Wall -I/lib/modules/`uname -r`/build/include -DMODULE -D__KERNEL__
-DHARMONIE_DEBUG harmonie_io.c
In file included from /lib/modules/2.6.5/build/include/linux/irq.h:20,
from /lib/modules/2.6.5/build/include/asm/hardirq.h:6,
from /lib/modules/2.6.5/build/include/linux/interrupt.h:11,
from harmonie_io.c:44:
/lib/modules/2.6.5/build/include/asm/irq.h:16:25: irq_vectors.h: No such file
or directory
Regards,
Axel Weiss
[1] device drivers for some dsp-cards, can be found at http://sourceforge.net/
projects/freesp/
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: 2.6.5 - incomplete headers? 2004-04-11 11:27 2.6.5 - incomplete headers? Axel Weiss @ 2004-04-11 11:52 ` Jan Dittmer 2004-04-11 18:33 ` kernelversion distinction (was 2.6.5 - incomplete headers?) Axel Weiss 0 siblings, 1 reply; 5+ messages in thread From: Jan Dittmer @ 2004-04-11 11:52 UTC (permalink / raw) To: Axel Weiss; +Cc: linux-kernel Axel Weiss wrote: > Hi, > > I'm going to bring my device drivers[1] from 2.4 to 2.6 and have successfully > installed kernel-2.6.5 for my athlon-PC. > (Where is the starting point to read, in this case?) LWN has quite a collection: http://lwn.net/Articles/driver-porting/ Jan ^ permalink raw reply [flat|nested] 5+ messages in thread
* kernelversion distinction (was 2.6.5 - incomplete headers?) 2004-04-11 11:52 ` Jan Dittmer @ 2004-04-11 18:33 ` Axel Weiss 2004-04-11 20:33 ` Sam Ravnborg 0 siblings, 1 reply; 5+ messages in thread From: Axel Weiss @ 2004-04-11 18:33 UTC (permalink / raw) To: linux-kernel Am Sonntag, 11. April 2004 13:52 schrieb Jan Dittmer: > Axel Weiss wrote: > > Hi, > > > > I'm going to bring my device drivers[1] from 2.4 to 2.6 and have > > successfully installed kernel-2.6.5 for my athlon-PC. > > > > (Where is the starting point to read, in this case?) > > LWN has quite a collection: > > http://lwn.net/Articles/driver-porting/ Thanks, very helpful! Now, I`m trying to be compatible with older kernels (2.2 - 2.4) and want to find out what kernel version ist installed, from Makefile. My first solution: # Makefile KERNELVERSION := $(shell uname -r) KERNELBASE := $(basename $(KERNELVERSION)) KERNELMINOR := $(suffix $(KERNELBASE)) KERNELMAJOR := $(basename $(KERNELBASE)) OLD_MODULES := $(strip $(foreach V, .0 .1 .2 .3 .4, $(shell [ "$(V)" = "$(KERNELMINOR)" ] && echo yes))) ifeq ($(KERNELMAJOR),2) ifeq ($(OLD_MODULES),yes) # old style make endif #ifeq ($(OLD_MODULES),yes) # new style make, like pointed out in LWN else #ifeq ($(KERNELMAJOR),2) all: @echo kernel $(KERNELVERSION) not supported endif #ifeq ($(KERNELMAJOR),2) Any improvements? Up to which kernel version should old style make be used? Regards, Axel Weiss ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: kernelversion distinction (was 2.6.5 - incomplete headers?) 2004-04-11 18:33 ` kernelversion distinction (was 2.6.5 - incomplete headers?) Axel Weiss @ 2004-04-11 20:33 ` Sam Ravnborg 2004-04-12 10:21 ` kernelversion distinction Axel Weiss 0 siblings, 1 reply; 5+ messages in thread From: Sam Ravnborg @ 2004-04-11 20:33 UTC (permalink / raw) To: Axel Weiss; +Cc: linux-kernel > > Any improvements? Up to which kernel version should old style make be used? You cannot use same Makefile for both 2.4 and 2.6? Using the syntax: make -C $KERNELSRC SUBDIRS=$PWD modules should allow you to do that if there is no special requirements. The Makefile should be an ordinary kbuild Makefile in this case: obj-m := module.o module-objs := mod1.o mod2.o etc.. Another approach would be to keep two Makefiles, one for 2.4, another for 2.6. Default could be Makefile (for 2.6) and Makefile.24 for older kernels. This makes much less conditionals. Sam ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: kernelversion distinction 2004-04-11 20:33 ` Sam Ravnborg @ 2004-04-12 10:21 ` Axel Weiss 0 siblings, 0 replies; 5+ messages in thread From: Axel Weiss @ 2004-04-12 10:21 UTC (permalink / raw) To: linux-kernel; +Cc: Sam Ravnborg On Sunday 11 April 2004 22:33, Sam Ravnborg wrote: > > Any improvements? Up to which kernel version should old style make be > > used? > > You cannot use same Makefile for both 2.4 and 2.6? > > Using the syntax: > make -C $KERNELSRC SUBDIRS=$PWD modules > > should allow you to do that if there is no special requirements. > The Makefile should be an ordinary kbuild Makefile in this case: > > obj-m := module.o > module-objs := mod1.o mod2.o > etc.. > > Another approach would be to keep two Makefiles, one for 2.4, another > for 2.6. Default could be Makefile (for 2.6) and Makefile.24 for older > kernels. This makes much less conditionals. Ok, maybe there's some misunderstanding due to copy-n-paste-mistakes I made in my former mail. As I suppose my device drivers will not become part of the official kernel, I keep them with my project. My opinion now is to use one Makefile for both, 2.2-2.4 and 2.6 kernels, and to keep this Makefile simple. Maybe, I'm not the first one who tries this, or maybe others would find it useful - that's the reason why I want to discuss this topic here. (If I'm OT, please let me know). Ok, to become more detailed, I repost my current solution (which seems to work for both, 2.4 and 2.6). My question here focusses on the beginning, where I distinguish the kernel versions by evaluating 'uname -r' and defining five symbols. Is there a more effective way to do it, or is there a danger to conflict with the symbol names I chose? # Makefile KERNELVERSION := $(shell uname -r) KERNELBASE := $(basename $(KERNELVERSION)) KERNELMINOR := $(suffix $(KERNELBASE)) KERNELMAJOR := $(basename $(KERNELBASE)) OLD_MODULES := $(strip $(foreach V, .0 .1 .2 .3 .4, $(shell [ "$(V)" = "$(KERNELMINOR)" ] && echo yes))) ifeq ($(KERNELMAJOR),2) ifeq ($(OLD_MODULES),yes) # old style here: # ... all: # ... clean: #... else #ifeq ($(OLD_MODULES),yes) # new style here: ifneq ($(KERNELRELEASE),) EXTRA_CFLAGS := -I/usr/include obj-m += <my_module>.o <my_module>-objs = <my module object files> else #ifneq ($(KERNELRELEASE),) KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) all: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules clean: rm -f *.o *.ko .*.cmd <my_module>.mod.c endif #ifneq ($(KERNELRELEASE),) endif #ifeq ($(OLD_MODULES),yes) else #ifeq ($(KERNELMAJOR),2) # don't want to support 1.x all: @echo kernel $(KERNELVERSION) not supported endif #ifeq ($(KERNELMAJOR),2) BTW: I get a warning: *** Warning: Overriding SUBDIRS on the command line can cause *** inconsistencies (which I silently ignore...) Regards, Axel Weiss ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2004-04-12 10:31 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2004-04-11 11:27 2.6.5 - incomplete headers? Axel Weiss 2004-04-11 11:52 ` Jan Dittmer 2004-04-11 18:33 ` kernelversion distinction (was 2.6.5 - incomplete headers?) Axel Weiss 2004-04-11 20:33 ` Sam Ravnborg 2004-04-12 10:21 ` kernelversion distinction Axel Weiss
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox