Source
pub const RTLD = switch (native_os) {
.linux, .emscripten => packed struct(u32) {
LAZY: bool = false,
NOW: bool = false,
NOLOAD: bool = false,
_3: u5 = 0,
GLOBAL: bool = false,
_9: u3 = 0,
NODELETE: bool = false,
_: u19 = 0,
},
.dragonfly, .freebsd => packed struct(u32) {
LAZY: bool = false,
NOW: bool = false,
_2: u6 = 0,
GLOBAL: bool = false,
TRACE: bool = false,
_10: u2 = 0,
NODELETE: bool = false,
NOLOAD: bool = false,
_: u18 = 0,
},
.haiku => packed struct(u32) {
NOW: bool = false,
GLOBAL: bool = false,
_: u30 = 0,
},
.netbsd => packed struct(u32) {
LAZY: bool = false,
NOW: bool = false,
_2: u6 = 0,
GLOBAL: bool = false,
LOCAL: bool = false,
_10: u2 = 0,
NODELETE: bool = false,
NOLOAD: bool = false,
_: u18 = 0,
},
.solaris, .illumos => packed struct(u32) {
LAZY: bool = false,
NOW: bool = false,
NOLOAD: bool = false,
_3: u5 = 0,
GLOBAL: bool = false,
PARENT: bool = false,
GROUP: bool = false,
WORLD: bool = false,
NODELETE: bool = false,
FIRST: bool = false,
_14: u2 = 0,
CONFGEN: bool = false,
_: u15 = 0,
},
.openbsd => packed struct(u32) {
LAZY: bool = false,
NOW: bool = false,
_2: u6 = 0,
GLOBAL: bool = false,
TRACE: bool = false,
_: u22 = 0,
},
.macos, .ios, .tvos, .watchos, .visionos => packed struct(u32) {
LAZY: bool = false,
NOW: bool = false,
LOCAL: bool = false,
GLOBAL: bool = false,
NOLOAD: bool = false,
_5: u2 = 0,
NODELETE: bool = false,
FIRST: bool = false,
_: u23 = 0,
},
// https://github.com/SerenityOS/serenity/blob/36a26d7fa80bc9c72b19442912d8967f448368ff/Userland/Libraries/LibC/dlfcn.h#L13-L17
.serenity => packed struct(c_int) {
DEFAULT: bool = false,
_1: u1,
LAZY: bool = false,
NOW: bool = false,
GLOBAL: bool = false,
LOCAL: bool = false,
_: std.meta.Int(.unsigned, @bitSizeOf(c_int) - 6) = 0,
},
else => void,
}