Skip to content

Alessandro-Salerno/ezld

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚙️ ezld — Tiny Static ELF Linker

Contributors Forks Stargazers Issues MIT License Lines of Code

A tiny, simple, and portable static Linker for the ELF format.


🛠 Features

  • 🔹 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

🚀 Usage

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')

⚙️ Building from Source

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

📦 Installing via tarman

Install with tarman from the tarman user repository:

tarman install -r ezld

🌍 Portability

💡 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.


👨‍💻 Project Context

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.


⚖️ License

This project includes code from:

ezld is licensed under the MIT License. Third-party code may have distinct copyright.