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/