mirror of
https://github.com/ziglang/zig.git
synced 2026-02-14 05:20:34 +00:00
solaris: hard-code ABI and dynamic linker
Solaris/illumos is multi-lib, so you can't rely on an arbitrary executable to give you the correct dynamic linker. Besides, it's always the same path.
This commit is contained in:
parent
68bcd7ddd4
commit
54ad5f31c6
@ -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,
|
||||
|
||||
@ -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| {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user