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