From a4058856a4ba1952bbf80f5105d9c6f9b119a72a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 30 May 2026 18:45:44 +0200 Subject: [PATCH 1/2] std.debug.cpu_context: fix compile error on arc --- lib/std/debug/cpu_context.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/std/debug/cpu_context.zig b/lib/std/debug/cpu_context.zig index b4b3e62c5cd960c149c34f4f34220d3e88d3447c..a1b530a9b19f2233e5f5efa9e3b2f408c52f703c 100644 --- a/lib/std/debug/cpu_context.zig +++ b/lib/std/debug/cpu_context.zig @@ -50,7 +50,7 @@ pub fn fromPosixSignalContext(ctx_ptr: ?*const anyopaque) ?Native { }; // I have no idea why the kernel is storing these registers in such a bizarre order... - std.mem.reverse(native.r[0..]); + std.mem.reverse(u32, native.r[0..]); return native; } else if (native_arch == .loongarch32 and native_os == .linux) { -- 2.54.0 From 14b43a0e9e3db53531fcc6ab0afb436f919d7297 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 30 May 2026 18:49:44 +0200 Subject: [PATCH 2/2] std.Thread: implement LinuxThreadImpl.freeAndExit() for arc --- lib/std/Thread.zig | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig index 25f9146bb0aa6ce8cb6ae4d3744788002bdf2413..59b8a992b1db044fcaf122e8403b6be3f3d63bc6 100644 --- a/lib/std/Thread.zig +++ b/lib/std/Thread.zig @@ -1220,6 +1220,16 @@ const LinuxThreadImpl = struct { : [ptr] "{$16}" (@intFromPtr(self.mapped.ptr)), [len] "{$17}" (self.mapped.len), ), + .arc, .arceb => asm volatile ( + \\ mov r8, 215 # SYS_munmap + \\ trap_s 0 + \\ mov r8, 93 # SYS_exit + \\ mov r0, 0 + \\ trap_s 0 + : + : [ptr] "{r0}" (@intFromPtr(self.mapped.ptr)), + [len] "{r1}" (self.mapped.len), + ), .hexagon => asm volatile ( \\ r6 = #215 // SYS_munmap \\ trap0(#1) -- 2.54.0