| author | |
| committer | |
| log | 8954e9748a27f232708e7795a99bd39f2abb8890 |
| tree | 7b6f57b4804bb92d0d044f4493694fbb5f067a17 |
| parent | 1599f8ade0e24d82a7150a1ebe967cff781ca39a |
| signature |
7 files changed, 27 insertions(+), 4 deletions(-)
lib/compiler/aro/aro/target.zig+2| ... | @@ -698,6 +698,8 @@ pub fn toLLVMTriple(target: std.Target, buf: []u8) []const u8 { | ... | @@ -698,6 +698,8 @@ pub fn toLLVMTriple(target: std.Target, buf: []u8) []const u8 { |
| 698 | .muslabi64 => "muslabi64", | 698 | .muslabi64 => "muslabi64", |
| 699 | .musleabi => "musleabi", | 699 | .musleabi => "musleabi", |
| 700 | .musleabihf => "musleabihf", | 700 | .musleabihf => "musleabihf", |
| 701 | .muslf32 => "muslf32", | ||
| 702 | .muslsf => "muslsf", | ||
| 701 | .muslx32 => "muslx32", | 703 | .muslx32 => "muslx32", |
| 702 | .msvc => "msvc", | 704 | .msvc => "msvc", |
| 703 | .itanium => "itanium", | 705 | .itanium => "itanium", |
lib/std/Target.zig+16-1| ... | @@ -775,6 +775,8 @@ pub const Abi = enum { | ... | @@ -775,6 +775,8 @@ pub const Abi = enum { |
| 775 | muslabi64, | 775 | muslabi64, |
| 776 | musleabi, | 776 | musleabi, |
| 777 | musleabihf, | 777 | musleabihf, |
| 778 | muslf32, | ||
| 779 | muslsf, | ||
| 778 | muslx32, | 780 | muslx32, |
| 779 | msvc, | 781 | msvc, |
| 780 | itanium, | 782 | itanium, |
| ... | @@ -949,6 +951,8 @@ pub const Abi = enum { | ... | @@ -949,6 +951,8 @@ pub const Abi = enum { |
| 949 | .muslabi64, | 951 | .muslabi64, |
| 950 | .musleabi, | 952 | .musleabi, |
| 951 | .musleabihf, | 953 | .musleabihf, |
| 954 | .muslf32, | ||
| 955 | .muslsf, | ||
| 952 | .muslx32, | 956 | .muslx32, |
| 953 | => true, | 957 | => true, |
| 954 | else => abi.isOpenHarmony(), | 958 | else => abi.isOpenHarmony(), |
| ... | @@ -2251,9 +2255,20 @@ pub const DynamicLinker = struct { | ... | @@ -2251,9 +2255,20 @@ pub const DynamicLinker = struct { |
| 2251 | }, | 2255 | }, |
| 2252 | }), | 2256 | }), |
| 2253 | 2257 | ||
| 2258 | .loongarch32, | ||
| 2259 | .loongarch64, | ||
| 2260 | => |arch| initFmt("/lib/ld-musl-{s}{s}.so.1", .{ | ||
| 2261 | @tagName(arch), | ||
| 2262 | switch (abi) { | ||
| 2263 | .musl => "", | ||
| 2264 | .muslf32 => "-sp", | ||
| 2265 | .muslsf => "-sf", | ||
| 2266 | else => return none, | ||
| 2267 | }, | ||
| 2268 | }), | ||
| 2269 | |||
| 2254 | .aarch64, | 2270 | .aarch64, |
| 2255 | .aarch64_be, | 2271 | .aarch64_be, |
| 2256 | .loongarch64, // TODO: `-sp` and `-sf` ABI support in LLVM 20. | ||
| 2257 | .m68k, | 2272 | .m68k, |
| 2258 | .powerpc64, | 2273 | .powerpc64, |
| 2259 | .powerpc64le, | 2274 | .powerpc64le, |
lib/std/zig/LibCDirs.zig+2| ... | @@ -236,6 +236,8 @@ fn libCGenericName(target: std.Target) [:0]const u8 { | ... | @@ -236,6 +236,8 @@ fn libCGenericName(target: std.Target) [:0]const u8 { |
| 236 | .muslabi64, | 236 | .muslabi64, |
| 237 | .musleabi, | 237 | .musleabi, |
| 238 | .musleabihf, | 238 | .musleabihf, |
| 239 | .muslf32, | ||
| 240 | .muslsf, | ||
| 239 | .muslx32, | 241 | .muslx32, |
| 240 | .none, | 242 | .none, |
| 241 | .ohos, | 243 | .ohos, |
lib/std/zig/target.zig+1| ... | @@ -37,6 +37,7 @@ pub const available_libcs = [_]ArchOsAbi{ | ... | @@ -37,6 +37,7 @@ pub const available_libcs = [_]ArchOsAbi{ |
| 37 | .{ .arch = .loongarch64, .os = .linux, .abi = .gnu, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 }, .glibc_min = .{ .major = 2, .minor = 36, .patch = 0 }, .glibc_triple = "loongarch64-linux-gnu-lp64d" }, | 37 | .{ .arch = .loongarch64, .os = .linux, .abi = .gnu, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 }, .glibc_min = .{ .major = 2, .minor = 36, .patch = 0 }, .glibc_triple = "loongarch64-linux-gnu-lp64d" }, |
| 38 | .{ .arch = .loongarch64, .os = .linux, .abi = .gnusf, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 }, .glibc_min = .{ .major = 2, .minor = 36, .patch = 0 }, .glibc_triple = "loongarch64-linux-gnu-lp64s" }, | 38 | .{ .arch = .loongarch64, .os = .linux, .abi = .gnusf, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 }, .glibc_min = .{ .major = 2, .minor = 36, .patch = 0 }, .glibc_triple = "loongarch64-linux-gnu-lp64s" }, |
| 39 | .{ .arch = .loongarch64, .os = .linux, .abi = .musl, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 } }, | 39 | .{ .arch = .loongarch64, .os = .linux, .abi = .musl, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 } }, |
| 40 | .{ .arch = .loongarch64, .os = .linux, .abi = .muslsf, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 } }, | ||
| 40 | .{ .arch = .m68k, .os = .linux, .abi = .gnu, .os_ver = .{ .major = 1, .minor = 3, .patch = 94 } }, | 41 | .{ .arch = .m68k, .os = .linux, .abi = .gnu, .os_ver = .{ .major = 1, .minor = 3, .patch = 94 } }, |
| 41 | .{ .arch = .m68k, .os = .linux, .abi = .musl, .os_ver = .{ .major = 1, .minor = 3, .patch = 94 } }, | 42 | .{ .arch = .m68k, .os = .linux, .abi = .musl, .os_ver = .{ .major = 1, .minor = 3, .patch = 94 } }, |
| 42 | .{ .arch = .mips, .os = .linux, .abi = .gnueabi, .os_ver = .{ .major = 1, .minor = 1, .patch = 82 }, .glibc_triple = "mips-linux-gnu-soft" }, | 43 | .{ .arch = .mips, .os = .linux, .abi = .gnueabi, .os_ver = .{ .major = 1, .minor = 1, .patch = 82 }, .glibc_triple = "mips-linux-gnu-soft" }, |
src/codegen/llvm.zig+2| ... | @@ -275,6 +275,8 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 { | ... | @@ -275,6 +275,8 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 { |
| 275 | .muslabi64 => "musl", // Should be muslabi64 in LLVM 20. | 275 | .muslabi64 => "musl", // Should be muslabi64 in LLVM 20. |
| 276 | .musleabi => "musleabi", | 276 | .musleabi => "musleabi", |
| 277 | .musleabihf => "musleabihf", | 277 | .musleabihf => "musleabihf", |
| 278 | .muslf32 => "muslf32", | ||
| 279 | .muslsf => "muslsf", | ||
| 278 | .muslx32 => "muslx32", | 280 | .muslx32 => "muslx32", |
| 279 | .msvc => "msvc", | 281 | .msvc => "msvc", |
| 280 | .itanium => "itanium", | 282 | .itanium => "itanium", |
src/target.zig+2-3| ... | @@ -496,10 +496,9 @@ pub fn llvmMachineAbi(target: std.Target) ?[:0]const u8 { | ... | @@ -496,10 +496,9 @@ pub fn llvmMachineAbi(target: std.Target) ?[:0]const u8 { |
| 496 | 496 | ||
| 497 | return switch (target.cpu.arch) { | 497 | return switch (target.cpu.arch) { |
| 498 | .arm, .armeb, .thumb, .thumbeb => "aapcs", | 498 | .arm, .armeb, .thumb, .thumbeb => "aapcs", |
| 499 | // TODO: `muslsf` and `muslf32` in LLVM 20. | ||
| 500 | .loongarch64 => switch (target.abi) { | 499 | .loongarch64 => switch (target.abi) { |
| 501 | .gnusf => "lp64s", | 500 | .gnusf, .muslsf => "lp64s", |
| 502 | .gnuf32 => "lp64f", | 501 | .gnuf32, .muslf32 => "lp64f", |
| 503 | else => "lp64d", | 502 | else => "lp64d", |
| 504 | }, | 503 | }, |
| 505 | .loongarch32 => switch (target.abi) { | 504 | .loongarch32 => switch (target.abi) { |
test/llvm_targets.zig+2| ... | @@ -114,6 +114,8 @@ const targets = [_]std.Target.Query{ | ... | @@ -114,6 +114,8 @@ const targets = [_]std.Target.Query{ |
| 114 | // .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .gnuf32 }, | 114 | // .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .gnuf32 }, |
| 115 | .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .gnusf }, | 115 | .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .gnusf }, |
| 116 | .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .musl }, | 116 | .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .musl }, |
| 117 | // .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .muslf32 }, | ||
| 118 | .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .muslsf }, | ||
| 117 | .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .none }, | 119 | .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .none }, |
| 118 | // .{ .cpu_arch = .loongarch64, .os_tag = .uefi, .abi = .none }, | 120 | // .{ .cpu_arch = .loongarch64, .os_tag = .uefi, .abi = .none }, |
| 119 | 121 |