aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2025-08-08 13:02:37 +0100
committergingerBill <gingerBill@users.noreply.github.com>2025-08-08 13:02:37 +0100
commit8ff15eaf6905eb167dc541cd2558599a0a334c28 (patch)
tree735dded7269f8546acdc584a7442d37a615bed00
parentaa747a1c10c3b20c589e610d1f7dffe4ddaff4fa (diff)
More contextless fixes
-rw-r--r--core/os/os2/process_posix_darwin.odin2
-rw-r--r--core/os/os_wasi.odin13
-rw-r--r--core/sys/info/cpu_linux_riscv64.odin8
-rw-r--r--core/sys/unix/sysctl_freebsd.odin2
4 files changed, 13 insertions, 12 deletions
diff --git a/core/os/os2/process_posix_darwin.odin b/core/os/os2/process_posix_darwin.odin
index 7625e513a..f655d42a9 100644
--- a/core/os/os2/process_posix_darwin.odin
+++ b/core/os/os2/process_posix_darwin.odin
@@ -13,7 +13,7 @@ import "core:time"
foreign import lib "system:System"
foreign lib {
- sysctl :: proc(
+ sysctl :: proc "c" (
name: [^]i32, namelen: u32,
oldp: rawptr, oldlenp: ^uint,
newp: rawptr, newlen: uint,
diff --git a/core/os/os_wasi.odin b/core/os/os_wasi.odin
index 53c242a01..fe0a1fb3e 100644
--- a/core/os/os_wasi.odin
+++ b/core/os/os_wasi.odin
@@ -30,11 +30,11 @@ args := _alloc_command_line_arguments()
@(private, require_results)
_alloc_command_line_arguments :: proc "contextless" () -> []string {
context = runtime.default_context()
- args := make([]string, len(runtime.args__))
- for &arg, i in args {
+ cmd_args := make([]string, len(runtime.args__))
+ for &arg, i in cmd_args {
arg = string(runtime.args__[i])
}
- return args
+ return cmd_args
}
@(private, fini)
@@ -59,9 +59,8 @@ Preopen :: struct {
preopens: []Preopen
@(init, private)
-init_preopens :: proc() {
-
- strip_prefixes :: proc(path: string) -> string {
+init_preopens :: proc "contextless" () {
+ strip_prefixes :: proc "contextless"(path: string) -> string {
path := path
loop: for len(path) > 0 {
switch {
@@ -78,6 +77,8 @@ init_preopens :: proc() {
return path
}
+ context = runtime.default_context()
+
dyn_preopens: [dynamic]Preopen
loop: for fd := wasi.fd_t(3); ; fd += 1 {
desc, err := wasi.fd_prestat_get(fd)
diff --git a/core/sys/info/cpu_linux_riscv64.odin b/core/sys/info/cpu_linux_riscv64.odin
index 3d36d126d..39ed69240 100644
--- a/core/sys/info/cpu_linux_riscv64.odin
+++ b/core/sys/info/cpu_linux_riscv64.odin
@@ -7,7 +7,7 @@ import "base:intrinsics"
import "core:sys/linux"
@(init, private)
-init_cpu_features :: proc() {
+init_cpu_features :: proc "contextless" () {
_features: CPU_Features
defer cpu.features = _features
@@ -85,7 +85,7 @@ init_cpu_features :: proc() {
return
}
- assert(pairs[0].key == .IMA_EXT_0)
+ assert_contextless(pairs[0].key == .IMA_EXT_0)
exts := pairs[0].value.ima_ext_0
exts -= { .FD, .C, .V }
_features += transmute(CPU_Features)exts
@@ -97,7 +97,7 @@ init_cpu_features :: proc() {
_features += { .Misaligned_Supported }
}
} else {
- assert(pairs[1].key == .CPUPERF_0)
+ assert_contextless(pairs[1].key == .CPUPERF_0)
if .FAST in pairs[1].value.cpu_perf_0 {
_features += { .Misaligned_Supported, .Misaligned_Fast }
} else if .UNSUPPORTED not_in pairs[1].value.cpu_perf_0 {
@@ -108,6 +108,6 @@ init_cpu_features :: proc() {
}
@(init, private)
-init_cpu_name :: proc() {
+init_cpu_name :: proc "contextless" () {
cpu.name = "RISCV64"
}
diff --git a/core/sys/unix/sysctl_freebsd.odin b/core/sys/unix/sysctl_freebsd.odin
index f5fee6c6c..cdd591a5b 100644
--- a/core/sys/unix/sysctl_freebsd.odin
+++ b/core/sys/unix/sysctl_freebsd.odin
@@ -3,7 +3,7 @@ package unix
import "base:intrinsics"
-sysctl :: proc(mib: []i32, val: ^$T) -> (ok: bool) {
+sysctl :: proc "contextless" (mib: []i32, val: ^$T) -> (ok: bool) {
mib := mib
result_size := u64(size_of(T))