scheduler: entrypoint "returns" int
diff --git a/sdk/core/scheduler/main.cc b/sdk/core/scheduler/main.cc
index 132103b..ae09922 100644
--- a/sdk/core/scheduler/main.cc
+++ b/sdk/core/scheduler/main.cc
@@ -193,7 +193,7 @@
 		return &(reinterpret_cast<Thread *>(threadSpaces))[threadId - 1];
 	}
 
-	[[cheri::interrupt_state(disabled)]] void __cheri_compartment("sched")
+	[[cheri::interrupt_state(disabled)]] int __cheri_compartment("sched")
 	  scheduler_entry(const ThreadLoaderInfo *info)
 	{
 		Debug::Invariant(Capability{info}.length() ==
@@ -215,6 +215,8 @@
 
 		InterruptController::master_init();
 		Timer::interrupt_setup();
+
+		return 0;
 	}
 
 	static void __dead2 sched_panic(size_t mcause, size_t mepc, size_t mtval)