From a82f446d91c9e764719d34188de5d794ee24dda8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Thu, 4 Sep 2025 00:50:34 +0200 Subject: [PATCH] std.elf: change STV enum from u2 to u3 In gABI 4.3, st_other was changed such that the lower 3 bits are reserved for the visibility, up from the previous 2 bits. --- lib/std/Build/Step/CheckObject.zig | 2 +- lib/std/elf.zig | 2 +- tools/gen_stubs.zig | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/std/Build/Step/CheckObject.zig b/lib/std/Build/Step/CheckObject.zig index 9dfe65829a3d817977595e6bdeb68a21fd19854c..2b5994cc342ae0e9b6b2e9721266394584953751 100644 --- a/lib/std/Build/Step/CheckObject.zig +++ b/lib/std/Build/Step/CheckObject.zig @@ -2226,7 +2226,7 @@ const ElfDumper = struct { try writer.print(" {s}", .{sym_bind}); } - const sym_vis = @as(elf.STV, @enumFromInt(@as(u2, @truncate(sym.st_other)))); + const sym_vis = @as(elf.STV, @enumFromInt(@as(u3, @truncate(sym.st_other)))); try writer.print(" {s}", .{@tagName(sym_vis)}); const sym_name = switch (sym.st_type()) { diff --git a/lib/std/elf.zig b/lib/std/elf.zig index 6c7feaccda8b43a32b9cedee124471c4ea9ba5dd..bef80d782b20e759701c73a3fe85909985415f42 100644 --- a/lib/std/elf.zig +++ b/lib/std/elf.zig @@ -2303,7 +2303,7 @@ pub const R_PPC64 = enum(u32) { _, }; -pub const STV = enum(u2) { +pub const STV = enum(u3) { DEFAULT = 0, INTERNAL = 1, HIDDEN = 2, diff --git a/tools/gen_stubs.zig b/tools/gen_stubs.zig index 1aadda232d6fbe1cd5d746209ab0f7ece1b53168..51f66d3080274a54ea7bf717408b70c7eea9587c 100644 --- a/tools/gen_stubs.zig +++ b/tools/gen_stubs.zig @@ -608,7 +608,7 @@ fn parseElf(parse: Parse, comptime is_64: bool, comptime endian: builtin.Endian) const name = try arena.dupe(u8, mem.sliceTo(dynstr[s(sym.st_name)..], 0)); const ty = @as(u4, @truncate(sym.st_info)); const binding = @as(u4, @truncate(sym.st_info >> 4)); - const visib = @as(elf.STV, @enumFromInt(@as(u2, @truncate(sym.st_other)))); + const visib = @as(elf.STV, @enumFromInt(@as(u3, @truncate(sym.st_other)))); const size = s(sym.st_size); if (size == 0) { -- 2.54.0