aboutsummaryrefslogtreecommitdiff
path: root/lib/std/debug
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2025-10-03 18:02:56 +0200
committerAlex Rønne Petersen <alex@alexrp.com>2025-10-05 07:18:50 +0200
commit30f5258fe60cd5209fdfb44bd060f36435cb47b0 (patch)
tree3a28764389e6dc1f69b06d6f432091d2049b767c /lib/std/debug
parent906ce2ad7cb3960eb579ab46b79dff3b9eae1ef5 (diff)
downloadzig-30f5258fe60cd5209fdfb44bd060f36435cb47b0.tar.gz
zig-30f5258fe60cd5209fdfb44bd060f36435cb47b0.zip
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
Diffstat (limited to 'lib/std/debug')
-rw-r--r--lib/std/debug/SelfInfo/Elf.zig10
1 files changed, 10 insertions, 0 deletions
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) {