diff --git a/build.zig b/build.zig index 52b18cab060c..b4d8b71f796c 100644 --- a/build.zig +++ b/build.zig @@ -390,12 +390,6 @@ fn configureStage2(b: *Builder, exe: anytype, ctx: Context, need_cpp_includes: b } else if (exe.target.isFreeBSD()) { try addCxxKnownPath(b, ctx, exe, "libc++.a", null, need_cpp_includes); exe.linkSystemLibrary("pthread"); - } else if (exe.target.isOpenBSD()) { - // XXX libc++.a/libc++abi.a isn't the right stdc++ library - // on all archs on OpenBSD - try addCxxKnownPath(b, ctx, exe, "libc++.a", null, need_cpp_includes); - try addCxxKnownPath(b, ctx, exe, "libc++abi.a", null, need_cpp_includes); - try addCxxKnownPath(b, ctx, exe, "libpthread.a", null, need_cpp_includes); } else if (exe.target.isDarwin()) { if (addCxxKnownPath(b, ctx, exe, "libgcc_eh.a", "", need_cpp_includes)) { // Compiler is GCC. diff --git a/src/link/Elf.zig b/src/link/Elf.zig index 9eb11acc3dc8..e772cb5b6c17 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -1576,6 +1576,9 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void { if (target.os.tag == .openbsd) { try argv.append("-lcompiler_rt"); + try argv.append("-lc++abi"); + try argv.append("-lc++"); + try argv.append("-lpthread"); } } else if (target.isGnuLibC()) { try argv.append(comp.libunwind_static_lib.?.full_object_path);