xref: /freebsd/contrib/llvm-project/lld/docs/ReleaseNotes.rst (revision fcaf7f8644a9988098ac6be2165bce3ea4786e91)
1===========================
2lld |release| Release Notes
3===========================
4
5.. contents::
6    :local:
7
8.. only:: PreRelease
9
10  .. warning::
11     These are in-progress notes for the upcoming LLVM |release| release.
12     Release notes for previous releases can be found on
13     `the Download Page <https://releases.llvm.org/download.html>`_.
14
15Introduction
16============
17
18This document contains the release notes for the lld linker, release |release|.
19Here we describe the status of lld, including major improvements
20from the previous release. All lld releases may be downloaded
21from the `LLVM releases web site <https://llvm.org/releases/>`_.
22
23Non-comprehensive list of changes in this release
24=================================================
25
26ELF Improvements
27----------------
28
29* ``-z pack-relative-relocs`` is now available to support ``DT_RELR`` for glibc 2.36+.
30  (`D120701 <https://reviews.llvm.org/D120701>`_)
31* ``--no-fortran-common`` (pre 12.0.0 behavior) is now the default.
32* ``FORCE_LLD_DIAGNOSTICS_CRASH`` environment variable is now available to force LLD to crash.
33  (`D128195 <https://reviews.llvm.org/D128195>`_)
34
35Breaking changes
36----------------
37
38* The GNU ld incompatible ``--no-define-common`` has been removed.
39* The obscure ``-dc``/``-dp`` options have been removed.
40* ``-d`` is now ignored.
41* If a prevailing COMDAT group defines STB_WEAK symbol, having a STB_GLOBAL symbol in a non-prevailing group is now rejected with a diagnostic.
42  (`D120626 <https://reviews.llvm.org/D120626>`_)
43* Support for the legacy ``.zdebug`` format has been removed. Run
44  ``objcopy --decompress-debug-sections`` in case old object files use ``.zdebug``.
45  (`D126793 <https://reviews.llvm.org/D126793>`_)
46* ``--time-trace-file=<file>`` has been removed.
47  Use ``--time-trace=<file>`` instead.
48  (`D128451 <https://reviews.llvm.org/D128451>`_)
49
50COFF Improvements
51-----------------
52
53* Added autodetection of MSVC toolchain, a la clang-cl.  Also added
54  ``/winsysroot:`` support for explicit specification of MSVC toolchain
55  location, similar to clang-cl's ``/winsysroot``. For now,
56  ``/winsysroot:`` requires also passing in an explicit ``/machine:`` flag.
57  (`D118070 <https://reviews.llvm.org/D118070>`_)
58* ...
59
60MinGW Improvements
61------------------
62
63* ...
64
65MachO Improvements
66------------------
67
68* We now support proper relocation and pruning of EH frames. **Note:** this
69  comes at some performance overhead on x86_64 builds, and we recommend adding
70  the ``-femit-compact-unwind=no-compact-unwind`` compile flag to avoid it.
71  (`D129540 <https://reviews.llvm.org/D129540>`_,
72  `D122258 <https://reviews.llvm.org/D122258>`_)
73
74WebAssembly Improvements
75------------------------
76
77