Commit a82f446d91

Alex Rønne Petersen <alex@alexrp.com>
2025-09-04 00:50:34
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.
1 parent 9e076d8
Changed files (3)
lib
std
tools
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()) {
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,
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) {