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.