mirror of
https://github.com/ziglang/zig.git
synced 2026-01-05 21:13:24 +00:00
compiler: Use new merged header paths for glibc and NetBSD libc.
This commit is contained in:
parent
dc760492a4
commit
7c7627b18a
@ -170,6 +170,8 @@ pub fn detectFromBuilding(
|
||||
// Some architecture families are handled by the same set of headers.
|
||||
const arch_name = if (target.isMuslLibC() or target.isWasiLibC())
|
||||
std.zig.target.muslArchNameHeaders(target.cpu.arch)
|
||||
else if (target.isGnuLibC())
|
||||
std.zig.target.glibcArchNameHeaders(target.cpu.arch)
|
||||
else if (target.isFreeBSDLibC())
|
||||
std.zig.target.freebsdArchNameHeaders(target.cpu.arch)
|
||||
else if (target.isNetBSDLibC())
|
||||
@ -179,6 +181,10 @@ pub fn detectFromBuilding(
|
||||
const os_name = @tagName(target.os.tag);
|
||||
const abi_name = if (target.isMuslLibC())
|
||||
std.zig.target.muslAbiNameHeaders(target.abi)
|
||||
else if (target.isGnuLibC())
|
||||
std.zig.target.glibcAbiNameHeaders(target.abi)
|
||||
else if (target.isNetBSDLibC())
|
||||
std.zig.target.netbsdAbiNameHeaders(target.abi)
|
||||
else
|
||||
@tagName(target.abi);
|
||||
const arch_include_dir = try std.fmt.allocPrint(
|
||||
|
||||
@ -233,6 +233,25 @@ pub fn muslAbiNameHeaders(abi: std.Target.Abi) [:0]const u8 {
|
||||
};
|
||||
}
|
||||
|
||||
pub fn glibcArchNameHeaders(arch: std.Target.Cpu.Arch) [:0]const u8 {
|
||||
return switch (arch) {
|
||||
.aarch64, .aarch64_be => "aarch64",
|
||||
.arm, .armeb => "arm",
|
||||
.loongarch64 => "loongarch",
|
||||
.mips, .mipsel, .mips64, .mips64el => "mips",
|
||||
.powerpc, .powerpc64, .powerpc64le => "powerpc",
|
||||
.riscv32, .riscv64 => "riscv",
|
||||
.sparc, .sparc64 => "sparc",
|
||||
.x86, .x86_64 => "x86",
|
||||
else => @tagName(arch),
|
||||
};
|
||||
}
|
||||
|
||||
pub fn glibcAbiNameHeaders(abi: std.Target.Abi) [:0]const u8 {
|
||||
_ = abi;
|
||||
return "gnu";
|
||||
}
|
||||
|
||||
pub fn freebsdArchNameHeaders(arch: std.Target.Cpu.Arch) [:0]const u8 {
|
||||
return switch (arch) {
|
||||
.powerpc64le => "powerpc64",
|
||||
@ -250,6 +269,13 @@ pub fn netbsdArchNameHeaders(arch: std.Target.Cpu.Arch) [:0]const u8 {
|
||||
};
|
||||
}
|
||||
|
||||
pub fn netbsdAbiNameHeaders(abi: std.Target.Abi) [:0]const u8 {
|
||||
return switch (abi) {
|
||||
.eabi, .eabihf => "eabi",
|
||||
else => "none",
|
||||
};
|
||||
}
|
||||
|
||||
pub fn isLibCLibName(target: std.Target, name: []const u8) bool {
|
||||
const ignore_case = target.os.tag.isDarwin() or target.os.tag == .windows;
|
||||
|
||||
|
||||
@ -463,7 +463,10 @@ fn add_include_dirs(comp: *Compilation, arena: Allocator, args: *std.ArrayList([
|
||||
|
||||
try args.append("-I");
|
||||
try args.append(try std.fmt.allocPrint(arena, "{s}" ++ s ++ "libc" ++ s ++ "include" ++ s ++ "{s}-{s}-{s}", .{
|
||||
comp.dirs.zig_lib.path orelse ".", @tagName(target.cpu.arch), @tagName(target.os.tag), @tagName(target.abi),
|
||||
comp.dirs.zig_lib.path orelse ".",
|
||||
std.zig.target.glibcArchNameHeaders(target.cpu.arch),
|
||||
@tagName(target.os.tag),
|
||||
std.zig.target.glibcAbiNameHeaders(target.abi),
|
||||
}));
|
||||
|
||||
try args.append("-I");
|
||||
|
||||
@ -100,7 +100,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
|
||||
try includePath(comp, arena, try std.fmt.allocPrint(arena, "{s}-{s}-{s}", .{
|
||||
std.zig.target.netbsdArchNameHeaders(target.cpu.arch),
|
||||
@tagName(target.os.tag),
|
||||
@tagName(target.abi),
|
||||
std.zig.target.netbsdAbiNameHeaders(target.abi),
|
||||
})),
|
||||
"-I",
|
||||
try includePath(comp, arena, "generic-netbsd"),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user