{"id":27464786,"url":"https://github.com/alessandro-salerno/ezld","last_synced_at":"2025-04-15T23:15:23.110Z","repository":{"id":287780532,"uuid":"961873853","full_name":"Alessandro-Salerno/ezld","owner":"Alessandro-Salerno","description":"Tiny, simple, and portable ELF linker","archived":false,"fork":false,"pushed_at":"2025-04-14T18:38:32.000Z","size":550,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T23:15:16.551Z","etag":null,"topics":["assembler","assembly","c","cli","elf","elf-parser","elf32","libfuzzer","linker","lowlevel","portable","rars","risc-v","risc-v32","riscv-32","rv32i","static-linker","toolchain"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Alessandro-Salerno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-07T09:51:13.000Z","updated_at":"2025-04-14T18:36:40.000Z","dependencies_parsed_at":"2025-04-13T22:32:35.824Z","dependency_job_id":"62e62d26-b336-4168-842a-a4671d08c91c","html_url":"https://github.com/Alessandro-Salerno/ezld","commit_stats":null,"previous_names":["alessandro-salerno/ezld"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alessandro-Salerno%2Fezld","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alessandro-Salerno%2Fezld/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alessandro-Salerno%2Fezld/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alessandro-Salerno%2Fezld/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Alessandro-Salerno","download_url":"https://codeload.github.com/Alessandro-Salerno/ezld/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249167457,"owners_count":21223508,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assembler","assembly","c","cli","elf","elf-parser","elf32","libfuzzer","linker","lowlevel","portable","rars","risc-v","risc-v32","riscv-32","rv32i","static-linker","toolchain"],"created_at":"2025-04-15T23:15:22.429Z","updated_at":"2025-04-15T23:15:23.104Z","avatar_url":"https://github.com/Alessandro-Salerno.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ⚙️ ezld — Tiny Static ELF Linker\n\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n![Lines of Code](https://tokei.rs/b1/github/Alessandro-Salerno/ezld)\n\n\u003e A tiny, simple, and portable static [Linker](https://en.wikipedia.org/wiki/Linker_(computing)) for the [ELF](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format) format.\n\n---\n\n## 🛠 Features\n- 🔹 Command-line interface for direct usage  \n- 🔹 No OS-specific libc dependency (portable across platforms)  \n- 🔹 Supports section alignment, entry point overrides, and more  \n- 🔹 Usable as a library or standalone binary  \n- 🔹 Designed with simplicity and clarity in mind\n\n---\n\n## 🚀 Usage\n\n```bash\nezld by Alessandro Salerno\nThe EZ ELF Linker\n\nUsage: ezld [\u003ccommand\u003e] [\u003coptions\u003e] [\u003cinput files\u003e]\n\nCOMMANDS:\n    -h, --help         Show this menu\n    -v, --version      Show version information\n\nOPTIONS:\n    -e, --entry-sym    Set the entry point symbol (default: '_start')\n    -s, --section      Set base virtual address for section (e.g., -s .text=0x4000)\n    -a, --align        Set PT_LOAD segment alignment (e.g., -a 0x1000)\n    -o, --output       Set output file path (default: 'a.out')\n```\n\n---\n\n## ⚙️ Building from Source\n\nUse the included `Makefile` to build:\n\n```bash\nmake debug    # Build with debug info, sanitizers, -O0\nmake release  # Build optimized release version\n```\n\n---\n\n## 📦 Installing via tarman\n\nInstall with [`tarman`](https://github.com/Alessandro-Salerno/tarman) from the [tarman user repository](https://github.com/Alessandro-Salerno/tarman-user-repository):\n\n```bash\ntarman install -r ezld\n```\n\n---\n\n## 🌍 Portability\n\n\u003e 💡 **ezld is platform-agnostic.**\n\nThough it links **ELF binaries**, it's designed to run on any host, including:\n- 🐧 UNIX-like systems  \n- 🪟 Windows  \n- 🧪 [SalernOS](https://github.com/Alessandro-Salerno/SalernOS-Kernel)\n\nezld avoids non-standard libc functions, improving portability and making it suitable for low-level projects, OS development, or educational purposes.\n\n---\n\n## 👨‍💻 Project Context\n\nezld was created as part of the [`rarsjs`](https://github.com/Alessandro-Salerno/rarsjs) project. It’s meant to be a **learning tool** and **experimentation ground** for understanding the inner workings of static linking and ELF formats.\n\n---\n\n## ⚖️ License\n\nThis project includes code from:\n- [musl libc](https://musl.libc.org/)\n- [tarman](https://github.com/Alessandro-Salerno/tarman)\n\nezld is licensed under the [MIT License](LICENSE). Third-party code may have distinct copyright.\n\n---\n\n[contributors-shield]: https://img.shields.io/github/contributors/Alessandro-Salerno/ezld.svg?style=flat-square  \n[contributors-url]: https://github.com/Alessandro-Salerno/ezld/graphs/contributors  \n[forks-shield]: https://img.shields.io/github/forks/Alessandro-Salerno/ezld.svg?style=flat-square  \n[forks-url]: https://github.com/Alessandro-Salerno/ezld/network/members  \n[stars-shield]: https://img.shields.io/github/stars/Alessandro-Salerno/ezld.svg?style=flat-square  \n[stars-url]: https://github.com/Alessandro-Salerno/ezld/stargazers  \n[issues-shield]: https://img.shields.io/github/issues/Alessandro-Salerno/ezld.svg?style=flat-square  \n[issues-url]: https://github.com/Alessandro-Salerno/ezld/issues  \n[license-shield]: https://img.shields.io/github/license/Alessandro-Salerno/ezld.svg?style=flat-square  \n[license-url]: https://github.com/Alessandro-Salerno/ezld/blob/master/LICENSE.txt  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falessandro-salerno%2Fezld","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falessandro-salerno%2Fezld","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falessandro-salerno%2Fezld/lists"}