diff options
| author | Alex Rønne Petersen <alex@alexrp.com> | 2024-07-27 03:52:19 +0200 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2024-07-28 19:44:52 -0700 |
| commit | d1d95294fd657f771657ea671a6984b860347fb0 (patch) | |
| tree | d54c1098e7f0ec8c2b65ba7a6207bf4095c4b20e /src/Zcu.zig | |
| parent | c15755092821c5c27727ebf416689084eab5b73e (diff) | |
| download | zig-d1d95294fd657f771657ea671a6984b860347fb0.tar.gz zig-d1d95294fd657f771657ea671a6984b860347fb0.zip | |
std.Target.Cpu.Arch: Remove the `aarch64_32` tag.
This is a misfeature that we inherited from LLVM:
* https://reviews.llvm.org/D61259
* https://reviews.llvm.org/D61939
(`aarch64_32` and `arm64_32` are equivalent.)
I truly have no idea why this triple passed review in LLVM. It is, to date, the
*only* tag in the architecture component that is not, in fact, an architecture.
In reality, it is just an ILP32 ABI for AArch64 (*not* AArch32).
The triples that use `aarch64_32` look like `aarch64_32-apple-watchos`. Yes,
that triple is exactly what you think; it has no ABI component. They really,
seriously did this.
Since only Apple could come up with silliness like this, it should come as no
surprise that no one else uses `aarch64_32`. Later on, a GNU ILP32 ABI for
AArch64 was developed, and support was added to LLVM:
* https://reviews.llvm.org/D94143
* https://reviews.llvm.org/D104931
Here, sanity seems to have prevailed, and a triple using this ABI looks like
`aarch64-linux-gnu_ilp32` as you would expect.
As can be seen from the diffs in this commit, there was plenty of confusion
throughout the Zig codebase about what exactly `aarch64_32` was. So let's just
remove it. In its place, we'll use `aarch64-watchos-ilp32`,
`aarch64-linux-gnuilp32`, and so on. We'll then translate these appropriately
when talking to LLVM. Hence, this commit adds the `ilp32` ABI tag (we already
have `gnuilp32`).
Diffstat (limited to 'src/Zcu.zig')
| -rw-r--r-- | src/Zcu.zig | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/src/Zcu.zig b/src/Zcu.zig index 3396728edd..c644dcce64 100644 --- a/src/Zcu.zig +++ b/src/Zcu.zig @@ -3284,7 +3284,6 @@ pub fn atomicPtrAlignment( .aarch64, .aarch64_be, - .aarch64_32, => 128, .x86_64 => if (std.Target.x86.featureSetHas(target.cpu.features, .cx16)) 128 else 64, |
