diff --git a/lib/std/Target.zig b/lib/std/Target.zig index 509528b76b..815c2776a5 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -2682,9 +2682,8 @@ pub const DynamicLinker = struct { else => none, }, - .powerpc64, - .powerpc64le, - => if (abi == .gnu) init("/lib64/ld64.so.2") else none, + .powerpc64 => if (abi == .gnu) init("/lib64/ld64.so.1") else none, + .powerpc64le => if (abi == .gnu) init("/lib64/ld64.so.2") else none, .riscv32, .riscv64, @@ -3741,10 +3740,10 @@ pub fn cCallingConvention(target: *const Target) ?std.builtin.CallingConvention .riscv32, .riscv32be => .{ .riscv32_ilp32 = .{} }, .sparc64 => .{ .sparc64_sysv = .{} }, .sparc => .{ .sparc_sysv = .{} }, - .powerpc64 => if (target.abi.isMusl()) - .{ .powerpc64_elf_v2 = .{} } + .powerpc64 => if (target.abi.isGnu()) + .{ .powerpc64_elf = .{} } else - .{ .powerpc64_elf = .{} }, + .{ .powerpc64_elf_v2 = .{} }, .powerpc64le => .{ .powerpc64_elf_v2 = .{} }, .powerpc, .powerpcle => .{ .powerpc_sysv = .{} }, .wasm32, .wasm64 => .{ .wasm_mvp = .{} }, diff --git a/lib/std/zig/target.zig b/lib/std/zig/target.zig index 430db3c343..463d854c84 100644 --- a/lib/std/zig/target.zig +++ b/lib/std/zig/target.zig @@ -84,7 +84,6 @@ pub const available_libcs = [_]ArchOsAbi{ .{ .arch = .powerpc, .os = .netbsd, .abi = .eabihf, .os_ver = .{ .major = 1, .minor = 4, .patch = 0 } }, .{ .arch = .powerpc, .os = .openbsd, .abi = .eabihf, .os_ver = .{ .major = 2, .minor = 8, .patch = 0 } }, .{ .arch = .powerpc64, .os = .freebsd, .abi = .none, .os_ver = .{ .major = 8, .minor = 0, .patch = 0 } }, - .{ .arch = .powerpc64, .os = .linux, .abi = .gnu, .os_ver = .{ .major = 2, .minor = 6, .patch = 0 } }, .{ .arch = .powerpc64, .os = .linux, .abi = .musl, .os_ver = .{ .major = 2, .minor = 6, .patch = 0 } }, .{ .arch = .powerpc64, .os = .openbsd, .abi = .none, .os_ver = .{ .major = 6, .minor = 8, .patch = 0 } }, .{ .arch = .powerpc64le, .os = .freebsd, .abi = .none, .os_ver = .{ .major = 13, .minor = 0, .patch = 0 } }, @@ -245,7 +244,7 @@ pub fn glibcArchNameHeaders(arch: std.Target.Cpu.Arch) [:0]const u8 { .arm, .armeb => "arm", .loongarch64 => "loongarch", .mips, .mipsel, .mips64, .mips64el => "mips", - .powerpc, .powerpc64, .powerpc64le => "powerpc", + .powerpc, .powerpc64le => "powerpc", .riscv32, .riscv64 => "riscv", .sparc, .sparc64 => "sparc", .x86, .x86_64 => "x86", diff --git a/src/target.zig b/src/target.zig index 47957d34a8..871a598239 100644 --- a/src/target.zig +++ b/src/target.zig @@ -695,7 +695,7 @@ pub fn llvmMachineAbi(target: *const std.Target) ?[:0]const u8 { .gnuabin32, .muslabin32 => "n32", else => "n64", }, - .powerpc64, .powerpc64le => "elfv2", // We do not support ELFv1. + .powerpc64, .powerpc64le => if (target.os.tag == .ps3) "elfv1" else "elfv2", .riscv64, .riscv64be => if (target.cpu.has(.riscv, .e)) "lp64e" else if (target.cpu.has(.riscv, .d)) diff --git a/test/llvm_targets.zig b/test/llvm_targets.zig index 6084acb85e..7dba86fae7 100644 --- a/test/llvm_targets.zig +++ b/test/llvm_targets.zig @@ -205,7 +205,6 @@ const targets = [_]std.Target.Query{ .{ .cpu_arch = .powerpc64, .os_tag = .freebsd, .abi = .none }, .{ .cpu_arch = .powerpc64, .os_tag = .freestanding, .abi = .none }, - .{ .cpu_arch = .powerpc64, .os_tag = .linux, .abi = .gnu }, .{ .cpu_arch = .powerpc64, .os_tag = .linux, .abi = .musl }, .{ .cpu_arch = .powerpc64, .os_tag = .linux, .abi = .none }, .{ .cpu_arch = .powerpc64, .os_tag = .openbsd, .abi = .none }, diff --git a/test/tests.zig b/test/tests.zig index 6750f2b7de..7bbeb9f89f 100644 --- a/test/tests.zig +++ b/test/tests.zig @@ -837,15 +837,6 @@ const module_test_targets = blk: { .link_libc = true, .extra_target = true, }, - // glibc's build-many-glibcs.py currently only builds this target for ELFv1. - // .{ - // .target = .{ - // .cpu_arch = .powerpc64, - // .os_tag = .linux, - // .abi = .gnu, - // }, - // .link_libc = true, - // }, .{ .target = .{ .cpu_arch = .powerpc64le, diff --git a/tools/process_headers.zig b/tools/process_headers.zig index 33199fa07d..80e30c4683 100644 --- a/tools/process_headers.zig +++ b/tools/process_headers.zig @@ -49,7 +49,6 @@ const glibc_targets = [_]LibCTarget{ .{ .arch = .mips64el, .abi = .gnuabin32, .dest = "mips-linux-gnu" }, .{ .arch = .powerpc, .abi = .gnueabi, .dest = "powerpc-linux-gnu" }, .{ .arch = .powerpc, .abi = .gnueabihf, .dest = "powerpc-linux-gnu" }, - .{ .arch = .powerpc64, .abi = .gnu, .dest = "powerpc-linux-gnu" }, .{ .arch = .powerpc64le, .abi = .gnu, .dest = "powerpc-linux-gnu" }, .{ .arch = .riscv32, .abi = .gnu, .dest = "riscv-linux-gnu" }, .{ .arch = .riscv64, .abi = .gnu, .dest = "riscv-linux-gnu" },