diff options
author | Rui Ueyama <ruiu@google.com> | 2018-09-11 02:14:11 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2018-09-11 02:14:11 +0000 |
commit | 39b75e9e84d1a8a38ec92e69e83584bdd4a7ecf3 (patch) | |
tree | 863886408c57b11809ef0eb60411622afd8b64b3 | |
parent | 78bdb22298f34ce232bc4ff89f6ae2566dcfe18a (diff) | |
download | llvm-39b75e9e84d1a8a38ec92e69e83584bdd4a7ecf3.zip llvm-39b75e9e84d1a8a38ec92e69e83584bdd4a7ecf3.tar.gz llvm-39b75e9e84d1a8a38ec92e69e83584bdd4a7ecf3.tar.bz2 |
Update release notes for lld 7.0.
llvm-svn: 341890
-rw-r--r-- | lld/docs/ReleaseNotes.rst | 79 |
1 files changed, 70 insertions, 9 deletions
diff --git a/lld/docs/ReleaseNotes.rst b/lld/docs/ReleaseNotes.rst index 535b7ee..f1ae131 100644 --- a/lld/docs/ReleaseNotes.rst +++ b/lld/docs/ReleaseNotes.rst @@ -8,10 +8,16 @@ LLD 7.0.0 Release Notes Introduction ============ -This document contains the release notes for the lld linker, release 7.0.0. -Here we describe the status of lld, including major improvements -from the previous release. All lld releases may be downloaded -from the `LLVM releases web site <https://llvm.org/releases/>`_. +lld is a high-performance linker that supports ELF (Unix), COFF (Windows), +Mach-O (macOS), MinGW and WebAssembly. lld is command-line-compatible with GNU +linkers and Microsoft link.exe, and is significantly faster than these system +default linkers. + +lld 7.0 for ELF and COFF are production-ready. lld/ELF can build the entire +FreeBSD/AMD64 and will be the default linker of the next version of the +operating system. lld/COFF is being used to build popular large programs such as +Chrome web browser. Mach-O, MinGW and WebAssembly supports are still +experimental. Non-comprehensive list of changes in this release ================================================= @@ -19,15 +25,61 @@ Non-comprehensive list of changes in this release ELF Improvements ---------------- -* lld is now able to overcome MIPS GOT entries number limitation - and generate multi-GOT if necessary. +* Fixed a lot of long-tail compatibility issues with GNU linkers. + +* Added ``-z retpolineplt`` to emit a PLT entry that doesn't contain an indirect + jump instruction to mitigate Spectre v2 vulnerability. + +* Added experimental support for `SHT_RELR sections + <https://groups.google.com/forum/#!topic/generic-abi/bX460iggiKg>` to create a + compact dynamic relocation table. + +* Added support for `split stacks <https://gcc.gnu.org/wiki/SplitStacks>`. + +* Added support for address significance table (section with type + SHT_LLVM_ADDRSIG) to improve Identical Code Folding (ICF). Combined with the + ``-faddrsig`` compiler option added to Clang 7.0, lld's ``--icf=all`` can now + safely merge functions and data to generate smaller outputs than before. + +* Improved ``--gdb-index`` so that it is faster (`r336790 + <https://reviews.llvm.org/rL336790>`) and uses less memory (`r336672 + <https://reviews.llvm.org/rL336672>`). + +* Reduced memory usage of ``--compress-debug-sections`` (`r338913 + <https://reviews.llvm.org/rL338913>`). + +* Added linker script OVERLAY support (`r335714 <https://reviews.llvm.org/rL335714>`). + +* Added ``--warn-backref`` to make it easy to identify command line option order + that doesn't work with GNU linkers (`r329636 <https://reviews.llvm.org/rL329636>`) -* lld is now able to produce MIPS position-independent executable (PIE). +* Added ld.lld.1 man page (`r324512 <https://reviews.llvm.org/rL324512>`). + +* Added support for multi-GOT. + +* Added support for MIPS position-independent executable (PIE). * Fixed MIPS TLS GOT entries for local symbols in shared libraries. -* Fixed calculation of MIPS GP relative relocations - in case of relocatable output. +* Fixed calculation of MIPS GP relative relocations in case of relocatable + output. + +* Added support for PPCv2 ABI. + +* Removed an incomplete support of PPCv1 ABI. + +* Added support for Qualcomm Hexagon ISA. + +* Added the following flags: ``--apply-dynamic-relocs``, ``--check-sections``, + ``--cref``, ``--just-symbols``, ``--keep-unique``, + ``--no-allow-multiple-definition``, ``--no-apply-dynamic-relocs``, + ``--no-check-sections``, ``--no-gnu-unique, ``--no-pic-executable``, + ``--no-undefined-version``, ``--no-warn-common``, ``--pack-dyn-relocs=relr``, + ``--pop-state``, ``--print-icf-sections``, ``--push-state``, + ``--thinlto-index-only``, ``--thinlto-object-suffix-replace``, + ``--thinlto-prefix-replace``, ``--warn-backref``, ``-z combreloc``, ``-z + copyreloc``, ``-z initfirst``, ``-z keep-text-section-prefix``, ``-z lazy``, + ``-z noexecstack``, ``-z relro``, ``-z retpolineplt``, ``-z text`` COFF Improvements ----------------- @@ -39,3 +91,12 @@ COFF Improvements * Added support for outputting PDB debug info for MinGW targets. * Improved compatibility of output binaries with GNU binutils objcopy/strip. + +* Sped up PDB file creation. + +* Changed section layout to improve compatibility with link.exe. + +* Added the following flags: ``--color-diagnostics={always,never,auto}``, + ``--no-color-diagnostics``, ``/brepro``, ``/debug:full``, ``/debug:ghash``, + ``/guard:cf``, ``/guard:longjmp``, ``/guard:nolongjmp``, ``/integritycheck``, + ``/order``, ``/pdbsourcepath``, ``/timestamp`` |