# davidlattimore/wild

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/davidlattimore-wild).**

3,356 stars · 99 forks · Rust · apache-2.0

## Links

- GitHub: https://github.com/davidlattimore/wild
- awesome-repositories: https://awesome-repositories.com/repository/davidlattimore-wild.md

## Description

Wild is a binary linker and compiler integration tool used to merge multiple object files into single executable binaries, shared libraries, or static archives. It functions as a replacement for standard system linkers, automating the final stage of the compilation process to generate binaries across different operating system architectures.

The project provides custom binary linking and toolchain integration, allowing for the modification of how compilers resolve symbols and determine memory layouts. It specifically handles the organization of machine code and data sections to meet the requirements of specific CPUs and operating systems.

Its capabilities cover low-level memory mapping and symbol-based address resolution to ensure correct runtime execution. The tool also supports the creation of static archives by combining compiled translation units into libraries for use as dependencies.

## Tags

### Operating Systems & Systems Programming

- [Binary Linking](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-linking.md) — Merges multiple object files into executable binaries or shared libraries across different operating system architectures. ([source](https://github.com/davidlattimore/wild#readme))
- [Architecture-Specific Binary Packing](https://awesome-repositories.com/f/operating-systems-systems-programming/architecture-specific-binary-packing.md) — Organizes machine code and data sections into memory layouts that conform to specific CPU and OS requirements.
- [Binary Linkers](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-linkers.md) — A tool for resolving symbols and managing memory layouts to merge multiple object files into a single binary.
- [Binary Memory Mapping](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-memory-mapping.md) — Determines the exact placement of code and data segments within the final binary to ensure correct runtime execution.
- [Custom Binary Linking](https://awesome-repositories.com/f/operating-systems-systems-programming/custom-binary-linking.md) — Merges compiled object files into executables or libraries while controlling the exact memory layout and symbol resolution.
- [Universal Binary Linking](https://awesome-repositories.com/f/operating-systems-systems-programming/multi-architecture-support/universal-binary-linking.md) — Combines multiple object files into a single executable or shared library for specific operating system architectures.
- [Object-File Merging](https://awesome-repositories.com/f/operating-systems-systems-programming/object-file-merging.md) — Combines multiple compiled translation units into a single executable binary or static archive for final distribution.
- [Static Archive Creation](https://awesome-repositories.com/f/operating-systems-systems-programming/static-archive-creation.md) — Combines multiple compiled translation units into static libraries to be used as dependencies in other software projects.

### Programming Languages & Runtimes

- [Linkers](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/linkers.md) — Implements a binary linker that combines object files into executable binaries and libraries for various architectures.
- [Linker-Stage Customization](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-toolchain-development/linker-stage-customization.md) — Modifies the final stage of the compilation process to control memory layout and symbol resolution.
- [Alternative Compiler Integrations](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-toolchains/alternative-compiler-integrations.md) — Replaces standard linkers during the compilation process to automate the creation of final binary files. ([source](https://github.com/davidlattimore/wild#readme))
- [Linker-Shim Proxying](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/linkers/linker-shim-proxying.md) — Intercepts calls from compiler toolchains by masquerading as a standard linker to automate the binary generation process.
- [Linker-Replacement Integrations](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-toolchain-integrations/linker-replacement-integrations.md) — Replaces standard system linkers to automate how compilers generate final binaries for specific operating system architectures.

### Data & Databases

- [Static Binary Archives](https://awesome-repositories.com/f/data-databases/archive-storage/binary-object-archiving/static-binary-archives.md) — Provides the capability to merge compiled translation units into static archives used as software dependencies.

### Software Engineering & Architecture

- [Symbol-To-Address Mapping](https://awesome-repositories.com/f/software-engineering-architecture/reference-management/symbolic-reference-tracing/symbol-to-address-mapping.md) — Matches symbol names across multiple object files to calculate the precise memory addresses for executable calls.

### Development Tools & Productivity

- [Linker Integration Logic](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/build-systems/binary-compilation-toolchains/native-binary-toolchains/linker-integration-logic.md) — Replaces standard system linkers through compiler path flags to control how the final binary is constructed.
- [Linker Integration Tools](https://awesome-repositories.com/f/development-tools-productivity/compilation-tooling/linker-integration-tools.md) — A replacement for standard linkers that automates the binary creation process when called by a compiler.
