|
| ▲ | mananaysiempre 39 minutes ago | parent | next [-] |
| For static executables, “the system’s libc” is of course not a thing. To support those, OpenBSD requires them to include an exhaustive list of all addresses of syscall instructions in a predefined place[1]. (With that said, OpenBSD promises no stability if you choose to bypass libc. What it promises instead is that it will change things in incompatible ways that will hurt. It’s up to you whether the pain that thus results from supporting OpenBSD is worth it.) [1] https://nullprogram.com/blog/2025/03/06/ |
|
| ▲ | oguz-ismail2 an hour ago | parent | prev | next [-] |
| > How does that work, with syscalls being unable to be called except from the system’s libc? OpenBSD allows system calls being made from shared libraries whose names start with `libc.so.' and all static binaries, as long as they include an `openbsd.syscalls' section listing call sites. |
|
| ▲ | AndyKelley 33 minutes ago | parent | prev | next [-] |
| Sorry I got mixed up with FreeBSD: https://codeberg.org/ziglang/zig/issues/30981 (original github link has more information) |
|
| ▲ | pretendgeneer an hour ago | parent | prev [-] |
| Not all of libc is syscalls. E.g. strlen() is zib libc but open() goes to system libc. |