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{...@@ -34,6 +34,7 @@ pub const available_libcs = [_]ArchOsAbi{
34 .{ .arch = .aarch64_be, .os = .linux, .abi = .musl, .os_ver = .{ .major = 3, .minor = 13, .patch = 0 } },34 .{ .arch = .aarch64_be, .os = .linux, .abi = .musl, .os_ver = .{ .major = 3, .minor = 13, .patch = 0 } },
35 .{ .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" },35 .{ .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" },
36 .{ .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" },36 .{ .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 } },
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 = .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" },39 .{ .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 } },40 .{ .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...@@ -154,6 +155,7 @@ pub fn muslArchName(arch: std.Target.Cpu.Arch, abi: std.Target.Abi) [:0]const u8
154 else => switch (arch) {155 else => switch (arch) {
155 .arm, .armeb, .thumb, .thumbeb => "arm",156 .arm, .armeb, .thumb, .thumbeb => "arm",
156 .aarch64, .aarch64_be => "aarch64",157 .aarch64, .aarch64_be => "aarch64",
158 .hexagon => "hexagon",
157 .loongarch64 => "loongarch64",159 .loongarch64 => "loongarch64",
158 .m68k => "m68k",160 .m68k => "m68k",
159 .mips, .mipsel => "mips",161 .mips, .mipsel => "mips",
src/musl.zig+11
...@@ -202,6 +202,7 @@ pub fn buildCrtFile(comp: *Compilation, in_crt_file: CrtFile, prog_node: std.Pro...@@ -202,6 +202,7 @@ pub fn buildCrtFile(comp: *Compilation, in_crt_file: CrtFile, prog_node: std.Pro
202 const family_define = switch (target.cpu.arch) {202 const family_define = switch (target.cpu.arch) {
203 .arm, .armeb, .thumb, .thumbeb => "-DFAMILY_arm",203 .arm, .armeb, .thumb, .thumbeb => "-DFAMILY_arm",
204 .aarch64, .aarch64_be => "-DFAMILY_aarch64",204 .aarch64, .aarch64_be => "-DFAMILY_aarch64",
205 .hexagon => "-DFAMILY_hexagon",
205 .loongarch64 => "-DFAMILY_loongarch",206 .loongarch64 => "-DFAMILY_loongarch",
206 .m68k => "-DFAMILY_m68k",207 .m68k => "-DFAMILY_m68k",
207 .mips, .mipsel, .mips64, .mips64el => "-DFAMILY_mips",208 .mips, .mipsel, .mips64, .mips64el => "-DFAMILY_mips",
...@@ -320,6 +321,7 @@ fn isArchName(name: []const u8) bool {...@@ -320,6 +321,7 @@ fn isArchName(name: []const u8) bool {
320 "aarch64",321 "aarch64",
321 "arm",322 "arm",
322 "generic",323 "generic",
324 "hexagon",
323 "i386",325 "i386",
324 "loongarch64",326 "loongarch64",
325 "m68k",327 "m68k",
...@@ -619,6 +621,7 @@ const src_files = [_][]const u8{...@@ -619,6 +621,7 @@ const src_files = [_][]const u8{
619 "musl/src/fenv/fesetround.c",621 "musl/src/fenv/fesetround.c",
620 "musl/src/fenv/feupdateenv.c",622 "musl/src/fenv/feupdateenv.c",
621 "musl/src/fenv/__flt_rounds.c",623 "musl/src/fenv/__flt_rounds.c",
624 "musl/src/fenv/hexagon/fenv.S",
622 "musl/src/fenv/i386/fenv.s",625 "musl/src/fenv/i386/fenv.s",
623 "musl/src/fenv/loongarch64/fenv.S",626 "musl/src/fenv/loongarch64/fenv.S",
624 "musl/src/fenv/m68k/fenv.c",627 "musl/src/fenv/m68k/fenv.c",
...@@ -1577,6 +1580,8 @@ const src_files = [_][]const u8{...@@ -1577,6 +1580,8 @@ const src_files = [_][]const u8{
1577 "musl/src/setjmp/aarch64/setjmp.s",1580 "musl/src/setjmp/aarch64/setjmp.s",
1578 "musl/src/setjmp/arm/longjmp.S",1581 "musl/src/setjmp/arm/longjmp.S",
1579 "musl/src/setjmp/arm/setjmp.S",1582 "musl/src/setjmp/arm/setjmp.S",
1583 "musl/src/setjmp/hexagon/longjmp.s",
1584 "musl/src/setjmp/hexagon/setjmp.s",
1580 "musl/src/setjmp/i386/longjmp.s",1585 "musl/src/setjmp/i386/longjmp.s",
1581 "musl/src/setjmp/i386/setjmp.s",1586 "musl/src/setjmp/i386/setjmp.s",
1582 "musl/src/setjmp/longjmp.c",1587 "musl/src/setjmp/longjmp.c",
...@@ -1611,6 +1616,8 @@ const src_files = [_][]const u8{...@@ -1611,6 +1616,8 @@ const src_files = [_][]const u8{
1611 "musl/src/signal/arm/sigsetjmp.s",1616 "musl/src/signal/arm/sigsetjmp.s",
1612 "musl/src/signal/block.c",1617 "musl/src/signal/block.c",
1613 "musl/src/signal/getitimer.c",1618 "musl/src/signal/getitimer.c",
1619 "musl/src/signal/hexagon/restore.s",
1620 "musl/src/signal/hexagon/sigsetjmp.s",
1614 "musl/src/signal/i386/restore.s",1621 "musl/src/signal/i386/restore.s",
1615 "musl/src/signal/i386/sigsetjmp.s",1622 "musl/src/signal/i386/sigsetjmp.s",
1616 "musl/src/signal/kill.c",1623 "musl/src/signal/kill.c",
...@@ -1943,6 +1950,10 @@ const src_files = [_][]const u8{...@@ -1943,6 +1950,10 @@ const src_files = [_][]const u8{
1943 "musl/src/thread/cnd_timedwait.c",1950 "musl/src/thread/cnd_timedwait.c",
1944 "musl/src/thread/cnd_wait.c",1951 "musl/src/thread/cnd_wait.c",
1945 "musl/src/thread/default_attr.c",1952 "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",
1946 "musl/src/thread/i386/clone.s",1957 "musl/src/thread/i386/clone.s",
1947 "musl/src/thread/i386/__set_thread_area.s",1958 "musl/src/thread/i386/__set_thread_area.s",
1948 "musl/src/thread/i386/syscall_cp.s",1959 "musl/src/thread/i386/syscall_cp.s",