diff options
author | Hans Wennborg <hans@hanshq.net> | 2018-02-23 08:36:10 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2018-02-23 08:36:10 +0000 |
commit | 8a2cebe272f1f63741311902d62d148b6129d5b9 (patch) | |
tree | ff51543b6c57ee2f88c69ed346c2029d42130114 | |
parent | f1706f29e6daa000c398ea2e1f836ce543872b16 (diff) | |
download | llvm-8a2cebe272f1f63741311902d62d148b6129d5b9.zip llvm-8a2cebe272f1f63741311902d62d148b6129d5b9.tar.gz llvm-8a2cebe272f1f63741311902d62d148b6129d5b9.tar.bz2 |
Add more items to lld 6.0 release note
By Rui Ueyama!
Differential Revision: https://reviews.llvm.org/D43670
llvm-svn: 325871
-rw-r--r-- | lld/docs/ReleaseNotes.rst | 69 |
1 files changed, 47 insertions, 22 deletions
diff --git a/lld/docs/ReleaseNotes.rst b/lld/docs/ReleaseNotes.rst index fb9cd49..d07ce1c 100644 --- a/lld/docs/ReleaseNotes.rst +++ b/lld/docs/ReleaseNotes.rst @@ -8,9 +8,9 @@ LLD 6.0.0 Release Notes Introduction ============ -This document contains the release notes for the LLD linker, release 6.0.0. -Here we describe the status of LLD, including major improvements -from the previous release. All LLD releases may be downloaded +This document contains the release notes for the lld linker, release 6.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 <http://llvm.org/releases/>`_. Non-comprehensive list of changes in this release @@ -19,40 +19,64 @@ Non-comprehensive list of changes in this release ELF Improvements ---------------- -* MIPS port now generates all output dynamic relocations - using Elf_Rel format only. +* A lot of bugs and compatibility issues have been identified and fixed as a + result of people using lld 5.0 as a standard system linker. In particular, + linker script and version script support has significantly improved that + it should be able to handle almost all scripts. -* Added handling of the R_MIPS_26 relocation in case of N32 / N64 ABIs - and generating proper PLT entries. +* A mitigation for Spectre v2 has been implemented. If you pass ``-z + retpolineplt``, lld uses RET instruction instead of JMP instruction in PLT. + The option is available for x86 and x86-64. -* lld can patch Aarch64 errata 843419. +* Identical Code Folding (ICF) now de-duplicates .eh_frame entries, so lld now + generates slightly smaller outputs than before when you pass ``--icf=all``. -* lld can generate thunks for out of range thunks. +* Analysis for ``--as-needed`` is now done after garbage collection. If garbage + collector eliminates all sections that use some library, that library is + eliminated from DT_NEEDED tags. Previously, the analysis ran before garbage + collection. -* ARM PLT entries automatically use short or long variants. +* Size of code segment is now always rounded up to page size to make sure that + unused bytes at end of code segment is filled with trap instructions (such + as INT3) instead of zeros. + +* lld is now able to generate Android-style compact dynamic relocation table. + You can turn on the feature by passing ``--pack-dyn-relocs=android``. + +* Debug information is used in more cases when reporting errors. -* Lots of bug fixes. Should be able to handle almost all linker and version scripts. +* ``--gdb-index`` gets faster than before. -* Faster gdb index creation. +* String merging is now multi-threaded, which makes ``-O2`` faster. -* Tar files created by --reproduce now work even in the presence of absolute paths. +* ``--hash-style=both`` is now default instead of ``--hash-style=sysv`` to + match the behavior of recent versions of GNU linkers. + +* ARM PLT entries automatically use short or long variants. -* lld defaults to --hash-style=both. +* lld can now identify and patch a code sequence that triggers AArch64 errata 843419. + Add ``--fix-cortex-a53-843419`` to enable the feature. -* ICF now deduplicates .eh_frame entries. +* lld can now generate thunks for out of range thunks. -* LLD supports the Android relocation packing format. +* MIPS port now generates all output dynamic relocations using Elf_Rel format only. -* Debug info is used in more cases when reporting errors. +* Added handling of the R_MIPS_26 relocation in case of N32/N64 ABIs and + generating proper PLT entries. -* LLD can produce x86/x86_64 PLTs that use retpolines. +* The following options have been added: ``--icf=none`` ``-z muldefs`` + ``--plugin-opt`` ``--no-eh-frame-hdr`` ``--no-gdb-index`` + ``--orphan-handling={place,discard,warn,error}`` + ``--pack-dyn-relocs={none,android}`` ``--no-omagic`` + ``--no-print-gc-sections`` ``--ignore-function-address-equality`` ``-z + retpolineplt`` ``--print-icf-sections`` ``--no-pie`` COFF Improvements ----------------- * A GNU ld style frontend for the COFF linker has been added for MinGW. In MinGW environments, the linker is invoked with GNU ld style parameters; - which LLD previously only supported when used as an ELF linker. When + which lld previously only supported when used as an ELF linker. When a PE/COFF target is chosen, those parameters are rewritten into the lld-link style parameters and the COFF linker is invoked instead. @@ -68,7 +92,8 @@ COFF Improvements * Only write ``.manifest`` files if ``/manifest`` is passed. -MachO Improvements ------------------- +WebAssembly Improvements +------------------------ -* Item 1. +* Initial version of WebAssembly support has landed. You can invoke the + WebAssembly linker by ``wasm-ld``. |