kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

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 };