]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/lld/docs/ReleaseNotes.rst
Merge ^/vendor/llvm-project/release-10.x up to its last change (upstream
[FreeBSD/FreeBSD.git] / contrib / llvm-project / lld / docs / ReleaseNotes.rst
1 ========================
2 lld 10.0.0 Release Notes
3 ========================
4
5 .. contents::
6     :local:
7
8 .. warning::
9    These are in-progress notes for the upcoming LLVM 10.0.0 release.
10    Release notes for previous releases can be found on
11    `the Download Page <https://releases.llvm.org/download.html>`_.
12
13 Introduction
14 ============
15
16 This document contains the release notes for the lld linker, release 10.0.0.
17 Here we describe the status of lld, including major improvements
18 from the previous release. All lld releases may be downloaded
19 from the `LLVM releases web site <https://llvm.org/releases/>`_.
20
21 Non-comprehensive list of changes in this release
22 =================================================
23
24 ELF Improvements
25 ----------------
26
27 * Glob pattern, which you can use in linker scripts or version scripts,
28   now supports `\` and `[!...]`. Except character classes
29   (e.g. `[[:digit:]]`), lld's glob pattern should be fully compatible
30   with GNU now. (`r375051
31   <https://github.com/llvm/llvm-project/commit/48993d5ab9413f0e5b94dfa292a233ce55b09e3e>`_)
32
33 * New ``elf32btsmipn32_fbsd`` and ``elf32ltsmipn32_fbsd`` emulations
34   are supported.
35
36 * Relax MIPS ``jalr``and ``jr`` instructions marked by the ``R_MIPS_JALR``
37   relocation.
38
39 * Reduced size of linked MIPS binaries.
40
41 COFF Improvements
42 -----------------
43
44 * ...
45
46 MinGW Improvements
47 ------------------
48
49 * Allow using custom .edata sections from input object files (for use
50   by Wine)
51   (`dadc6f248868 <https://reviews.llvm.org/rGdadc6f248868>`)
52
53 * Don't implicitly create import libraries unless requested
54   (`6540e55067e3 <https://reviews.llvm.org/rG6540e55067e3>`)
55
56 * Support merging multiple resource object files
57   (`3d3a9b3b413d <https://reviews.llvm.org/rG3d3a9b3b413d>`)
58   and properly handle the default manifest object files that GCC can pass
59   (`d581dd501381 <https://reviews.llvm.org/rGd581dd501381>`)
60
61 * Demangle itanium symbol names in warnings/error messages
62   (`a66fc1c99f3e <https://reviews.llvm.org/rGa66fc1c99f3e>`)
63
64 * Print source locations for undefined references and duplicate symbols,
65   if possible
66   (`1d06d48bb346 <https://reviews.llvm.org/rG1d06d48bb346>`)
67   and
68   (`b38f577c015c <https://reviews.llvm.org/rGb38f577c015c>`)
69
70 * Look for more filename patterns when resolving ``-l`` options
71   (`0226c35262df <https://reviews.llvm.org/rG0226c35262df>`)
72
73 * Don't error out on duplicate absolute symbols with the same value
74   (which can happen for the default-null symbol for weak symbols)
75   (`1737cc750c46 <https://reviews.llvm.org/rG1737cc750c46>`)
76
77 MachO Improvements
78 ------------------
79
80 * Item 1.
81
82 WebAssembly Improvements
83 ------------------------
84
85 * `__data_end` and `__heap_base` are no longer exported by default,
86   as it's best to keep them internal when possible. They can be
87   explicitly exported with `--export=__data_end` and
88   `--export=__heap_base`, respectively.