Commit 1553c8eae7

Andrew Kelley <andrew@ziglang.org>
2025-10-28 16:27:07
std.os.linux.x86: fix signal restore function
After handling any signal on x86, it would previously segfault.
1 parent 030b630
Changed files (1)
lib
std
os
linux
lib/std/os/linux/x86.zig
@@ -159,12 +159,14 @@ pub fn clone() callconv(.naked) u32 {
 pub fn restore() callconv(.naked) noreturn {
     switch (builtin.zig_backend) {
         .stage2_c => asm volatile (
+            \\ addl $4, %%esp
             \\ movl %[number], %%eax
             \\ int $0x80
             :
             : [number] "i" (@intFromEnum(SYS.sigreturn)),
         ),
         else => asm volatile (
+            \\ addl $4, %%esp
             \\ int $0x80
             :
             : [number] "{eax}" (@intFromEnum(SYS.sigreturn)),