From 89d862180f1d032b36e8d4371a037ae018bc43c5 Mon Sep 17 00:00:00 2001 From: mlugg Date: Tue, 2 Sep 2025 12:31:40 +0100 Subject: yet more --- lib/std/Build/Step/CheckObject.zig | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'lib/std/Build/Step/CheckObject.zig') diff --git a/lib/std/Build/Step/CheckObject.zig b/lib/std/Build/Step/CheckObject.zig index 2b5994cc34..e65120641f 100644 --- a/lib/std/Build/Step/CheckObject.zig +++ b/lib/std/Build/Step/CheckObject.zig @@ -1097,7 +1097,7 @@ const MachODumper = struct { for (ctx.symtab.items) |sym| { const sym_name = ctx.getString(sym.n_strx); - if (sym.stab()) { + if (sym.n_type.bits.is_stab != 0) { const tt = switch (sym.n_type) { macho.N_SO => "SO", macho.N_OSO => "OSO", @@ -1114,7 +1114,7 @@ const MachODumper = struct { try writer.print(" ({s},{s})", .{ sect.segName(), sect.sectName() }); } try writer.print(" {s} (stab) {s}\n", .{ tt, sym_name }); - } else if (sym.sect()) { + } else if (sym.n_type.type == .sect) { const sect = ctx.sections.items[sym.n_sect - 1]; try writer.print("{x} ({s},{s})", .{ sym.n_value, @@ -1122,8 +1122,8 @@ const MachODumper = struct { sect.sectName(), }); if (sym.n_desc & macho.REFERENCED_DYNAMICALLY != 0) try writer.writeAll(" [referenced dynamically]"); - if (sym.weakDef()) try writer.writeAll(" weak"); - if (sym.weakRef()) try writer.writeAll(" weakref"); + if (sym.n_desc.weak_def_or_ref_to_weak) try writer.writeAll(" weak"); + if (sym.n_desc.weak_ref) try writer.writeAll(" weakref"); if (sym.ext()) { if (sym.pext()) try writer.writeAll(" private"); try writer.writeAll(" external"); @@ -1134,7 +1134,7 @@ const MachODumper = struct { try writer.print(" 0x{x:0>16} (common) (alignment 2^{d})", .{ sym.n_value, alignment }); if (sym.ext()) try writer.writeAll(" external"); try writer.print(" {s}\n", .{sym_name}); - } else if (sym.undf()) { + } else if (sym.n_type.type == .undf) { const ordinal = @divFloor(@as(i16, @bitCast(sym.n_desc)), macho.N_SYMBOL_RESOLVER); const import_name = blk: { if (ordinal <= 0) { @@ -1153,7 +1153,7 @@ const MachODumper = struct { break :blk basename[0..ext]; }; try writer.writeAll("(undefined)"); - if (sym.weakRef()) try writer.writeAll(" weakref"); + if (sym.n_desc.weak_ref) try writer.writeAll(" weakref"); if (sym.ext()) try writer.writeAll(" external"); try writer.print(" {s} (from {s})\n", .{ sym_name, -- cgit v1.2.3 From 202aeacc05a2fc53762c49d18daeefdf0fa5fbec Mon Sep 17 00:00:00 2001 From: mlugg Date: Mon, 8 Sep 2025 12:52:00 +0100 Subject: std: fixes --- lib/std/Build/Step.zig | 16 ++-------------- lib/std/Build/Step/CheckObject.zig | 30 ++++++++++++------------------ lib/std/Thread.zig | 2 +- lib/std/debug.zig | 2 +- lib/std/macho.zig | 4 ++-- lib/std/start.zig | 2 +- 6 files changed, 19 insertions(+), 37 deletions(-) (limited to 'lib/std/Build/Step/CheckObject.zig') diff --git a/lib/std/Build/Step.zig b/lib/std/Build/Step.zig index f71a24f2e9..8e9e12248a 100644 --- a/lib/std/Build/Step.zig +++ b/lib/std/Build/Step.zig @@ -275,18 +275,6 @@ pub fn dependOn(step: *Step, other: *Step) void { step.dependencies.append(other) catch @panic("OOM"); } -pub fn getStackTrace(s: *Step) ?std.builtin.StackTrace { - var len: usize = 0; - while (len < s.debug_stack_trace.len and s.debug_stack_trace[len] != 0) { - len += 1; - } - - return if (len == 0) null else .{ - .instruction_addresses = s.debug_stack_trace, - .index = len, - }; -} - fn makeNoOp(step: *Step, options: MakeOptions) anyerror!void { _ = options; @@ -308,9 +296,9 @@ pub fn cast(step: *Step, comptime T: type) ?*T { /// For debugging purposes, prints identifying information about this Step. pub fn dump(step: *Step, w: *std.Io.Writer, tty_config: std.Io.tty.Config) void { - if (step.getStackTrace()) |stack_trace| { + if (step.debug_stack_trace.instruction_addresses.len > 0) { w.print("name: '{s}'. creation stack trace:\n", .{step.name}) catch {}; - std.debug.writeStackTrace(stack_trace, w, tty_config) catch {}; + std.debug.writeStackTrace(&step.debug_stack_trace, w, tty_config) catch {}; } else { const field = "debug_stack_frames_count"; comptime assert(@hasField(Build, field)); diff --git a/lib/std/Build/Step/CheckObject.zig b/lib/std/Build/Step/CheckObject.zig index e65120641f..56be318a84 100644 --- a/lib/std/Build/Step/CheckObject.zig +++ b/lib/std/Build/Step/CheckObject.zig @@ -1098,15 +1098,9 @@ const MachODumper = struct { for (ctx.symtab.items) |sym| { const sym_name = ctx.getString(sym.n_strx); if (sym.n_type.bits.is_stab != 0) { - const tt = switch (sym.n_type) { - macho.N_SO => "SO", - macho.N_OSO => "OSO", - macho.N_BNSYM => "BNSYM", - macho.N_ENSYM => "ENSYM", - macho.N_FUN => "FUN", - macho.N_GSYM => "GSYM", - macho.N_STSYM => "STSYM", - else => "UNKNOWN STAB", + const tt = switch (sym.n_type.stab) { + _ => "UNKNOWN STAB", + else => @tagName(sym.n_type.stab), }; try writer.print("{x}", .{sym.n_value}); if (sym.n_sect > 0) { @@ -1114,27 +1108,27 @@ const MachODumper = struct { try writer.print(" ({s},{s})", .{ sect.segName(), sect.sectName() }); } try writer.print(" {s} (stab) {s}\n", .{ tt, sym_name }); - } else if (sym.n_type.type == .sect) { + } else if (sym.n_type.bits.type == .sect) { const sect = ctx.sections.items[sym.n_sect - 1]; try writer.print("{x} ({s},{s})", .{ sym.n_value, sect.segName(), sect.sectName(), }); - if (sym.n_desc & macho.REFERENCED_DYNAMICALLY != 0) try writer.writeAll(" [referenced dynamically]"); + if (sym.n_desc.referenced_dynamically) try writer.writeAll(" [referenced dynamically]"); if (sym.n_desc.weak_def_or_ref_to_weak) try writer.writeAll(" weak"); if (sym.n_desc.weak_ref) try writer.writeAll(" weakref"); - if (sym.ext()) { - if (sym.pext()) try writer.writeAll(" private"); + if (sym.n_type.bits.ext) { + if (sym.n_type.bits.pext) try writer.writeAll(" private"); try writer.writeAll(" external"); - } else if (sym.pext()) try writer.writeAll(" (was private external)"); + } else if (sym.n_type.bits.pext) try writer.writeAll(" (was private external)"); try writer.print(" {s}\n", .{sym_name}); } else if (sym.tentative()) { - const alignment = (sym.n_desc >> 8) & 0x0F; + const alignment = (@as(u16, @bitCast(sym.n_desc)) >> 8) & 0x0F; try writer.print(" 0x{x:0>16} (common) (alignment 2^{d})", .{ sym.n_value, alignment }); - if (sym.ext()) try writer.writeAll(" external"); + if (sym.n_type.bits.ext) try writer.writeAll(" external"); try writer.print(" {s}\n", .{sym_name}); - } else if (sym.n_type.type == .undf) { + } else if (sym.n_type.bits.type == .undf) { const ordinal = @divFloor(@as(i16, @bitCast(sym.n_desc)), macho.N_SYMBOL_RESOLVER); const import_name = blk: { if (ordinal <= 0) { @@ -1154,7 +1148,7 @@ const MachODumper = struct { }; try writer.writeAll("(undefined)"); if (sym.n_desc.weak_ref) try writer.writeAll(" weakref"); - if (sym.ext()) try writer.writeAll(" external"); + if (sym.n_type.bits.ext) try writer.writeAll(" external"); try writer.print(" {s} (from {s})\n", .{ sym_name, import_name, diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig index d377172f08..a3b382f372 100644 --- a/lib/std/Thread.zig +++ b/lib/std/Thread.zig @@ -530,7 +530,7 @@ fn callFn(comptime f: anytype, args: anytype) switch (Impl) { @call(.auto, f, args) catch |err| { std.debug.print("error: {s}\n", .{@errorName(err)}); if (@errorReturnTrace()) |trace| { - std.debug.dumpStackTrace(trace.*); + std.debug.dumpStackTrace(trace); } }; diff --git a/lib/std/debug.zig b/lib/std/debug.zig index cfc442562f..c1e2d19fc8 100644 --- a/lib/std/debug.zig +++ b/lib/std/debug.zig @@ -1443,7 +1443,7 @@ pub fn ConfigurableTrace(comptime size: usize, comptime stack_frame_count: usize .index = frames.len, .instruction_addresses = frames, }; - writeStackTrace(stack_trace, stderr, tty_config) catch return; + writeStackTrace(&stack_trace, stderr, tty_config) catch return; } if (t.index > end) { stderr.print("{d} more traces not shown; consider increasing trace size\n", .{ diff --git a/lib/std/macho.zig b/lib/std/macho.zig index 4ebb0cabd8..d541e2d13e 100644 --- a/lib/std/macho.zig +++ b/lib/std/macho.zig @@ -892,7 +892,7 @@ pub const nlist_64 = extern struct { n_desc: packed struct(u16) { _pad0: u3 = 0, arm_thumb_def: bool, - _pad1: u1 = 0, + referenced_dynamically: bool, /// The meaning of this bit is contextual. /// See `N_DESC_DISCARDED` and `N_NO_DEAD_STRIP`. discarded_or_no_dead_strip: bool, @@ -907,7 +907,7 @@ pub const nlist_64 = extern struct { n_value: u64, pub fn tentative(sym: nlist_64) bool { - return sym.n_type.type == .undf and sym.n_value != 0; + return sym.n_type.bits.type == .undf and sym.n_value != 0; } }; diff --git a/lib/std/start.zig b/lib/std/start.zig index 7030616d6d..0ea5c44c2b 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -636,7 +636,7 @@ pub inline fn callMain() u8 { } std.log.err("{s}", .{@errorName(err)}); if (@errorReturnTrace()) |trace| { - std.debug.dumpStackTrace(trace.*); + std.debug.dumpStackTrace(trace); } return 1; }; -- cgit v1.2.3