[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

<linux/types.g> vs. <stdint.h>



Hi!

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.

There's a clash between linux/types.h and stdint.h

One workaround for this problem, is to define __KERNEL_STRICT_NAMES in the
application code, but this doesn't feel right. Reordering the includes
(stdint.h BEFORE types.h works, but not the other way around) doesn't seem
to be any better.

Who is to blame for this? Is it a glibc issue or a kernel issue?

I think this already has been addressed in an old thread:

http://lists.debian.org/debian-glibc/2007/08/msg00140.html

bye,

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'


Reply to: