summaryrefslogtreecommitdiff
path: root/docs/ReleaseNotes.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ReleaseNotes.rst')
-rw-r--r--docs/ReleaseNotes.rst60
1 files changed, 48 insertions, 12 deletions
diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst
index c02cc586c795..0bebfb3fb1ce 100644
--- a/docs/ReleaseNotes.rst
+++ b/docs/ReleaseNotes.rst
@@ -13,10 +13,12 @@ lld 8.0.0 Release Notes
Introduction
============
-This document contains the release notes for the lld linker, release 8.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 the
+system default linkers.
+
+nlld 8.0.0 has lots of feature improvements and bug fixes.
Non-comprehensive list of changes in this release
=================================================
@@ -33,27 +35,66 @@ ELF Improvements
non-superpages to a superpage if they are aligned to the superpage
size. (`r342746 <https://reviews.llvm.org/rL342746>`_)
+* lld now attempts to place a ``.note`` segment in the first page of a
+ generated file, so that you can find some important information
+ (``.note.gnu.build-id`` in particular) in a core file even if a core
+ file is truncated by ulimit.
+ (`r349524 <https://reviews.llvm.org/rL349524>`_)
+
+* lld now reports an error if ``_GLOBAL_OFFSET_TABLE_`` symbol is
+ defined by an input object file, as the symbol is supposed to be
+ synthesized by the linker.
+ (`r347854 <https://reviews.llvm.org/rL347854>`_)
+
* lld/Hexagon can now link Linux kernel and musl libc for Qualcomm
Hexagon ISA.
* Initial MSP430 ISA support has landed.
-* The following flags have been added: ``-z interpose``, ``-z global``
-
* lld now uses the ``sigrie`` instruction as a trap instruction for
MIPS targets.
+* lld now creates a TLS segment for AArch64 with a slightly larger
+ alignment requirement, so that the loader makes a few bytes room
+ before each TLS segment at runtime. The aim of this change is to
+ make room to accomodate nonstandard Android TLS slots while keeping
+ the compatibility with the standard AArch64 ABI.
+ (`r350681 <https://reviews.llvm.org/rL350681>`_)
+
+* The following flags have been added: ``--call-graph-profile``,
+ ``--no-call-graph-profile``, ``--warn-ifunc-textrel``,
+ ``-z interpose``, ``-z global``, ``-z nodefaultlib``
+
COFF Improvements
-----------------
* PDB GUID is set to hash of PDB contents instead to a random byte
sequence for build reproducibility.
+* ``/pdbsourcepath:`` is now also used to make ``"cwd"``, ``"exe"``, ``"pdb"``
+ in the env block of PDB outputs absolute if they are relative, and to make
+ paths to obj files referenced in PDB outputs absolute if they are relative.
+ Together with the previous item, this makes it possible to generate
+ executables and PDBs that are fully deterministic and independent of the
+ absolute path to the build directory, so that different machines building
+ the same code in different directories can produce exactly the same output.
+
* The following flags have been added: ``/force:multiple``
* lld now can link against import libraries produced by GNU tools.
-* lld can create thunks for ARM, to allow linking images over 16 MB.
+* lld can create thunks for ARM and ARM64, to allow linking larger images
+ (over 16 MB for ARM and over 128 MB for ARM64)
+
+* Several speed and memory usage improvements.
+
+* lld now creates debug info for typedefs.
+
+* lld can now link obj files produced by ``cl.exe /Z7 /Yc``.
+
+* lld now understands ``%_PDB%`` and ``%_EXT%`` in ``/pdbaltpath:``.
+
+* Undefined symbols are now printed in demangled form in addition to raw form.
MinGW Improvements
------------------
@@ -76,11 +117,6 @@ MinGW Improvements
Previously, the ``--build-id`` option did not actually generate a build id
unless ``--pdb`` was specified.
-MachO Improvements
-------------------
-
-* Item 1.
-
WebAssembly Improvements
------------------------