Fields
arch_os_abi: []const u8 = "native",
This is sometimes called a “triple”. It looks roughly like this: riscv64-linux-musl The fields are, respectively:
- CPU Architecture
- Operating System (and optional version range)
- C ABI (optional, with optional glibc version) The string “native” can be used for CPU architecture as well as Operating System. If the CPU Architecture is specified as “native”, then the Operating System and C ABI may be omitted.
cpu_features: ?[]const u8 = null,
Looks like “name+a+b-c-d+e”, where “name” is a CPU Model name, “a”, “b”, and “e” are examples of CPU features to add to the set, and “c” and “d” are examples of CPU features to remove from the set. The following special strings are recognized for CPU Model name:
- “baseline” - The “default” set of CPU features for cross-compiling. A conservative set of features that is expected to be supported on most available hardware.
- “native” - The native CPU model is to be detected when compiling. If this field is not provided (
null
), then the value will depend on the parsed CPU Architecture. If native, then this will be “native”. Otherwise, it will be “baseline”.
dynamic_linker: ?[]const u8 = null,
Absolute path to dynamic linker, to override the default, which is either a natively detected path, or a standard path.
object_format: ?[]const u8 = null,
diagnostics: ?*Diagnostics = null,
If this is provided, the function will populate some information about parsing failures, so that user-friendly error messages can be delivered.