This data structure is used by the Zig language code generation and therefore must be kept in sync with the compiler implementation.
pub const ExternOptions = struct
pub const ExternOptions = struct {
name: []const u8,
library_name: ?[]const u8 = null,
linkage: GlobalLinkage = .strong,
visibility: SymbolVisibility = .default,
/// Setting this to `true` makes the `@extern` a runtime value.
is_thread_local: bool = false,
is_dll_import: bool = false,
relocation: Relocation = .any,
decoration: ?Decoration = null,
pub const Decoration = union(enum) {
location: u32,
flat: u32,
descriptor: Descriptor,
pub const Descriptor = struct {
set: u32,
binding: u32,
};
};
pub const Relocation = enum(u1) {
/// Any type of relocation is allowed.
any,
/// A program-counter-relative relocation is required.
/// Using this value makes the `@extern` a runtime value.
pcrel,
};
}