diff options
Diffstat (limited to 'lib/std/Target.zig')
| -rw-r--r-- | lib/std/Target.zig | 16 |
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, |
