2019-07-18 19:51:05 +08:00
|
|
|
========================
|
2021-07-28 12:51:07 +08:00
|
|
|
lld 14.0.0 Release Notes
|
2019-07-18 19:51:05 +08:00
|
|
|
========================
|
2016-02-16 21:12:55 +08:00
|
|
|
|
|
|
|
.. contents::
|
|
|
|
:local:
|
|
|
|
|
|
|
|
.. warning::
|
2021-07-28 12:51:07 +08:00
|
|
|
These are in-progress notes for the upcoming LLVM 14.0.0 release.
|
2017-02-10 07:27:17 +08:00
|
|
|
Release notes for previous releases can be found on
|
2018-09-10 16:52:31 +08:00
|
|
|
`the Download Page <https://releases.llvm.org/download.html>`_.
|
2016-02-16 21:12:55 +08:00
|
|
|
|
|
|
|
Introduction
|
|
|
|
============
|
|
|
|
|
2021-07-28 12:51:07 +08:00
|
|
|
This document contains the release notes for the lld linker, release 14.0.0.
|
2018-02-23 16:27:38 +08:00
|
|
|
Here we describe the status of lld, including major improvements
|
|
|
|
from the previous release. All lld releases may be downloaded
|
2018-09-10 16:52:31 +08:00
|
|
|
from the `LLVM releases web site <https://llvm.org/releases/>`_.
|
2016-02-16 21:12:55 +08:00
|
|
|
|
|
|
|
Non-comprehensive list of changes in this release
|
|
|
|
=================================================
|
|
|
|
|
|
|
|
ELF Improvements
|
|
|
|
----------------
|
|
|
|
|
2021-08-04 00:01:03 +08:00
|
|
|
* ``--export-dynamic-symbol-list`` has been added.
|
|
|
|
(`D107317 <https://reviews.llvm.org/D107317>`_)
|
2021-09-21 00:52:30 +08:00
|
|
|
* ``--why-extract`` has been added to query why archive members/lazy object files are extracted.
|
|
|
|
(`D109572 <https://reviews.llvm.org/D109572>`_)
|
2021-09-21 00:35:12 +08:00
|
|
|
* ``e_entry`` no longer falls back to the address of ``.text`` if the entry symbol does not exist.
|
|
|
|
Instead, a value of 0 will be written.
|
|
|
|
(`D110014 <https://reviews.llvm.org/D110014>`_)
|
2021-12-14 08:08:18 +08:00
|
|
|
* If ``-Map`` is specified, ``--cref`` will be printed to the specified file.
|
2021-11-30 06:14:53 +08:00
|
|
|
(`D114663 <https://reviews.llvm.org/D114663>`_)
|
2018-09-22 01:48:45 +08:00
|
|
|
|
2021-10-29 08:52:03 +08:00
|
|
|
Architecture specific changes:
|
|
|
|
|
|
|
|
* The x86-32 port now supports TLSDESC (``-mtls-dialect=gnu2``).
|
2021-10-29 09:44:44 +08:00
|
|
|
(`D112582 <https://reviews.llvm.org/D112582>`_)
|
[ELF] Support non-RAX/non-adjacent R_X86_64_GOTPC32_TLSDESC/R_X86_64_TLSDESC_CALL
The current TLSDESC optimization code assumes:
```
leaq x@tlsdesc(%rip), %rax
call *x@tlscall(%rax) # adjacent
```
From https://gitlab.freedesktop.org/mesa/mesa/-/issues/5665 , it seems that the
two instructions may not be adjacent in GCC 10's output:
```
leaq x@tlsdesc(%rip), %rax
something else
call *x@tlscall(%rax)
```
This patch supports the case. While here, support non-RAX registers for
R_X86_64_GOTPC32_TLSDESC, in case the compiler generates inefficient:
```
leaq x@tlsdesc(%rip), %rcx # or %rdx, %rbx, %rdi, ...
movq %rcx, %rax
call *x@tlscall(%rax) # GNU ld/gold error for non-RAX
```
Differential Revision: https://reviews.llvm.org/D114416
2021-11-24 02:30:11 +08:00
|
|
|
* The x86-64 port now handles non-RAX/non-adjacent ``R_X86_64_GOTPC32_TLSDESC``
|
|
|
|
and ``R_X86_64_TLSDESC_CALL`` (``-mtls-dialect=gnu2``).
|
|
|
|
(`D114416 <https://reviews.llvm.org/D114416>`_)
|
2021-11-13 01:47:31 +08:00
|
|
|
* For x86-64, ``--no-relax`` now suppresses ``R_X86_64_GOTPCRELX`` and
|
|
|
|
``R_X86_64_REX_GOTPCRELX`` GOT optimization
|
|
|
|
(`D113615 <https://reviews.llvm.org/D113615>`_)
|
2021-10-29 08:52:03 +08:00
|
|
|
|
2020-05-05 05:42:36 +08:00
|
|
|
Breaking changes
|
|
|
|
----------------
|
|
|
|
|
2021-07-28 12:51:07 +08:00
|
|
|
* ...
|
2020-05-05 05:42:36 +08:00
|
|
|
|
2016-02-16 21:12:55 +08:00
|
|
|
COFF Improvements
|
|
|
|
-----------------
|
|
|
|
|
2019-01-16 18:57:02 +08:00
|
|
|
* ...
|
2018-10-06 03:43:20 +08:00
|
|
|
|
|
|
|
MinGW Improvements
|
|
|
|
------------------
|
|
|
|
|
2019-07-18 19:51:05 +08:00
|
|
|
* ...
|
2018-10-06 03:43:20 +08:00
|
|
|
|
2016-02-16 21:12:55 +08:00
|
|
|
MachO Improvements
|
|
|
|
------------------
|
|
|
|
|
|
|
|
* Item 1.
|
2018-11-15 08:37:21 +08:00
|
|
|
|
|
|
|
WebAssembly Improvements
|
|
|
|
------------------------
|
|
|
|
|