std.zig.LibCDirs: Add FreeBSD libc support.

This commit is contained in:
Alex Rønne Petersen
2025-04-21 06:52:06 +02:00
parent 6e64bc845f
commit 01390cc533
2 changed files with 12 additions and 2 deletions

View File

@@ -168,12 +168,14 @@ pub fn detectFromBuilding(
const generic_name = libCGenericName(target);
// Some architecture families are handled by the same set of headers.
const arch_name = if (target.abi.isMusl())
const arch_name = if (target.isMuslLibC())
std.zig.target.muslArchNameHeaders(target.cpu.arch)
else if (target.isFreeBSDLibC())
std.zig.target.freebsdArchNameHeaders(target.cpu.arch)
else
@tagName(target.cpu.arch);
const os_name = @tagName(target.os.tag);
const abi_name = if (target.abi.isMusl())
const abi_name = if (target.isMuslLibC())
std.zig.target.muslAbiNameHeaders(target.abi)
else
@tagName(target.abi);
@@ -218,6 +220,7 @@ fn libCGenericName(target: std.Target) [:0]const u8 {
switch (target.os.tag) {
.windows => return "mingw",
.macos, .ios, .tvos, .watchos, .visionos => return "darwin",
.freebsd => return "freebsd",
else => {},
}
switch (target.abi) {

View File

@@ -188,6 +188,13 @@ pub fn muslAbiNameHeaders(abi: std.Target.Abi) [:0]const u8 {
};
}
pub fn freebsdArchNameHeaders(arch: std.Target.Cpu.Arch) [:0]const u8 {
return switch (arch) {
.powerpc64le => "powerpc64",
else => @tagName(arch),
};
}
pub fn isLibCLibName(target: std.Target, name: []const u8) bool {
const ignore_case = target.os.tag.isDarwin() or target.os.tag == .windows;