From 39caa63800c161bc7e403f5636147b19ed48ef38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sun, 9 Aug 2026 01:40:41 +0200 Subject: [PATCH] std.os.linux.riscv32: fix child stack alignment violation in clone assembly Both LP64 and ILP32 calling conventions require the stack pointer to be aligned to a 16-byte boundary on function entry. --- lib/std/os/linux/riscv32.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/std/os/linux/riscv32.zig b/lib/std/os/linux/riscv32.zig index cb1243a0ca892ab9a39226e11bc645c15704d22f..16e39c50df60df12dbe86658a5c8c1ab68a16b16 100644 --- a/lib/std/os/linux/riscv32.zig +++ b/lib/std/os/linux/riscv32.zig @@ -118,7 +118,7 @@ pub fn clone() callconv(.naked) u32 { asm volatile ( \\ andi a1, a1, -16 \\ # Save func and arg to stack - \\ addi a1, a1, -8 + \\ addi a1, a1, -16 \\ sw a0, 0(a1) \\ sw a3, 4(a1) \\ -- 2.54.0