| author | |
| committer | |
| log | 7c7627b18a85a1ab7e09b6dadfc9bba0903880db |
| tree | b1ca9e2937cedf8a4f64738f42d5b3897b37d461 |
| parent | dc760492a44a3e494943f9191efbd6ded291af87 |
| signature |
4 files changed, 37 insertions(+), 2 deletions(-)
lib/std/zig/LibCDirs.zig+6| ... | @@ -170,6 +170,8 @@ pub fn detectFromBuilding( | ... | @@ -170,6 +170,8 @@ pub fn detectFromBuilding( |
| 170 | // Some architecture families are handled by the same set of headers. | 170 | // Some architecture families are handled by the same set of headers. |
| 171 | const arch_name = if (target.isMuslLibC() or target.isWasiLibC()) | 171 | const arch_name = if (target.isMuslLibC() or target.isWasiLibC()) |
| 172 | std.zig.target.muslArchNameHeaders(target.cpu.arch) | 172 | std.zig.target.muslArchNameHeaders(target.cpu.arch) |
| 173 | else if (target.isGnuLibC()) | ||
| 174 | std.zig.target.glibcArchNameHeaders(target.cpu.arch) | ||
| 173 | else if (target.isFreeBSDLibC()) | 175 | else if (target.isFreeBSDLibC()) |
| 174 | std.zig.target.freebsdArchNameHeaders(target.cpu.arch) | 176 | std.zig.target.freebsdArchNameHeaders(target.cpu.arch) |
| 175 | else if (target.isNetBSDLibC()) | 177 | else if (target.isNetBSDLibC()) |
| ... | @@ -179,6 +181,10 @@ pub fn detectFromBuilding( | ... | @@ -179,6 +181,10 @@ pub fn detectFromBuilding( |
| 179 | const os_name = @tagName(target.os.tag); | 181 | const os_name = @tagName(target.os.tag); |
| 180 | const abi_name = if (target.isMuslLibC()) | 182 | const abi_name = if (target.isMuslLibC()) |
| 181 | std.zig.target.muslAbiNameHeaders(target.abi) | 183 | std.zig.target.muslAbiNameHeaders(target.abi) |
| 184 | else if (target.isGnuLibC()) | ||
| 185 | std.zig.target.glibcAbiNameHeaders(target.abi) | ||
| 186 | else if (target.isNetBSDLibC()) | ||
| 187 | std.zig.target.netbsdAbiNameHeaders(target.abi) | ||
| 182 | else | 188 | else |
| 183 | @tagName(target.abi); | 189 | @tagName(target.abi); |
| 184 | const arch_include_dir = try std.fmt.allocPrint( | 190 | const arch_include_dir = try std.fmt.allocPrint( |
lib/std/zig/target.zig+26| ... | @@ -233,6 +233,25 @@ pub fn muslAbiNameHeaders(abi: std.Target.Abi) [:0]const u8 { | ... | @@ -233,6 +233,25 @@ pub fn muslAbiNameHeaders(abi: std.Target.Abi) [:0]const u8 { |
| 233 | }; | 233 | }; |
| 234 | } | 234 | } |
| 235 | 235 | ||
| 236 | pub fn glibcArchNameHeaders(arch: std.Target.Cpu.Arch) [:0]const u8 { | ||
| 237 | return switch (arch) { | ||
| 238 | .aarch64, .aarch64_be => "aarch64", | ||
| 239 | .arm, .armeb => "arm", | ||
| 240 | .loongarch64 => "loongarch", | ||
| 241 | .mips, .mipsel, .mips64, .mips64el => "mips", | ||
| 242 | .powerpc, .powerpc64, .powerpc64le => "powerpc", | ||
| 243 | .riscv32, .riscv64 => "riscv", | ||
| 244 | .sparc, .sparc64 => "sparc", | ||
| 245 | .x86, .x86_64 => "x86", | ||
| 246 | else => @tagName(arch), | ||
| 247 | }; | ||
| 248 | } | ||
| 249 | |||
| 250 | pub fn glibcAbiNameHeaders(abi: std.Target.Abi) [:0]const u8 { | ||
| 251 | _ = abi; | ||
| 252 | return "gnu"; | ||
| 253 | } | ||
| 254 | |||
| 236 | pub fn freebsdArchNameHeaders(arch: std.Target.Cpu.Arch) [:0]const u8 { | 255 | pub fn freebsdArchNameHeaders(arch: std.Target.Cpu.Arch) [:0]const u8 { |
| 237 | return switch (arch) { | 256 | return switch (arch) { |
| 238 | .powerpc64le => "powerpc64", | 257 | .powerpc64le => "powerpc64", |
| ... | @@ -250,6 +269,13 @@ pub fn netbsdArchNameHeaders(arch: std.Target.Cpu.Arch) [:0]const u8 { | ... | @@ -250,6 +269,13 @@ pub fn netbsdArchNameHeaders(arch: std.Target.Cpu.Arch) [:0]const u8 { |
| 250 | }; | 269 | }; |
| 251 | } | 270 | } |
| 252 | 271 | ||
| 272 | pub fn netbsdAbiNameHeaders(abi: std.Target.Abi) [:0]const u8 { | ||
| 273 | return switch (abi) { | ||
| 274 | .eabi, .eabihf => "eabi", | ||
| 275 | else => "none", | ||
| 276 | }; | ||
| 277 | } | ||
| 278 | |||
| 253 | pub fn isLibCLibName(target: std.Target, name: []const u8) bool { | 279 | pub fn isLibCLibName(target: std.Target, name: []const u8) bool { |
| 254 | const ignore_case = target.os.tag.isDarwin() or target.os.tag == .windows; | 280 | const ignore_case = target.os.tag.isDarwin() or target.os.tag == .windows; |
| 255 | 281 |
src/libs/glibc.zig+4-1| ... | @@ -463,7 +463,10 @@ fn add_include_dirs(comp: *Compilation, arena: Allocator, args: *std.ArrayList([ | ... | @@ -463,7 +463,10 @@ fn add_include_dirs(comp: *Compilation, arena: Allocator, args: *std.ArrayList([ |
| 463 | 463 | ||
| 464 | try args.append("-I"); | 464 | try args.append("-I"); |
| 465 | try args.append(try std.fmt.allocPrint(arena, "{s}" ++ s ++ "libc" ++ s ++ "include" ++ s ++ "{s}-{s}-{s}", .{ | 465 | try args.append(try std.fmt.allocPrint(arena, "{s}" ++ s ++ "libc" ++ s ++ "include" ++ s ++ "{s}-{s}-{s}", .{ |
| 466 | comp.dirs.zig_lib.path orelse ".", @tagName(target.cpu.arch), @tagName(target.os.tag), @tagName(target.abi), | 466 | comp.dirs.zig_lib.path orelse ".", |
| 467 | std.zig.target.glibcArchNameHeaders(target.cpu.arch), | ||
| 468 | @tagName(target.os.tag), | ||
| 469 | std.zig.target.glibcAbiNameHeaders(target.abi), | ||
| 467 | })); | 470 | })); |
| 468 | 471 | ||
| 469 | try args.append("-I"); | 472 | try args.append("-I"); |
src/libs/netbsd.zig+1-1| ... | @@ -100,7 +100,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre | ... | @@ -100,7 +100,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre |
| 100 | try includePath(comp, arena, try std.fmt.allocPrint(arena, "{s}-{s}-{s}", .{ | 100 | try includePath(comp, arena, try std.fmt.allocPrint(arena, "{s}-{s}-{s}", .{ |
| 101 | std.zig.target.netbsdArchNameHeaders(target.cpu.arch), | 101 | std.zig.target.netbsdArchNameHeaders(target.cpu.arch), |
| 102 | @tagName(target.os.tag), | 102 | @tagName(target.os.tag), |
| 103 | @tagName(target.abi), | 103 | std.zig.target.netbsdAbiNameHeaders(target.abi), |
| 104 | })), | 104 | })), |
| 105 | "-I", | 105 | "-I", |
| 106 | try includePath(comp, arena, "generic-netbsd"), | 106 | try includePath(comp, arena, "generic-netbsd"), |