Matthew Wilcox wrote:
So ... given all this, why do we define s64 to be 'long' on some architectures and 'long long' on others? It seems to actively _hinder_ passing it to printf(), so there must be some other good reason that I'm missing to not make it 'long long' everywhere.
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.
-hpa -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html