authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-04-26 14:09:16+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-04-26 22:12:31+02:00
log23440fbb99a501fac9cfb6af85c6303732cf0b06
treeb40e74c5ae8790d423af27c526a2768665b8e75c
parent99a79f98ecfe79fc3d043662448f1a6b44d52c5c

std.Target: Remove Abi.gnuilp32.

* This has not seen meaningful development for about a decade. * The Linux kernel port was never upstreamed. * The glibc port was never upstreamed. * GCC 15.1 recently deprecated support it. It may still make sense to support an ILP32 ABI on AArch64 more broadly (which we already have the Abi.ilp32 tag for), but, to the extent that it even existed in any "official" sense, the *GNU* ILP32 ABI is certainly dead.

4 files changed, 7 insertions(+), 26 deletions(-)

lib/compiler/aro/aro/target.zig-1
......@@ -687,7 +687,6 @@ pub fn toLLVMTriple(target: std.Target, buf: []u8) []const u8 {
687687 .gnuf32 => "gnuf32",
688688 .gnusf => "gnusf",
689689 .gnux32 => "gnux32",
690 .gnuilp32 => "gnu_ilp32",
691690 .code16 => "code16",
692691 .eabi => "eabi",
693692 .eabihf => "eabihf",
lib/std/Target.zig+7-23
......@@ -763,7 +763,6 @@ pub const Abi = enum {
763763 gnuf32,
764764 gnusf,
765765 gnux32,
766 gnuilp32,
767766 code16,
768767 eabi,
769768 eabihf,
......@@ -938,7 +937,6 @@ pub const Abi = enum {
938937 .gnuf32,
939938 .gnusf,
940939 .gnux32,
941 .gnuilp32,
942940 => true,
943941 else => false,
944942 };
......@@ -2205,14 +2203,7 @@ pub const DynamicLinker = struct {
22052203 .hurd => switch (cpu.arch) {
22062204 .aarch64,
22072205 .aarch64_be,
2208 => |arch| initFmt("/lib/ld-{s}{s}.so.1", .{
2209 @tagName(arch),
2210 switch (abi) {
2211 .gnu => "",
2212 .gnuilp32 => "_ilp32",
2213 else => return none,
2214 },
2215 }),
2206 => |arch| if (abi == .gnu) initFmt("/lib/ld-{s}.so.1", .{@tagName(arch)}) else none,
22162207
22172208 .x86 => if (abi == .gnu) init("/lib/ld.so.1") else none,
22182209 .x86_64 => initFmt("/lib/ld-{s}.so.1", .{switch (abi) {
......@@ -2344,14 +2335,7 @@ pub const DynamicLinker = struct {
23442335
23452336 .aarch64,
23462337 .aarch64_be,
2347 => |arch| initFmt("/lib/ld-linux-{s}{s}.so.1", .{
2348 @tagName(arch),
2349 switch (abi) {
2350 .gnu => "",
2351 .gnuilp32 => "_ilp32",
2352 else => return none,
2353 },
2354 }),
2338 => |arch| if (abi == .gnu) initFmt("/lib/ld-linux-{s}.so.1", .{@tagName(arch)}) else none,
23552339
23562340 // TODO: `-be` architecture support.
23572341 .csky => initFmt("/lib/ld-linux-cskyv2{s}.so.1", .{switch (abi) {
......@@ -2585,7 +2569,7 @@ pub fn standardDynamicLinkerPath(target: Target) DynamicLinker {
25852569
25862570pub fn ptrBitWidth_cpu_abi(cpu: Cpu, abi: Abi) u16 {
25872571 switch (abi) {
2588 .gnux32, .muslx32, .gnuabin32, .muslabin32, .gnuilp32, .ilp32 => return 32,
2572 .gnux32, .muslx32, .gnuabin32, .muslabin32, .ilp32 => return 32,
25892573 .gnuabi64, .muslabi64 => return 64,
25902574 else => {},
25912575 }
......@@ -2979,7 +2963,7 @@ pub fn cTypeBitSize(target: Target, c_type: CType) u16 {
29792963 .long, .ulong => return 32,
29802964 .longlong, .ulonglong, .double => return 64,
29812965 .longdouble => switch (target.abi) {
2982 .gnu, .gnuilp32, .ilp32, .cygnus => return 80,
2966 .gnu, .ilp32, .cygnus => return 80,
29832967 else => return 64,
29842968 },
29852969 },
......@@ -2993,7 +2977,7 @@ pub fn cTypeBitSize(target: Target, c_type: CType) u16 {
29932977 },
29942978 .longlong, .ulonglong, .double => return 64,
29952979 .longdouble => switch (target.abi) {
2996 .gnu, .gnuilp32, .ilp32, .cygnus => return 80,
2980 .gnu, .ilp32, .cygnus => return 80,
29972981 else => return 64,
29982982 },
29992983 },
......@@ -3091,7 +3075,7 @@ pub fn cTypeAlignment(target: Target, c_type: CType) u16 {
30913075 .windows, .uefi => switch (c_type) {
30923076 .longlong, .ulonglong, .double => return 8,
30933077 .longdouble => switch (target.abi) {
3094 .gnu, .gnuilp32, .ilp32, .cygnus => return 4,
3078 .gnu, .ilp32, .cygnus => return 4,
30953079 else => return 8,
30963080 },
30973081 else => {},
......@@ -3192,7 +3176,7 @@ pub fn cTypePreferredAlignment(target: Target, c_type: CType) u16 {
31923176 },
31933177 .windows, .uefi => switch (c_type) {
31943178 .longdouble => switch (target.abi) {
3195 .gnu, .gnuilp32, .ilp32, .cygnus => return 4,
3179 .gnu, .ilp32, .cygnus => return 4,
31963180 else => return 8,
31973181 },
31983182 else => {},
lib/std/zig/LibCDirs.zig-1
......@@ -229,7 +229,6 @@ fn libCGenericName(target: std.Target) [:0]const u8 {
229229 .gnuf32,
230230 .gnusf,
231231 .gnux32,
232 .gnuilp32,
233232 => return "glibc",
234233 .musl,
235234 .muslabin32,
src/codegen/llvm.zig-1
......@@ -259,7 +259,6 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 {
259259 .gnuf32 => "gnuf32",
260260 .gnusf => "gnusf",
261261 .gnux32 => "gnux32",
262 .gnuilp32 => "gnu_ilp32",
263262 .code16 => "code16",
264263 .eabi => "eabi",
265264 .eabihf => "eabihf",