authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-04-07 18:30:44+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-04-11 02:28:35+02:00
log0a5c088ecc2fbe4db5cae1cc5cf62eeba340375d
treeeab8d5bb96b96e5d132029925196962afb6b036e
parente939fc859df5c075c828b3eb4e8c80bb7e0f1b5f
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

compiler: Add hexagon-linux-musl support.

Closes #21588.

2 files changed, 13 insertions(+), 0 deletions(-)

lib/std/zig/target.zig+2
......@@ -34,6 +34,7 @@ pub const available_libcs = [_]ArchOsAbi{
3434 .{ .arch = .aarch64_be, .os = .linux, .abi = .musl, .os_ver = .{ .major = 3, .minor = 13, .patch = 0 } },
3535 .{ .arch = .csky, .os = .linux, .abi = .gnueabi, .os_ver = .{ .major = 4, .minor = 20, .patch = 0 }, .glibc_min = .{ .major = 2, .minor = 29, .patch = 0 }, .glibc_triple = "csky-linux-gnuabiv2-soft" },
3636 .{ .arch = .csky, .os = .linux, .abi = .gnueabihf, .os_ver = .{ .major = 4, .minor = 20, .patch = 0 }, .glibc_min = .{ .major = 2, .minor = 29, .patch = 0 }, .glibc_triple = "csky-linux-gnuabiv2" },
37 .{ .arch = .hexagon, .os = .linux, .abi = .musl, .os_ver = .{ .major = 3, .minor = 2, .patch = 102 } },
3738 .{ .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" },
3839 .{ .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" },
3940 .{ .arch = .loongarch64, .os = .linux, .abi = .musl, .os_ver = .{ .major = 5, .minor = 19, .patch = 0 } },
......@@ -154,6 +155,7 @@ pub fn muslArchName(arch: std.Target.Cpu.Arch, abi: std.Target.Abi) [:0]const u8
154155 else => switch (arch) {
155156 .arm, .armeb, .thumb, .thumbeb => "arm",
156157 .aarch64, .aarch64_be => "aarch64",
158 .hexagon => "hexagon",
157159 .loongarch64 => "loongarch64",
158160 .m68k => "m68k",
159161 .mips, .mipsel => "mips",
src/musl.zig+11
......@@ -202,6 +202,7 @@ pub fn buildCrtFile(comp: *Compilation, in_crt_file: CrtFile, prog_node: std.Pro
202202 const family_define = switch (target.cpu.arch) {
203203 .arm, .armeb, .thumb, .thumbeb => "-DFAMILY_arm",
204204 .aarch64, .aarch64_be => "-DFAMILY_aarch64",
205 .hexagon => "-DFAMILY_hexagon",
205206 .loongarch64 => "-DFAMILY_loongarch",
206207 .m68k => "-DFAMILY_m68k",
207208 .mips, .mipsel, .mips64, .mips64el => "-DFAMILY_mips",
......@@ -320,6 +321,7 @@ fn isArchName(name: []const u8) bool {
320321 "aarch64",
321322 "arm",
322323 "generic",
324 "hexagon",
323325 "i386",
324326 "loongarch64",
325327 "m68k",
......@@ -619,6 +621,7 @@ const src_files = [_][]const u8{
619621 "musl/src/fenv/fesetround.c",
620622 "musl/src/fenv/feupdateenv.c",
621623 "musl/src/fenv/__flt_rounds.c",
624 "musl/src/fenv/hexagon/fenv.S",
622625 "musl/src/fenv/i386/fenv.s",
623626 "musl/src/fenv/loongarch64/fenv.S",
624627 "musl/src/fenv/m68k/fenv.c",
......@@ -1577,6 +1580,8 @@ const src_files = [_][]const u8{
15771580 "musl/src/setjmp/aarch64/setjmp.s",
15781581 "musl/src/setjmp/arm/longjmp.S",
15791582 "musl/src/setjmp/arm/setjmp.S",
1583 "musl/src/setjmp/hexagon/longjmp.s",
1584 "musl/src/setjmp/hexagon/setjmp.s",
15801585 "musl/src/setjmp/i386/longjmp.s",
15811586 "musl/src/setjmp/i386/setjmp.s",
15821587 "musl/src/setjmp/longjmp.c",
......@@ -1611,6 +1616,8 @@ const src_files = [_][]const u8{
16111616 "musl/src/signal/arm/sigsetjmp.s",
16121617 "musl/src/signal/block.c",
16131618 "musl/src/signal/getitimer.c",
1619 "musl/src/signal/hexagon/restore.s",
1620 "musl/src/signal/hexagon/sigsetjmp.s",
16141621 "musl/src/signal/i386/restore.s",
16151622 "musl/src/signal/i386/sigsetjmp.s",
16161623 "musl/src/signal/kill.c",
......@@ -1943,6 +1950,10 @@ const src_files = [_][]const u8{
19431950 "musl/src/thread/cnd_timedwait.c",
19441951 "musl/src/thread/cnd_wait.c",
19451952 "musl/src/thread/default_attr.c",
1953 "musl/src/thread/hexagon/clone.s",
1954 "musl/src/thread/hexagon/__set_thread_area.s",
1955 "musl/src/thread/hexagon/syscall_cp.s",
1956 "musl/src/thread/hexagon/__unmapself.s",
19461957 "musl/src/thread/i386/clone.s",
19471958 "musl/src/thread/i386/__set_thread_area.s",
19481959 "musl/src/thread/i386/syscall_cp.s",