summaryrefslogtreecommitdiff
path: root/lld/docs/ReleaseNotes.rst
diff options
context:
space:
mode:
Diffstat (limited to 'lld/docs/ReleaseNotes.rst')
-rw-r--r--lld/docs/ReleaseNotes.rst84
1 files changed, 62 insertions, 22 deletions
diff --git a/lld/docs/ReleaseNotes.rst b/lld/docs/ReleaseNotes.rst
index 5be348bb1894c..724c0097a9499 100644
--- a/lld/docs/ReleaseNotes.rst
+++ b/lld/docs/ReleaseNotes.rst
@@ -5,10 +5,6 @@ lld 10.0.0 Release Notes
.. contents::
:local:
-.. warning::
- These are in-progress notes for the upcoming LLVM 10.0.0 release.
- Release notes for previous releases can be found on
- `the Download Page <https://releases.llvm.org/download.html>`_.
Introduction
============
@@ -33,51 +29,95 @@ ELF Improvements
* New ``elf32btsmipn32_fbsd`` and ``elf32ltsmipn32_fbsd`` emulations
are supported.
-* Relax MIPS ``jalr``and ``jr`` instructions marked by the ``R_MIPS_JALR``
+* Relax MIPS ``jalr`` and ``jr`` instructions marked by the ``R_MIPS_JALR``
relocation.
+* For certain "undefined symbol" errors, a definition with a close spelling will be suggested.
+ (`D67039 <https://reviews.llvm.org/D67039>`_)
+* ``extern "C"`` is suggested if an undefined reference is mangled(unmangled) while there
+ is a likely unmangled(mangled) definition.
+ (`D69592 <https://reviews.llvm.org/D69592>`_ `D69650 <https://reviews.llvm.org/D69650>`_)
+* New ``-z noseparate-code``, ``-z separate-code`` and ``-z separate-loadable-segments``.
+ ``-z noseparate-code`` is the default, which can reduce sizes of linked binaries by up to
+ 3 times maxpagesize.
+ (`D64903 <https://reviews.llvm.org/D64903>`_ `D67481 <https://reviews.llvm.org/D67481>`_)
+* ``-z force-bti`` and ``-z pac-plt`` are added for AArch64 Branch Target Identification and Pointer Authentication.
+ (`D62609 <https://reviews.llvm.org/D62609>`_)
+* ``--fix-cortex-a8`` is added to fix erratum 657417.
+ (`D67284 <https://reviews.llvm.org/D67284>`_)
+* ``-z force-ibt`` and ``-z shstk`` are added for Intel Control-flow Enforcement Technology.
+ (`D59780 <https://reviews.llvm.org/D59780>`_)
+* ``PT_GNU_PROPERTY`` is added to help loaders locate the ``.note.gnu.property`` section.
+ It may be used by a future Linux kernel.
+ (`D70961 <https://reviews.llvm.org/D70961>`_)
+* For ``--compress-debug-sections=zlib``, ``-O0`` and ``-O1`` enable compression level 1
+ while ``-O2`` enables compression level 6. ``-O1`` (default) is faster than before.
+ (`D70658 <https://reviews.llvm.org/D70658>`_)
+* Range extension thunks with addends are implemented for AArch64, PowerPC32 and PowerPC64.
+ (`D70637 <https://reviews.llvm.org/D70637>`_ `D70937 <https://reviews.llvm.org/D70937>`_
+ `D73424 <https://reviews.llvm.org/D73424>`_)
+* ``R_RISCV_ALIGN`` will be errored because linker relaxation for RISC-V is not supported.
+ Pass ``-mno-relax`` to disable ``R_RISCV_ALIGN``.
+ (`D71820 <https://reviews.llvm.org/D71820>`_)
+* The ARM port will no longer insert interworking thunks for non STT_FUNC symbols.
+ (`D73474 <https://reviews.llvm.org/D73474>`_)
+* The quality of PowerPC32 port has been greatly improved (canonical PLT, copy
+ relocations, non-preemptible IFUNC, range extension thunks with addends).
+ It can link FreeBSD 13.0 userland.
+* The PowerPC64 port supports non-preemptible IFUNC.
+ (`D71509 <https://reviews.llvm.org/D71509>`_)
+* lld creates a RO PT_LOAD and a RX PT_LOAD without a linker script.
+ lld creates a unified RX PT_LOAD with a linker script.
+ A future release will eliminate this difference and use a RO PT_LOAD and a RX PT_LOAD by default.
+ The linker script case will require ``--no-rosegment`` to restore the current behavior.
+* GNU style compressed debug sections ``.zdebug`` (obsoleted by ``SHF_COMPRESSED``)
+ are supported for input files, but not for the output.
+ A future release may drop ``.zdebug`` support.
-* Reduced size of linked MIPS binaries.
+Breaking changes
+----------------
-COFF Improvements
------------------
+* ``-Ttext=$base`` (base is usually 0) is no longer supported.
+ If PT_PHDR is needed, use ``--image-base=$base`` instead.
+ If PT_PHDR is not needed, use a linker script with `.text 0 : { *(.text*) }` as the first
+ output section description.
+ See https://bugs.llvm.org/show_bug.cgi?id=44715 for more information.
+ (`D67325 <https://reviews.llvm.org/D67325>`_)
+* ``-Ttext-segment`` is no longer supported. Its meaning was different from GNU ld's and
+ could cause subtle bugs.
+ (`D70468 <https://reviews.llvm.org/D70468>`_)
-* ...
MinGW Improvements
------------------
* Allow using custom .edata sections from input object files (for use
by Wine)
- (`dadc6f248868 <https://reviews.llvm.org/rGdadc6f248868>`)
+ (`dadc6f248868 <https://reviews.llvm.org/rGdadc6f248868>`_)
* Don't implicitly create import libraries unless requested
- (`6540e55067e3 <https://reviews.llvm.org/rG6540e55067e3>`)
+ (`6540e55067e3 <https://reviews.llvm.org/rG6540e55067e3>`_)
* Support merging multiple resource object files
- (`3d3a9b3b413d <https://reviews.llvm.org/rG3d3a9b3b413d>`)
+ (`3d3a9b3b413d <https://reviews.llvm.org/rG3d3a9b3b413d>`_)
and properly handle the default manifest object files that GCC can pass
- (`d581dd501381 <https://reviews.llvm.org/rGd581dd501381>`)
+ (`d581dd501381 <https://reviews.llvm.org/rGd581dd501381>`_)
* Demangle itanium symbol names in warnings/error messages
- (`a66fc1c99f3e <https://reviews.llvm.org/rGa66fc1c99f3e>`)
+ (`a66fc1c99f3e <https://reviews.llvm.org/rGa66fc1c99f3e>`_)
* Print source locations for undefined references and duplicate symbols,
if possible
- (`1d06d48bb346 <https://reviews.llvm.org/rG1d06d48bb346>`)
+ (`1d06d48bb346 <https://reviews.llvm.org/rG1d06d48bb346>`_)
and
- (`b38f577c015c <https://reviews.llvm.org/rGb38f577c015c>`)
+ (`b38f577c015c <https://reviews.llvm.org/rGb38f577c015c>`_)
* Look for more filename patterns when resolving ``-l`` options
- (`0226c35262df <https://reviews.llvm.org/rG0226c35262df>`)
+ (`0226c35262df <https://reviews.llvm.org/rG0226c35262df>`_)
* Don't error out on duplicate absolute symbols with the same value
(which can happen for the default-null symbol for weak symbols)
- (`1737cc750c46 <https://reviews.llvm.org/rG1737cc750c46>`)
-
-MachO Improvements
-------------------
+ (`1737cc750c46 <https://reviews.llvm.org/rG1737cc750c46>`_)
-* Item 1.
WebAssembly Improvements
------------------------