mirror of
https://github.com/powdr-labs/powdr.git
synced 2026-04-20 03:03:25 -04:00
There are many advantages in using standard assemblers and linkers, like: - maturity; - more complete support of assembly language, which in turn allows for support to more high level languages and compilers; - link-time optimizations; - no need to deal with language edge cases (our assembler and linker deals with a number of rust stuff, but it would need even more to support `std`). But it comes with a cost, as we need to lift references to text data back into labels, (because powdr operates on a higher abstraction level), and to do that, we need the ELF file to either be a PIE (Position Independent Executable), or to still have the linkage relocation tables (option `--emit-relocs` of GNU and LLVM linkers). --------- Co-authored-by: Leo Alt <leo@ethereum.org> Co-authored-by: Leo <leo@powdrlabs.com>