~alpine/apk-tools

1

Architecture names for ILP32 ABIs on 64-bit CPUs

Ariadne Conill
Details
Message ID
<af25b9cc709b727cdc9b64dbbee4d179@dereferenced.org>
DKIM signature
missing
Download raw message
Hello,

As you may or may not be aware, there is a new x86 ABI that provides
a 32-bit memory model on x86_64 called x32, which provides the more
RISC-like calling convention that x86_64 uses with 32-bit pointers.

ARM is also making such a userspace ABI for aarch64.

I would like to target both of these ABIs for a future Alpine
release (probably 3.13/4.0), as I believe they will be useful for
containers.  I am sure other apk-tools consumers are also interested
in such ABIs.

But to do so, we must first determine what the sub-architecture
should be called.

Right now, on x86 we have x86 and x86_64.

ARM is, well, a mess by comparison, over there, we have:

- armel (deprecated): ARMv5 little-endian
- armhf: ARMv6 little-endian, hard float
- armv7: ARMv7, hard-float
- aarch64: ARMv8, 64-bit, hard-float

My thoughts so far are to use x86_64-ilp32 and aarch64-ilp32 as
the architecture name.  But maybe somebody has a better suggestion?

Ariadne
Timo Teras
Details
Message ID
<20200219111004.67fdf9f5@vostro.wlan>
In-Reply-To
<af25b9cc709b727cdc9b64dbbee4d179@dereferenced.org> (view parent)
DKIM signature
missing
Download raw message
Hi,

On Wed, 19 Feb 2020 04:45:13 +0000
"Ariadne Conill" <ariadne@dereferenced.org> wrote:

> As you may or may not be aware, there is a new x86 ABI that provides
> a 32-bit memory model on x86_64 called x32, which provides the more
> RISC-like calling convention that x86_64 uses with 32-bit pointers.
> 
> ARM is also making such a userspace ABI for aarch64.
> 
> I would like to target both of these ABIs for a future Alpine
> release (probably 3.13/4.0), as I believe they will be useful for
> containers.  I am sure other apk-tools consumers are also interested
> in such ABIs.
> 
> But to do so, we must first determine what the sub-architecture
> should be called.
> 
> Right now, on x86 we have x86 and x86_64.
> 
> ARM is, well, a mess by comparison, over there, we have:
> 
> - armel (deprecated): ARMv5 little-endian
> - armhf: ARMv6 little-endian, hard float
> - armv7: ARMv7, hard-float
> - aarch64: ARMv8, 64-bit, hard-float

Right.

> My thoughts so far are to use x86_64-ilp32 and aarch64-ilp32 as
> the architecture name.  But maybe somebody has a better suggestion?

Those sound generally good to me. Though, might be worth looking what
others, who already support ilp32, use already. I remember that the
x86_64 was often called x32?

What does the gcc host triplet look like on these?

Timo