A huge release with more than 250 commits since 0.3.0. We've also had several new contributors, which is awesome.
- Wild now supports aarch64 on Linux (marxin)
- Support for TLSDESC (marxin)
- Linker diff mostly rewritten. Now gives much less false positives and diffs more stuff. (davidlattimore)
- Added support for --sysroot (mati865)
- Added support for --whole-archive (riverbl)
- Added support for -z nocopyreloc (davidlattimore)
- Added support for references to versioned symbols (davidlattimore)
- Added support declaring default symbol versions via '@@' in symbol names (davidlattimore)
- Added support for RELRO (inflation)
- Report errors on undefined symbols (mati865)
- Allow --version to be specified with regular linker arguments (inflation)
- Detect objects built for wrong architecture and report proper error (inflation)
- Keep sections if
__start_/__stop_{SEC}
is referenced. Fixes linkme crate (davidlattimore) - Improved performance of string merging, which affects debug info link time (davidlattimore, marxin)
- Remove unnecessary and unwanted copy relocations (davidlattimore)
- Emit debug symbols for copy relocations (davidlattimore)
- Demangle symbol names in various error messages (davidlattimore, marxin)
- Improve error message when an absolute relocation is used against a read-only section with a relocatable output (davidlattimore)
- Handle initialisers / destructors in .ctors.* / .dtors.* (davidlattimore)
- Added flag --update-in-place (davidlattimore)
- Fixed referenced to merged strings in relocatable binaries (davidlattimore)
- Optimise x86-64 jmp instructions to bypass GOT (mati865)
- Ignore or warn on various flags that we don't yet support (marxin)
- Don't strip
.debug_
sections if they have the alloc flag set (davidlattimore) - Lots of improvements to testing (marxin, mati865, davidlattimore)
- Fixed link error if a shared object had a strong reference to a symbol defined by a discarded archive entry (davidlattimore)
- We should now be publishing to crates.io, so tools like cargo-binstall should work.
- Numerous bugfixes
This release had 581 commits. Since the release notes are being added retrospectively, we just focus on contributions from people other than davidlattimore.
- Added support for linking debug info (marxin)
- Fork on startup so that shut down runs in the background. Override with --no-fork. (andrewdavidmackenzie)
- Refactored to use lower-level APIs from the
object
crate, extending theobject
crate as needed (philipc) - Added support for --build-id (mostafa-khaled775)
- Added support .note.gnu.property (marxin)
- Added support .note.ABI-tag section and NOTE segment (marxin)
- Emit GNU_STACK segment (marxin)
Also added retrospectively.
- First tagged release
- Move most of the linker into a separate lib crate (pinkforest)