mirror of
https://github.com/ziglang/zig.git
synced 2026-02-12 20:37:54 +00:00
Merge pull request #21611 from alexrp/target-abi-default
`std.Target`: Rewrite `Abi.default()` to have better defaults across the board.
This commit is contained in:
commit
20e03beaef
@ -701,50 +701,111 @@ pub const Abi = enum {
|
||||
pub fn default(arch: Cpu.Arch, os: Os) Abi {
|
||||
return if (arch.isWasm()) .musl else switch (os.tag) {
|
||||
.freestanding,
|
||||
.dragonfly,
|
||||
.ps3,
|
||||
.zos,
|
||||
.rtems,
|
||||
.aix,
|
||||
.cuda,
|
||||
.nvcl,
|
||||
.amdhsa,
|
||||
.ps4,
|
||||
.ps5,
|
||||
.elfiamcu,
|
||||
.mesa3d,
|
||||
.contiki,
|
||||
.amdpal,
|
||||
.hermit,
|
||||
.other,
|
||||
=> .eabi,
|
||||
.openbsd,
|
||||
.freebsd,
|
||||
.fuchsia,
|
||||
.netbsd,
|
||||
.hurd,
|
||||
.haiku,
|
||||
.windows,
|
||||
=> .gnu,
|
||||
.uefi => .msvc,
|
||||
=> switch (arch) {
|
||||
// Soft float is usually a sane default for freestanding.
|
||||
.arm,
|
||||
.armeb,
|
||||
.thumb,
|
||||
.thumbeb,
|
||||
.csky,
|
||||
.mips,
|
||||
.mipsel,
|
||||
.powerpc,
|
||||
.powerpcle,
|
||||
=> .eabi,
|
||||
else => .none,
|
||||
},
|
||||
.aix,
|
||||
=> if (arch == .powerpc) .eabihf else .none,
|
||||
.linux,
|
||||
.wasi,
|
||||
.emscripten,
|
||||
=> .musl,
|
||||
.rtems,
|
||||
=> switch (arch) {
|
||||
.arm,
|
||||
.armeb,
|
||||
.thumb,
|
||||
.thumbeb,
|
||||
.mips,
|
||||
.mipsel,
|
||||
=> .eabi,
|
||||
.powerpc,
|
||||
=> .eabihf,
|
||||
else => .none,
|
||||
},
|
||||
.hurd,
|
||||
.windows,
|
||||
=> .gnu,
|
||||
.freebsd,
|
||||
=> switch (arch) {
|
||||
.arm,
|
||||
.armeb,
|
||||
.thumb,
|
||||
.thumbeb,
|
||||
.powerpc,
|
||||
=> .eabihf,
|
||||
.mips,
|
||||
.mipsel,
|
||||
=> .eabi,
|
||||
else => .none,
|
||||
},
|
||||
.netbsd,
|
||||
=> switch (arch) {
|
||||
.arm,
|
||||
.armeb,
|
||||
.thumb,
|
||||
.thumbeb,
|
||||
.powerpc,
|
||||
=> .eabihf,
|
||||
.mips,
|
||||
.mipsel,
|
||||
=> .eabi,
|
||||
else => .none,
|
||||
},
|
||||
.openbsd,
|
||||
=> switch (arch) {
|
||||
.arm,
|
||||
.thumb,
|
||||
=> .eabi,
|
||||
.powerpc,
|
||||
=> .eabihf,
|
||||
else => .none,
|
||||
},
|
||||
.ios,
|
||||
=> if (arch == .x86_64) .macabi else .none,
|
||||
.tvos,
|
||||
.visionos,
|
||||
=> if (arch == .x86_64) .simulator else .none,
|
||||
.uefi,
|
||||
=> .msvc,
|
||||
.contiki,
|
||||
.elfiamcu,
|
||||
.fuchsia,
|
||||
.hermit,
|
||||
.haiku,
|
||||
.plan9,
|
||||
.serenity,
|
||||
.zos,
|
||||
.dragonfly,
|
||||
.bridgeos,
|
||||
.driverkit,
|
||||
.macos,
|
||||
.watchos,
|
||||
.illumos,
|
||||
.solaris,
|
||||
.ps3,
|
||||
.ps4,
|
||||
.ps5,
|
||||
.amdhsa,
|
||||
.amdpal,
|
||||
.cuda,
|
||||
.mesa3d,
|
||||
.nvcl,
|
||||
.opencl,
|
||||
.opengl,
|
||||
.vulkan,
|
||||
.plan9, // TODO specify abi
|
||||
.macos,
|
||||
.ios,
|
||||
.tvos,
|
||||
.watchos,
|
||||
.visionos,
|
||||
.driverkit,
|
||||
.solaris,
|
||||
.illumos,
|
||||
.serenity,
|
||||
=> .none,
|
||||
};
|
||||
}
|
||||
|
||||
@ -185,7 +185,7 @@ const targets = [_]std.Target.Query{
|
||||
.{ .cpu_arch = .nvptx64, .os_tag = .cuda, .abi = .none },
|
||||
.{ .cpu_arch = .nvptx64, .os_tag = .nvcl, .abi = .none },
|
||||
|
||||
.{ .cpu_arch = .powerpc, .os_tag = .aix, .abi = .eabi },
|
||||
.{ .cpu_arch = .powerpc, .os_tag = .aix, .abi = .eabihf },
|
||||
.{ .cpu_arch = .powerpc, .os_tag = .freebsd, .abi = .eabi },
|
||||
.{ .cpu_arch = .powerpc, .os_tag = .freebsd, .abi = .eabihf },
|
||||
.{ .cpu_arch = .powerpc, .os_tag = .freestanding, .abi = .eabi },
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user