commit bec24b32e7ba98c90eb70f25af83d5a11b184fb9
parent 18e68acfdd9b4d9ca827c37836aa5363b9553e39
Author: Sylvia Ivory <git@sivory.net>
Date: Tue, 13 Jan 2026 15:55:10 -0800
Adjust build settings
Diffstat:
4 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/Justfile b/Justfile
@@ -4,5 +4,5 @@ build:
lab name:
zig build -Dlab={{ name }}
-list: build
- arm-none-eabi-objdump -D zig-out/bin/SylveOS
+list name="SylveOS": build
+ arm-none-eabi-objdump -m armv6 -d zig-out/bin/{{ name }}
diff --git a/build.zig b/build.zig
@@ -10,6 +10,7 @@ const target: std.Target.Query = .{
.cpu_model = .{ .explicit = &std.Target.arm.cpu.arm1176jzf_s },
.cpu_features_add = std.Target.arm.cpu.arm1176jzf_s.features,
.os_tag = .freestanding,
+ .abi = .none,
};
fn add_exe(exe_name: []const u8, path: std.Build.LazyPath, b: *std.Build) !*std.Build.Step.Compile {
@@ -50,14 +51,14 @@ fn lab(name: []const u8, units: []const []const u8, b: *std.Build) !void {
const template =
\\ const lab = @import("{s}");
- \\ export fn main() void {{ lab.{s}(); }}
- \\ export fn abort() void {{ while(true) {{}} }}
\\ export fn _start() callconv(.naked) noreturn {{
\\ asm volatile (
\\ \\ mov sp, 0x800000
- \\ \\ bl main
- \\ \\ bl abort
+ \\ \\ bl %[main:P]
+ \\ :
+ \\ : [main] "X" (&lab.{s})
\\ );
+ \\ while (true) {{ }}
\\ }}
;
diff --git a/linker.ld b/linker.ld
@@ -7,6 +7,8 @@
* pi-install bootloader will copy the program it receives
* to address 0x8000 and jump to it.
*/
+ENTRY(_start)
+
SECTIONS
{
/* link the code first at 0x8000. */
diff --git a/src/root.zig b/src/root.zig
@@ -14,16 +14,12 @@ fn panic_handler(msg: []const u8, trace_addr: ?usize) noreturn {
pub const panic = std.debug.FullPanic(panic_handler);
-// Can't just use main.zig#main directly
-export fn main() void {
- _ = fake_main();
-}
-
export fn _start() callconv(.naked) noreturn {
- // TODO; ask prof why
asm volatile (
\\ mov sp, 0x800000
- \\ bl main
+ \\ bl %[main:P]
\\ bl abort
+ :
+ : [main] "X" (&fake_main),
);
}