mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-09 15:19:07 +00:00
openbsd: fix stage3 link
- llvm requires libexecinfo which has conflicting symbols with libc++abi - workaround is to link c++abi dynamically
This commit is contained in:
parent
3924f173af
commit
127b0921ba
1 changed files with 9 additions and 14 deletions
19
build.zig
19
build.zig
|
|
@ -791,24 +791,19 @@ fn addCmakeCfgOptionsToExe(
|
||||||
if (target.abi != .msvc) mod.link_libcpp = true;
|
if (target.abi != .msvc) mod.link_libcpp = true;
|
||||||
},
|
},
|
||||||
.freebsd => {
|
.freebsd => {
|
||||||
if (static) {
|
|
||||||
try addCxxKnownPath(b, cfg, exe, b.fmt("libc++.{s}", .{lib_suffix}), null, need_cpp_includes);
|
try addCxxKnownPath(b, cfg, exe, b.fmt("libc++.{s}", .{lib_suffix}), null, need_cpp_includes);
|
||||||
try addCxxKnownPath(b, cfg, exe, b.fmt("libgcc_eh.{s}", .{lib_suffix}), null, need_cpp_includes);
|
if (static) try addCxxKnownPath(b, cfg, exe, b.fmt("libgcc_eh.{s}", .{lib_suffix}), null, need_cpp_includes);
|
||||||
} else {
|
|
||||||
try addCxxKnownPath(b, cfg, exe, b.fmt("libc++.{s}", .{lib_suffix}), null, need_cpp_includes);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
.openbsd => {
|
.openbsd => {
|
||||||
try addCxxKnownPath(b, cfg, exe, b.fmt("libc++.{s}", .{lib_suffix}), null, need_cpp_includes);
|
// - llvm requires libexecinfo which has conflicting symbols with libc++abi
|
||||||
try addCxxKnownPath(b, cfg, exe, b.fmt("libc++abi.{s}", .{lib_suffix}), null, need_cpp_includes);
|
// - only an issue with .a linking
|
||||||
|
// - workaround is to link c++abi dynamically
|
||||||
|
try addCxxKnownPath(b, cfg, exe, b.fmt("libc++.{s}", .{target.dynamicLibSuffix()[1..]}), null, need_cpp_includes);
|
||||||
|
try addCxxKnownPath(b, cfg, exe, b.fmt("libc++abi.{s}", .{target.dynamicLibSuffix()[1..]}), null, need_cpp_includes);
|
||||||
},
|
},
|
||||||
.netbsd, .dragonfly => {
|
.netbsd, .dragonfly => {
|
||||||
if (static) {
|
|
||||||
try addCxxKnownPath(b, cfg, exe, b.fmt("libstdc++.{s}", .{lib_suffix}), null, need_cpp_includes);
|
try addCxxKnownPath(b, cfg, exe, b.fmt("libstdc++.{s}", .{lib_suffix}), null, need_cpp_includes);
|
||||||
try addCxxKnownPath(b, cfg, exe, b.fmt("libgcc_eh.{s}", .{lib_suffix}), null, need_cpp_includes);
|
if (static) try addCxxKnownPath(b, cfg, exe, b.fmt("libgcc_eh.{s}", .{lib_suffix}), null, need_cpp_includes);
|
||||||
} else {
|
|
||||||
try addCxxKnownPath(b, cfg, exe, b.fmt("libstdc++.{s}", .{lib_suffix}), null, need_cpp_includes);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
.solaris, .illumos => {
|
.solaris, .illumos => {
|
||||||
try addCxxKnownPath(b, cfg, exe, b.fmt("libstdc++.{s}", .{lib_suffix}), null, need_cpp_includes);
|
try addCxxKnownPath(b, cfg, exe, b.fmt("libstdc++.{s}", .{lib_suffix}), null, need_cpp_includes);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue