[vdr] Compilation issues with recent DVB header files vs libc6
listaccount at e-tobi.net
Wed Apr 8 01:21:27 CEST 2009
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
I think the root of this problem is caused by the Kernel headers / DVB
drivers changing from asm/types.h to 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?
--- snippet A ---
In file included from /usr/include/netinet/in.h:24,
/usr/include/stdint.h:41: error: conflicting declaration 'typedef long int
/usr/include/linux/types.h:98: error: 'int64_t' has a previous declaration
as 'typedef __s64 int64_t'
/usr/include/stdint.h:56: error: conflicting declaration 'typedef long
unsigned int uint64_t'
/usr/include/linux/types.h:96: error: 'uint64_t' has a previous
declaration as 'typedef __u64 uint64_t'
--- snippet B ---
@@ -7,6 +7,8 @@
* $Id: dvbdevice.c 1.170 2008/02/09 16:11:44 kls Exp $
@@ -15,8 +17,6 @@
More information about the vdr