commit a82f446d91c9e764719d34188de5d794ee24dda8 (tree)
parent 9e076d8c7548eacc0bbbad770e5e06c3a427c687
Author: Alex Rønne Petersen <alex@alexrp.com>
Date: Thu, 4 Sep 2025 00:50:34 +0200
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.
Diffstat:
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git 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
@@ -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
@@ -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) {