commit e61acd8eb563d3c233202ef3a1a63df384d09943 (tree)
parent 7ac110ac250aff4144efa2e29e4ab6610e851514
Author: Alex Rønne Petersen <alex@alexrp.com>
Date: Mon, 3 Feb 2025 17:34:55 +0100
Merge pull request #22713 from mikdusan/openbsd
openbsd: fix stage3 link
Diffstat:
2 files changed, 16 insertions(+), 21 deletions(-)
diff --git a/build.zig b/build.zig
@@ -791,24 +791,19 @@ fn addCmakeCfgOptionsToExe(
if (target.abi != .msvc) mod.link_libcpp = true;
},
.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("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);
- }
+ try addCxxKnownPath(b, cfg, exe, b.fmt("libc++.{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);
},
.openbsd => {
- try addCxxKnownPath(b, cfg, exe, b.fmt("libc++.{s}", .{lib_suffix}), null, need_cpp_includes);
- try addCxxKnownPath(b, cfg, exe, b.fmt("libc++abi.{s}", .{lib_suffix}), null, need_cpp_includes);
+ // - llvm requires libexecinfo which has conflicting symbols with libc++abi
+ // - 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 => {
- if (static) {
- 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);
- } else {
- 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);
+ if (static) try addCxxKnownPath(b, cfg, exe, b.fmt("libgcc_eh.{s}", .{lib_suffix}), null, need_cpp_includes);
},
.solaris, .illumos => {
try addCxxKnownPath(b, cfg, exe, b.fmt("libstdc++.{s}", .{lib_suffix}), null, need_cpp_includes);
diff --git a/lib/std/Target.zig b/lib/std/Target.zig
@@ -528,13 +528,13 @@ pub const Os = struct {
.freebsd => .{
.semver = .{
.min = .{ .major = 12, .minor = 0, .patch = 0 },
- .max = .{ .major = 14, .minor = 1, .patch = 0 },
+ .max = .{ .major = 14, .minor = 2, .patch = 0 },
},
},
.netbsd => .{
.semver = .{
.min = .{ .major = 8, .minor = 0, .patch = 0 },
- .max = .{ .major = 10, .minor = 0, .patch = 0 },
+ .max = .{ .major = 10, .minor = 1, .patch = 0 },
},
},
.openbsd => .{
@@ -553,31 +553,31 @@ pub const Os = struct {
.macos => .{
.semver = .{
.min = .{ .major = 13, .minor = 0, .patch = 0 },
- .max = .{ .major = 15, .minor = 2, .patch = 0 },
+ .max = .{ .major = 15, .minor = 3, .patch = 0 },
},
},
.ios => .{
.semver = .{
.min = .{ .major = 12, .minor = 0, .patch = 0 },
- .max = .{ .major = 18, .minor = 1, .patch = 0 },
+ .max = .{ .major = 18, .minor = 3, .patch = 0 },
},
},
.tvos => .{
.semver = .{
.min = .{ .major = 13, .minor = 0, .patch = 0 },
- .max = .{ .major = 18, .minor = 1, .patch = 0 },
+ .max = .{ .major = 18, .minor = 3, .patch = 0 },
},
},
.visionos => .{
.semver = .{
.min = .{ .major = 1, .minor = 0, .patch = 0 },
- .max = .{ .major = 2, .minor = 1, .patch = 0 },
+ .max = .{ .major = 2, .minor = 3, .patch = 0 },
},
},
.watchos => .{
.semver = .{
.min = .{ .major = 6, .minor = 0, .patch = 0 },
- .max = .{ .major = 11, .minor = 1, .patch = 0 },
+ .max = .{ .major = 11, .minor = 3, .patch = 0 },
},
},