Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upSuppport x32 ABI on Linux #1339
Comments
steveklabnik
added
the
A-enhancement
label
Oct 27, 2015
nrc
added
the
T-dev-tools
label
Aug 19, 2016
This comment has been minimized.
This comment has been minimized.
|
I am working on this. Here is a JSON file that can be used with Rust's flexible target specification. {
"arch": "x86_64",
"data-layout": "e-m:e-p:32:32-i64:64-f80:128-n8:16:32:64-S128",
"llvm-target": "x86_64-unknown-linux-gnux32",
"os": "linux",
"target-endian": "little",
"target-pointer-width": "32"
}Compared to x86_64-unknown-linux-gnu, x32 uses gnux32 in the triple. target-pointer-width is changed to 32 from 64, which is the entire point. data-layout is also changed to include "p:32:32", which means the pointer is 32 bits and aligned to 32 bits. |
This comment has been minimized.
This comment has been minimized.
|
@NastyRigger AArch32 is just the normal ARM target. |
This comment has been minimized.
This comment has been minimized.
|
The target does already exist ( |
This comment has been minimized.
This comment has been minimized.
|
AArch32 is just another name for the traditional ARM architecture, while AArch64 refers to the new 64-bit instruction set. |
This comment has been minimized.
This comment has been minimized.
|
Are you talking about the AArch64 ILP32 ABI, which is the ARM equivalent of x32? This ABI is still in development, and there is no official toolchain support for it since the required kernel changes have not been accepted yet. |
This comment has been minimized.
This comment has been minimized.
|
@NastyRigger There doesn't seem to be an existing issue, so I filed #1797. |
This comment has been minimized.
This comment has been minimized.
Hey, it's not just a compatibility layer. |
This comment has been minimized.
This comment has been minimized.
|
Compiling core triggers LLVM bug: rust-lang/rust#37976. I would appreciate debugging help. |
steveklabnik commentedOct 27, 2015
Originally from rust-lang/rust#17493 by @kmcallister
The x32 ABI provides the various benefits of native AMD64 mode while cutting memory use for pointers in half, for programs that don't need more than 4 GB of address space.