Re: [PATCH] Use __kernel_long_t/__kernel_ulong_t in <linux/resource.h>

From: H. Peter Anvin
Date: Thu Dec 26 2013 - 12:59:13 EST


On 12/26/2013 05:52 AM, H.J. Lu wrote:
>
>> c) why you suddenly need these changes now and not when the x32 ABI
>> support was submitted and hopefully heavily tested
>
> Kernel headers had been wrong for -m32/-mx32 on x86-64
> for a long long time. Linux/x86-64 normally use header
> files from glibc, which avoids broken kernel header files.
> Kernel uabi header files fix -m32, but not -mx32, which I am
> working on now.
>

In other words, this work is really part of making *libc make use the
kernel uabi headers, which is a valuable work. The fact that the kernel
headers never got fully ported to x32 is a big reason why x32 is still
labeled experimental.

MIPS N32 and ARM64 ILP32 are x32-like ABIs which of course need to not
be broken. However, currently __kernel_[u]long_t is [unsigned] long for
all ABIs other than x32, so changing [unsigned] long to
__kernel_[u]long_t will be a null change for anything but x32. They
perhaps *SHOULD* be different for N32 or ARM64 ILP32, but that is for
those arch maintainers to set.

However, I believe H.J.'s patches from this morning conditionalizing
this on __BITS_PER_LONG are just plain wrong.

-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/