diff --git a/lib/std/os/bits/linux/sparc64.zig b/lib/std/os/bits/linux/sparc64.zig index ba2183acb13c30a49b873d3bc5062183f560d4c4..e216f8abaa97a77f6f47b52837bd14ecfed0dc8b 100644 --- a/lib/std/os/bits/linux/sparc64.zig +++ b/lib/std/os/bits/linux/sparc64.zig @@ -544,6 +544,9 @@ pub const timezone = extern struct { tz_dsttime: i32, }; +// TODO I'm not sure if the code below is correct, need someone with more +// knowledge about sparc64 linux internals to look into. + pub const Elf_Symndx = u32; pub const fpstate = extern struct { diff --git a/lib/std/start.zig b/lib/std/start.zig index 47164a082090a56709de090bdc9c2623d857ca00..dae8251d9aeb6dbaac7cd3abc3575b2ad6d25b66 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -147,6 +147,11 @@ fn _start() callconv(.Naked) noreturn { : "r0" ); }, + .sparcv9 => { + starting_stack_ptr = asm ("" + : [argc] "={o6}" (-> [*]usize) + ); + }, else => @compileError("unsupported arch"), } // If LLVM inlines stack variables into _start, they will overwrite