aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2018-02-23 08:36:10 +0000
committerHans Wennborg <hans@hanshq.net>2018-02-23 08:36:10 +0000
commit8a2cebe272f1f63741311902d62d148b6129d5b9 (patch)
treeff51543b6c57ee2f88c69ed346c2029d42130114
parentf1706f29e6daa000c398ea2e1f836ce543872b16 (diff)
downloadllvm-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.rst69
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``.