A tiny, simple, and portable static Linker for the ELF format.
- 🔹 Command-line interface for direct usage
- 🔹 No OS-specific libc dependency (portable across platforms)
- 🔹 Supports section alignment, entry point overrides, and more
- 🔹 Usable as a library or standalone binary
- 🔹 Designed with simplicity and clarity in mind
ezld by Alessandro Salerno
The EZ ELF Linker
Usage: ezld [<command>] [<options>] [<input files>]
COMMANDS:
-h, --help Show this menu
-v, --version Show version information
OPTIONS:
-e, --entry-sym Set the entry point symbol (default: '_start')
-s, --section Set base virtual address for section (e.g., -s .text=0x4000)
-a, --align Set PT_LOAD segment alignment (e.g., -a 0x1000)
-o, --output Set output file path (default: 'a.out')
Use the included Makefile
to build:
make debug # Build with debug info, sanitizers, -O0
make release # Build optimized release version
make library # Build as a static library
Install with tarman
from the tarman user repository:
tarman install -r ezld
💡 ezld is platform-agnostic.
Though it links ELF binaries, it's designed to run on any host, including:
- 🐧 UNIX-like systems
- 🪟 Windows
- 🧪 SalernOS
ezld avoids non-standard libc functions, improving portability and making it suitable for low-level projects, OS development, or educational purposes.
ezld was created as part of the rarsjs
project. It’s meant to be a learning tool and experimentation ground for understanding the inner workings of static linking and ELF formats.
This project includes code from:
ezld is licensed under the MIT License. Third-party code may have distinct copyright.