aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Target.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std/Target.zig')
-rw-r--r--lib/std/Target.zig16
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/std/Target.zig b/lib/std/Target.zig
index 027872de54..3fb9587c82 100644
--- a/lib/std/Target.zig
+++ b/lib/std/Target.zig
@@ -1082,7 +1082,7 @@ pub fn toElfMachine(target: *const Target) std.elf.EM {
};
}
-pub fn toCoffMachine(target: *const Target) std.coff.MachineType {
+pub fn toCoffMachine(target: *const Target) std.coff.IMAGE.FILE.MACHINE {
return switch (target.cpu.arch) {
.arm => .ARM,
.thumb => .ARMNT,
@@ -1092,7 +1092,7 @@ pub fn toCoffMachine(target: *const Target) std.coff.MachineType {
.riscv32 => .RISCV32,
.riscv64 => .RISCV64,
.x86 => .I386,
- .x86_64 => .X64,
+ .x86_64 => .AMD64,
.amdgcn,
.arc,
@@ -1912,7 +1912,11 @@ pub const Cpu = struct {
.powerpc64le => &powerpc.cpu.ppc64le,
.riscv32, .riscv32be => &riscv.cpu.baseline_rv32,
.riscv64, .riscv64be => &riscv.cpu.baseline_rv64,
- .s390x => &s390x.cpu.arch8, // gcc/clang do not have a generic s390x model.
+ // gcc/clang do not have a generic s390x model.
+ .s390x => switch (os.tag) {
+ .zos => &s390x.cpu.arch10,
+ else => &s390x.cpu.arch8,
+ },
.sparc => &sparc.cpu.v9, // glibc does not work with 'plain' v8.
.sparc64 => switch (os.tag) {
.solaris => &sparc.cpu.ultrasparc3,
@@ -2459,9 +2463,9 @@ pub const DynamicLinker = struct {
=> init("/lib/ld.so.1"),
else => none,
},
- // TODO: ELFv2 ABI (`/lib64/ld64.so.2`) opt-in support.
- .powerpc64 => if (abi == .gnu) init("/lib64/ld64.so.1") else none,
- .powerpc64le => if (abi == .gnu) init("/lib64/ld64.so.2") else none,
+ .powerpc64,
+ .powerpc64le,
+ => if (abi == .gnu) init("/lib64/ld64.so.2") else none,
.riscv32,
.riscv64,