Bug#523424: [linux-libc-dev] header clash between <linux/types.h> and <stdint.h>
Package: linux-libc-dev
Version: 2.6.29-2
Severity: important
--- Please enter the report below this line. ---
With kernel 2.6.29 there has been a change from asm/types.h to linux/types.h for a lot of the kernel includes:
-#include <asm/types.h>
+#include <linux/types.h>
This leads to FTBS errors like the one from VDR - see snippet A below. A short test for this is to compile, this:
#include <linux/types.h>
#include <stdint.h>
int main() { return 0; }
There's a clash between linux/types.h and stdint.h because types.h defines some POSIX types defined in stdint.h as well.
Arnd Bergmann already prepared a patch for this, which unfortunately didn't made it into 2.6.29.
See:
http://lkml.indiana.edu/hypermail/linux/kernel/0902.3/index.html#00955
http://git.kernel.org/?p=linux/kernel/git/jaswinder/linux-2.6-tip.git;a=shortlog;h=core/header-fixes
I've just applied the whole patchset from the core/header-fixes branch and it works fine.
As far as I can see, these changes already made it into Linus' kernel tree.
Tobias
--- snippet A ---
In file included from /usr/include/netinet/in.h:24,
from /usr/include/arpa/inet.h:23,
from config.h:13,
from channels.h:13,
from device.h:13,
from dvbdevice.h:15,
from dvbdevice.c:10:
/usr/include/stdint.h:41: error: conflicting declaration 'typedef long int
int64_t'
/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'
--- System information. ---
Architecture: amd64
Kernel: Linux 2.6.28-etobi.2-amd64
Debian Release: squeeze/sid
900 testing www.debian-multimedia.org
900 testing security.debian.org
900 testing ftp.de.debian.org
500 stable ftp.de.debian.org
--- Package information. ---
Depends (Version) | Installed
=======================-+-===========
|
Reply to: