Tobi wrote:
Hi!
Recent DVB driver releases (now in Kernel 2.6.29) cause trouble compiling VDR (see snippet A below).
The common solution to this seems to be to add a "-D__KERNEL_STRICT_NAMES".
It felt wrong somehow and I didn't liked this, so I tried another solution, which is to have any libc6 <sys/*> includes appear before the linux DVB header includes <linux/*>. Doing this only in dvbdevice.c seems to do the trick for VDR (see snippet B). I works for VDR 1.6.0 as well as VDR 1.7.4.
I think the root of this problem is caused by the Kernel headers / DVB drivers changing from asm/types.h to linux/types.h:
-#include <asm/types.h> +#include <linux/types.h>
How should this problem ideally be fixed? Is my solution (snippet B) better than using -D__KERNEL_STRICT_NAMES or should the kernel / DVB driver developers be blamed for this?
The kernel headers should be fixed to use strict types (patches available). See my earlier reply on the issue: http://linuxtv.org/pipermail/vdr/2009-March/019783.html