link.c (896B)
1 /* ARM32 link-time arch descriptor. See link_arch.h for the contract. 2 * 3 * Static-only for v1: no PLT/GOT/IPLT, no dynamic linking (mirrors rv32's 4 * freestanding decision). ELF TLS is variant I (TCB ahead of .tdata), so 5 * tls_variant_ii = 0 (the struct's zero-init default). The only live fields 6 * are the per-arch reloc descriptor + the Thumb-2 split-immediate patcher; 7 * everything else (PLT geometry, stub emitters, JIT relax) is zero/NULL. */ 8 #include "core/core.h" 9 #include "link/link_arch.h" 10 11 /* Defined in src/arch/arm32/reloc.c. */ 12 const RelocDesc* arm32_reloc_desc(RelocKind k); 13 int arm32_reloc_apply_insn(Compiler* c, RelocKind k, u8* P_bytes, u64 S, i64 A, 14 u64 P); 15 16 const LinkArchDesc link_arch_arm32 = { 17 .reloc_desc = arm32_reloc_desc, 18 .reloc_apply_insn = arm32_reloc_apply_insn, 19 /* .tls_variant_ii = 0 (variant I) — implicit zero. */ 20 };