commit b0f124d46dfd719fc138ab140622f5f6b1aa65f0 (tree)
parent f83e200ac04e26beac1f147f9a3bef8c6291de0f
Author: Andrew Kelley <andrew@ziglang.org>
Date: Tue, 2 Jun 2026 16:51:07 -0700
std.zig.PkgConfig: recognize -pthread
Diffstat:
1 file changed, 5 insertions(+), 0 deletions(-)
diff --git a/lib/std/zig/PkgConfig.zig b/lib/std/zig/PkgConfig.zig
@@ -95,6 +95,7 @@ pub const Parsed = struct {
cflags: []const []const u8,
libs: []const []const u8,
unknown_flags: []const []const u8,
+ pthread: bool,
};
pub const ParseError = Allocator.Error || error{InvalidPkgConfigOutput};
@@ -105,6 +106,7 @@ pub fn parse(arena: Allocator, stdout: []const u8) ParseError!Parsed {
var zig_libs: std.ArrayList([]const u8) = .empty;
var unknown_flags: std.ArrayList([]const u8) = .empty;
var arg_it = mem.tokenizeAny(u8, stdout, " \r\n\t");
+ var pthread = false;
while (arg_it.next()) |arg| {
if (mem.eql(u8, arg, "-I")) {
@@ -129,6 +131,8 @@ pub fn parse(arena: Allocator, stdout: []const u8) ParseError!Parsed {
try zig_cflags.append(arena, arg);
} else if (mem.cutPrefix(u8, arg, "-Wl,-rpath,")) |rest| {
try zig_cflags.appendSlice(arena, &.{ "-rpath", rest });
+ } else if (mem.eql(u8, arg, "-pthread")) {
+ pthread = true;
} else {
try unknown_flags.append(arena, arg);
}
@@ -142,5 +146,6 @@ pub fn parse(arena: Allocator, stdout: []const u8) ParseError!Parsed {
.cflags = zig_cflags.toOwnedSliceAssert(),
.libs = zig_libs.toOwnedSliceAssert(),
.unknown_flags = unknown_flags.toOwnedSliceAssert(),
+ .pthread = pthread,
};
}