mirror of
https://github.com/ziglang/zig.git
synced 2025-02-18 02:20:17 +00:00
linux: search for system libc++
When linking system llvm/clang/lld, add system libc++ to the searchlist. This is needed for certain distros (eg. chimera linux). closes #16754
This commit is contained in:
parent
9f88b3ae89
commit
6ef836bfff
18
build.zig
18
build.zig
@ -630,14 +630,16 @@ fn addCmakeCfgOptionsToExe(
|
||||
const lib_suffix = if (static) exe.target.staticLibSuffix()[1..] else exe.target.dynamicLibSuffix()[1..];
|
||||
switch (exe.target.getOsTag()) {
|
||||
.linux => {
|
||||
// First we try to link against gcc libstdc++. If that doesn't work, we fall
|
||||
// back to -lc++ and cross our fingers.
|
||||
addCxxKnownPath(b, cfg, exe, b.fmt("libstdc++.{s}", .{lib_suffix}), "", need_cpp_includes) catch |err| switch (err) {
|
||||
error.RequiredLibraryNotFound => {
|
||||
exe.linkLibCpp();
|
||||
},
|
||||
else => |e| return e,
|
||||
};
|
||||
// First we try to link against system libstdc++ or libc++.
|
||||
// If that doesn't work, we fall to -lc++ and cross our fingers.
|
||||
const found = for ([_][]const u8{ "stdc++", "c++" }) |name| {
|
||||
addCxxKnownPath(b, cfg, exe, b.fmt("lib{s}.{s}", .{ name, lib_suffix }), "", need_cpp_includes) catch |err| switch (err) {
|
||||
error.RequiredLibraryNotFound => continue,
|
||||
else => |e| return e,
|
||||
};
|
||||
break true;
|
||||
} else false;
|
||||
if (!found) exe.linkLibCpp();
|
||||
exe.linkSystemLibrary("unwind");
|
||||
},
|
||||
.ios, .macos, .watchos, .tvos => {
|
||||
|
Loading…
Reference in New Issue
Block a user