diff --git a/lib/std/zig/LibCDirs.zig b/lib/std/zig/LibCDirs.zig index b461bb4777..b98bbb6e0f 100644 --- a/lib/std/zig/LibCDirs.zig +++ b/lib/std/zig/LibCDirs.zig @@ -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) { diff --git a/lib/std/zig/target.zig b/lib/std/zig/target.zig index 4b20c132a6..814b4a145f 100644 --- a/lib/std/zig/target.zig +++ b/lib/std/zig/target.zig @@ -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;