ilp32 is an ABI to run on v8 64-bit-only cores. Thus it has the same basic properties as aarch32 or armv7 code (ints, long and pointers are 32bit), but only uses the armv8 A64 instruction set. It is exactly the same concept as x32 on the x86 architecture.
From looking at earlier versions of the work, it seemed like it should be centered on kernel (ABI), libc, toolchain and 'tune'. So a pretty low impact change, for a good reward. (Similar in many ways to MIPS64 n32.)
has use in networking stacks, although I am not very excited about new ABIs
several patches are in master. http://cgit.openembedded.org/openembedded-core/commit/?id=3a599e9d9df4aee25b6aa887563ef833559d96f8 http://cgit.openembedded.org/openembedded-core/commit/?id=4e8840aa7adf91f04da2a1947b8d1dff7f88df50 http://cgit.openembedded.org/openembedded-core/commit/?id=4b4a1295b8476d2820935eb5661b2d24a49b29b2
Is this something Arm would like to support/add?
It should work and be supported. Arm will take the task to add it to our internal testing to make sure it works and will continue to work.
Yeah, I'll take this and see what we can do.
Cost-benefit for this is marginal at best. IA X32 is a win because of the hugely increased number of registers, whereas 32-bit ARM already has lots of registers. Linux itself doesn't support ilp32, there's a branch with initial support here: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git/log/?h=staging/ilp32-5.1 But that was abandoned with 5.1. glibc doesn't support ilp32 either, and are waiting on the kernel to merge support. Linaro have a branch: https://git.linaro.org/toolchain/glibc.git/log/?h=arm/ilp32 Fundamentally it's going to be less interesting than X32, but is still in the bootstrap phase. If this gets integrated into the mainline kernel and glibc we can revisit this, but currently the meta-arm maintainers are not going to work on this.