diff --git a/lib/std/Target.zig b/lib/std/Target.zig index 0de47c02ff514595b2075a2a9b8359b497d06488..11fac4f21af221387229ce583c0d8d71ca3e9d4f 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -2532,8 +2532,8 @@ pub const DynamicLinker = struct { /// the ABI; it does not necessarily mean that `abi` makes any sense at all for that platform. /// The responsibility for determining whether `abi` is valid in this case rests with the /// caller. `Abi.default()` can be used to pick a best-effort default ABI for such platforms. - pub fn standard(cpu: Cpu, os: Os, abi: Abi) DynamicLinker { - return switch (os.tag) { + pub fn standard(cpu: Cpu, os: Os.Tag, abi: Abi) DynamicLinker { + return switch (os) { .fuchsia => switch (cpu.arch) { .arm, .aarch64, @@ -2833,12 +2833,7 @@ pub const DynamicLinker = struct { else => none, }, - .dragonfly => if (cpu.arch == .x86_64) initFmt("{s}/libexec/ld-elf.so.2", .{ - if (os.version_range.semver.isAtLeast(.{ .major = 3, .minor = 8, .patch = 0 }) orelse false) - "" - else - "/usr", - }) else none, + .dragonfly => if (cpu.arch == .x86_64) init("/libexec/ld-elf.so.2") else none, .freebsd => switch (cpu.arch) { .arm, @@ -2849,12 +2844,7 @@ pub const DynamicLinker = struct { .riscv64, .x86, .x86_64, - => initFmt("{s}/libexec/ld-elf.so.1", .{ - if (os.version_range.semver.isAtLeast(.{ .major = 6, .minor = 0, .patch = 0 }) orelse false) - "" - else - "/usr", - }), + => init("/libexec/ld-elf.so.1"), else => none, }, @@ -2968,7 +2958,7 @@ pub const DynamicLinker = struct { }; pub fn standardDynamicLinkerPath(target: *const Target) DynamicLinker { - return DynamicLinker.standard(target.cpu, target.os, target.abi); + return DynamicLinker.standard(target.cpu, target.os.tag, target.abi); } pub fn ptrBitWidth_cpu_abi(cpu: Cpu, abi: Abi) u16 { diff --git a/lib/std/zig/system.zig b/lib/std/zig/system.zig index 5930a32533428a8c4718fd165de4ac4078ba4780..eab97ae8de5e2175c5acdeab1824da5b0eab79ae 100644 --- a/lib/std/zig/system.zig +++ b/lib/std/zig/system.zig @@ -995,7 +995,7 @@ fn detectAbiAndDynamicLinker(io: Io, cpu: Target.Cpu, os: Target.Os, query: Targ // will then look for a dynamic linker with a matching path on the system and pick the ABI // we associated it with here. .arch_os_abi => for (all_abis) |abi| { - const ld = Target.DynamicLinker.standard(cpu, os, abi); + const ld = Target.DynamicLinker.standard(cpu, os.tag, abi); // Does the generated target triple actually have a standard dynamic linker path? if (ld.get() == null) continue; @@ -1141,7 +1141,7 @@ fn defaultAbiAndDynamicLinker(cpu: Target.Cpu, os: Target.Os, query: Target.Quer .os = os, .abi = abi, .ofmt = query.ofmt orelse Target.ObjectFormat.default(os.tag, cpu.arch), - .dynamic_linker = query.dynamic_linker orelse .standard(cpu, os, abi), + .dynamic_linker = query.dynamic_linker orelse .standard(cpu, os.tag, abi), }; }