From 30f5258fe60cd5209fdfb44bd060f36435cb47b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Fri, 3 Oct 2025 18:02:56 +0200 Subject: [PATCH] std.debug.SelfInfo.Elf: disable unwinding on mips n32 and x86 x32 The DWARF code can't handle these yet. ref https://github.com/ziglang/zig/issues/25447 --- lib/std/debug/SelfInfo/Elf.zig | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/std/debug/SelfInfo/Elf.zig b/lib/std/debug/SelfInfo/Elf.zig index c31af53cd6..9a7b12929b 100644 --- a/lib/std/debug/SelfInfo/Elf.zig +++ b/lib/std/debug/SelfInfo/Elf.zig @@ -81,6 +81,16 @@ pub fn getModuleName(si: *SelfInfo, gpa: Allocator, address: usize) Error![]cons } pub const can_unwind: bool = s: { + // The DWARF code can't deal with ILP32 ABIs yet: https://github.com/ziglang/zig/issues/25447 + switch (builtin.target.abi) { + .gnuabin32, + .muslabin32, + .gnux32, + .muslx32, + => break :s false, + else => {}, + } + // Notably, we are yet to support unwinding on ARM. There, unwinding is not done through // `.eh_frame`, but instead with the `.ARM.exidx` section, which has a different format. const archs: []const std.Target.Cpu.Arch = switch (builtin.target.os.tag) {