Bug#301631: linux-kernel-headers: type of __s64 and __u64 (from asm/types.h) on AMD64 should be long
On Tue, Mar 29, 2005 at 05:30:00PM +0200, André Wöbbeking wrote:
> On Tuesday 29 March 2005 17:01, Daniel Jacobowitz wrote:
>
> > Can you explain why you want to make this change? Long long is still
> > correct for these types, and consistent within the kernel. The
> > kernel types don't need to match stdint.h.
>
> I got an error from
>
> #ifdef OS_Linux
> #include <linux/version.h>
> #include <sys/types.h>
> #ifndef __u64
> #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,70)
> #include <bits/wordsize.h>
> #if __WORDSIZE == 64
> typedef unsigned long __u64;
> #else
> typedef unsigned long long __u64;
> #endif
> #endif
> #endif
> #endif
>
> somewhere below <asm/types.h> is included which results in a type
> mismatch.
That's your bug. Don't do that. Don't mix glibc and kernel headers.
--
Daniel Jacobowitz
CodeSourcery, LLC
Reply to: