Skip to content

Latest commit

 

History

History
34 lines (26 loc) · 1006 Bytes

README.md

File metadata and controls

34 lines (26 loc) · 1006 Bytes

master

linkerloader-rs

Simple Linker/Loader implementation in Rust (John R. Levine book exercises)

This project is purely an exercise to understand how linkers and loaders work.

Module objects consist entirely of lines of ASCII text. This makes it possible to create sample object files in a text editor, as well as making it easier to check the output files from the project.

Supported features:

  • Object parsers
  • Object linking
  • Object (De)Serialization
  • Static libraries (both: directory and single file format)
  • Relocations (A4, R4, AS4, RS4, U2, L2)
  • Routine/symbol wrapping
  • Position-independent code (GA4, GP4, GR4, ER4)
  • Statically linked shared libraries

TODO:

  • cli interface
  • Implement static library (dirlib) editing: add, delete, replace modules
  • Implement static library (filelib) editing: add, delete, replace modules

Build:

cargo build

Test:

cargo test