diff --git a/lib/std/target.zig b/lib/std/target.zig index d17ec332e4..cf5a03d03d 100644 --- a/lib/std/target.zig +++ b/lib/std/target.zig @@ -526,7 +526,6 @@ pub const Target = struct { .cloudabi, .dragonfly, .lv2, - .solaris, .zos, .minix, .rtems, @@ -569,6 +568,7 @@ pub const Target = struct { .driverkit, .shadermodel, .liteos, // TODO: audit this + .solaris, => return .none, } } @@ -1575,7 +1575,7 @@ pub const Target = struct { .netbsd => return copy(&result, "/libexec/ld.elf_so"), .openbsd => return copy(&result, "/usr/libexec/ld.so"), .dragonfly => return copy(&result, "/libexec/ld-elf.so.2"), - .solaris => return copy(&result, "/lib/64/ld.so.1"), + .solaris => return copy(&result, "/usr/lib/amd64/ld.so.1"), .linux => switch (self.cpu.arch) { .x86, .sparc, diff --git a/lib/std/zig/system/NativeTargetInfo.zig b/lib/std/zig/system/NativeTargetInfo.zig index 9f0892c800..221f43b5bf 100644 --- a/lib/std/zig/system/NativeTargetInfo.zig +++ b/lib/std/zig/system/NativeTargetInfo.zig @@ -257,10 +257,12 @@ fn detectAbiAndDynamicLinker( ) DetectError!NativeTargetInfo { const native_target_has_ld = comptime builtin.target.hasDynamicLinker(); const is_linux = builtin.target.os.tag == .linux; + const is_solaris = builtin.target.os.tag == .solaris; const have_all_info = cross_target.dynamic_linker.get() != null and cross_target.abi != null and (!is_linux or cross_target.abi.?.isGnu()); const os_is_non_native = cross_target.os_tag != null; - if (!native_target_has_ld or have_all_info or os_is_non_native) { + // The Solaris/illumos environment is always the same. + if (!native_target_has_ld or have_all_info or os_is_non_native or is_solaris) { return defaultAbiAndDynamicLinker(cpu, os, cross_target); } if (cross_target.abi) |abi| {