authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-02-01 14:26:12+01:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-04-25 21:49:38+02:00
log48d5b66677098638f75547f0763a994d28bb0ce8
tree798b86ccf3f4a28c08f4f9d419ec04bc8041bb3c
parent8a1ec6a54db585b5730c4a89dd1db407ba74a304
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.Target: fuchsia supports arm/thumb now


2 files changed, 10 insertions(+), 1 deletions(-)

lib/std/Target.zig+8-1
...@@ -845,6 +845,12 @@ pub const Abi = enum {...@@ -845,6 +845,12 @@ pub const Abi = enum {
845 => .eabi,845 => .eabi,
846 else => .none,846 else => .none,
847 },847 },
848 .fuchsia => switch (arch) {
849 .arm,
850 .thumb,
851 => .eabihf,
852 else => .none,
853 },
848 .haiku => switch (arch) {854 .haiku => switch (arch) {
849 .arm,855 .arm,
850 .powerpc,856 .powerpc,
...@@ -928,7 +934,6 @@ pub const Abi = enum {...@@ -928,7 +934,6 @@ pub const Abi = enum {
928 .wasi, .emscripten => .musl,934 .wasi, .emscripten => .musl,
929935
930 .contiki,936 .contiki,
931 .fuchsia,
932 .hermit,937 .hermit,
933 .illumos,938 .illumos,
934 .managarm,939 .managarm,
...@@ -2443,8 +2448,10 @@ pub const DynamicLinker = struct {...@@ -2443,8 +2448,10 @@ pub const DynamicLinker = struct {
2443 pub fn standard(cpu: Cpu, os: Os, abi: Abi) DynamicLinker {2448 pub fn standard(cpu: Cpu, os: Os, abi: Abi) DynamicLinker {
2444 return switch (os.tag) {2449 return switch (os.tag) {
2445 .fuchsia => switch (cpu.arch) {2450 .fuchsia => switch (cpu.arch) {
2451 .arm,
2446 .aarch64,2452 .aarch64,
2447 .riscv64,2453 .riscv64,
2454 .thumb,
2448 .x86_64,2455 .x86_64,
2449 => init("ld.so.1"), // Fuchsia is unusual in that `DT_INTERP` is just a basename.2456 => init("ld.so.1"), // Fuchsia is unusual in that `DT_INTERP` is just a basename.
2450 else => none,2457 else => none,
test/llvm_targets.zig+2
...@@ -52,6 +52,7 @@ const targets = [_]std.Target.Query{...@@ -52,6 +52,7 @@ const targets = [_]std.Target.Query{
52 .{ .cpu_arch = .arm, .os_tag = .freebsd, .abi = .eabihf },52 .{ .cpu_arch = .arm, .os_tag = .freebsd, .abi = .eabihf },
53 .{ .cpu_arch = .arm, .os_tag = .freestanding, .abi = .eabi },53 .{ .cpu_arch = .arm, .os_tag = .freestanding, .abi = .eabi },
54 .{ .cpu_arch = .arm, .os_tag = .freestanding, .abi = .eabihf },54 .{ .cpu_arch = .arm, .os_tag = .freestanding, .abi = .eabihf },
55 .{ .cpu_arch = .arm, .os_tag = .fuchsia, .abi = .eabihf },
55 .{ .cpu_arch = .arm, .os_tag = .haiku, .abi = .eabi },56 .{ .cpu_arch = .arm, .os_tag = .haiku, .abi = .eabi },
56 .{ .cpu_arch = .arm, .os_tag = .haiku, .abi = .eabihf },57 .{ .cpu_arch = .arm, .os_tag = .haiku, .abi = .eabihf },
57 .{ .cpu_arch = .arm, .os_tag = .linux, .abi = .androideabi },58 .{ .cpu_arch = .arm, .os_tag = .linux, .abi = .androideabi },
...@@ -255,6 +256,7 @@ const targets = [_]std.Target.Query{...@@ -255,6 +256,7 @@ const targets = [_]std.Target.Query{
255256
256 .{ .cpu_arch = .thumb, .os_tag = .freestanding, .abi = .eabi },257 .{ .cpu_arch = .thumb, .os_tag = .freestanding, .abi = .eabi },
257 .{ .cpu_arch = .thumb, .os_tag = .freestanding, .abi = .eabihf },258 .{ .cpu_arch = .thumb, .os_tag = .freestanding, .abi = .eabihf },
259 .{ .cpu_arch = .thumb, .os_tag = .fuchsia, .abi = .eabihf },
258 .{ .cpu_arch = .thumb, .os_tag = .linux, .abi = .eabi },260 .{ .cpu_arch = .thumb, .os_tag = .linux, .abi = .eabi },
259 .{ .cpu_arch = .thumb, .os_tag = .linux, .abi = .eabihf },261 .{ .cpu_arch = .thumb, .os_tag = .linux, .abi = .eabihf },
260 .{ .cpu_arch = .thumb, .os_tag = .linux, .abi = .musleabi },262 .{ .cpu_arch = .thumb, .os_tag = .linux, .abi = .musleabi },