Re: [PATCH 01/24] types: create <asm-generic/int-*.h>

From: H. Peter Anvin
Date: Fri Apr 25 2008 - 15:38:31 EST


Matthew Wilcox wrote:
On Fri, Apr 25, 2008 at 12:10:40PM -0700, H. Peter Anvin wrote:
Well, compatibility with userspace is probably one aspect of that. x86-64 is the odd man out there, it defines __s64 as "long long" even for userspace, even though int64_t from <stdint.h> is "long". This, IMO, is the Wrong Thing, but it's a separate set of changes.

The right thing to do is probably to always use "long long" in the kernel, while defining __s64 et al as "long" on 64-bit platforms when not under __KERNEL__.

Again, this is a separate set of changes from this patchset, which is just a code transformation.

Understood, and agreed. It just seemed like an opportune time to
mention the problem of printing a u64.


I have to admit to liking the Windows extension %I64u for this kind of stuff. Unfortunately gcc/glibc decided to use I for internationalized digits instead :(

-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/