Johannes Stezenbach wrote: > Nico Sabbi wrote: > >>on kernels that don't have __iomem and __iouser defined, >>especially distributions with patched kernel headers that have funny >>version names >>like 2.6.8.1-mdkcustom, compilation of dvb drivers (and applications >>that use them) >>_always_ fails because those macros are required by dvb header files. >> >>I understand that this bug is related to the kernel rather than to dvb, >>and I guess that the check to define these macros as empty for older >>kernels is done badly, still dvb drivers and applications are affected, >>so I hope someone of you developers will find a definitive fix to this >>never >>ending problem. > > > The problem is actually that the includes that come with glibc > are out of date. On a recent distribution you have DVB includes > in /usr/include/linux/dvb/ and a /usr/include/linux/compiler.h > that defines __user. When you mess with the files in > /usr/include/linux/dvb/, or you use -I.../dvb-kernel/include > then it's your fault if you don't supply a matching __user > definition (-D__user). > > I don't know if the policy has changed, but AFAIK Linus does > not like userspace compatibility cruft in kernel includes, > i.e. he does (did?) not accept patches with #ifdef __KERNEL > cruft in it. (There's a separate project to get around that: > http://ep09.pld-linux.org/~mmazur/linux-libc-headers/ > http://groups-beta.google.com/group/linux.kernel/msg/80186432c7d76bd6). > > Likely I guess he would not like > #if !defined(__user) > #define __user > #endif > repeated in all DVB API headers. > > But of course I see the problem with backwards compatibility. > The only way to solve it cleanly would be to have a "dvb-dev" > package that installs compatible API headers in /usr/include/dvb/. > (Or you add a cleaned copy of the API headers to your source tree > (like xawtv does it with v4l headers).) > I don't like both ;-/ > A symlink would be a better idea ? It works good for me. I have 2 symlinks that solves the problem, /usr/include/dvb --> /work/dvb-kernel --> dvb-kernel/cvs-by date Everytime i update the dvb-kernel cvs, i have to change the second symbolic link, and everytime i update the kernel source i change the first symlink.. Manu