Bug 11877 - Add aarch64 ilp32 framework
Summary: Add aarch64 ilp32 framework
Status: RESOLVED WONTFIX
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: core (show other bugs)
Version: 2.4
Hardware: x86 Multiple
: Low enhancement
Target Milestone: Future
Assignee: Ross Burton
QA Contact:
URL: https://static.docs.arm.com/dai0490/a...
Whiteboard:
Depends on:
Blocks:
 
Reported: 2017-07-31 18:09 UTC by Armin Kuster
Modified: 2020-10-27 03:25 UTC (History)
8 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Armin Kuster 2017-07-31 18:09:13 UTC
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.
Comment 1 Mark Hatle 2017-07-31 19:25:01 UTC
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.)
Comment 2 Khem Raj 2017-07-31 19:31:48 UTC
has use in networking stacks, although I am not very excited about new ABIs
Comment 4 akuster 2020-10-22 08:22:03 UTC
Is this something Arm would like to support/add?
Comment 5 Jon Mason 2020-10-22 09:03:35 UTC
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.
Comment 6 Ross Burton 2020-10-22 09:04:08 UTC
Yeah, I'll take this and see what we can do.
Comment 7 Ross Burton 2020-10-27 03:25:09 UTC
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.