xref: /freebsd/contrib/llvm-project/lld/docs/ReleaseNotes.rst (revision 473957941922d17be72089e385e2e2a995fd0e1c)
185868e8aSDimitry Andric========================
285868e8aSDimitry Andriclld 10.0.0 Release Notes
385868e8aSDimitry Andric========================
40b57cec5SDimitry Andric
50b57cec5SDimitry Andric.. contents::
60b57cec5SDimitry Andric    :local:
70b57cec5SDimitry Andric
885868e8aSDimitry Andric.. warning::
985868e8aSDimitry Andric   These are in-progress notes for the upcoming LLVM 10.0.0 release.
1085868e8aSDimitry Andric   Release notes for previous releases can be found on
1185868e8aSDimitry Andric   `the Download Page <https://releases.llvm.org/download.html>`_.
1285868e8aSDimitry Andric
130b57cec5SDimitry AndricIntroduction
140b57cec5SDimitry Andric============
150b57cec5SDimitry Andric
1685868e8aSDimitry AndricThis document contains the release notes for the lld linker, release 10.0.0.
1785868e8aSDimitry AndricHere we describe the status of lld, including major improvements
1885868e8aSDimitry Andricfrom the previous release. All lld releases may be downloaded
1985868e8aSDimitry Andricfrom the `LLVM releases web site <https://llvm.org/releases/>`_.
200b57cec5SDimitry Andric
210b57cec5SDimitry AndricNon-comprehensive list of changes in this release
220b57cec5SDimitry Andric=================================================
230b57cec5SDimitry Andric
240b57cec5SDimitry AndricELF Improvements
250b57cec5SDimitry Andric----------------
260b57cec5SDimitry Andric
2785868e8aSDimitry Andric* Glob pattern, which you can use in linker scripts or version scripts,
2885868e8aSDimitry Andric  now supports `\` and `[!...]`. Except character classes
2985868e8aSDimitry Andric  (e.g. `[[:digit:]]`), lld's glob pattern should be fully compatible
3085868e8aSDimitry Andric  with GNU now. (`r375051
3185868e8aSDimitry Andric  <https://github.com/llvm/llvm-project/commit/48993d5ab9413f0e5b94dfa292a233ce55b09e3e>`_)
320b57cec5SDimitry Andric
3313138422SDimitry Andric* New ``elf32btsmipn32_fbsd`` and ``elf32ltsmipn32_fbsd`` emulations
3413138422SDimitry Andric  are supported.
3513138422SDimitry Andric
3613138422SDimitry Andric* Relax MIPS ``jalr``and ``jr`` instructions marked by the ``R_MIPS_JALR``
3713138422SDimitry Andric  relocation.
3813138422SDimitry Andric
3913138422SDimitry Andric* Reduced size of linked MIPS binaries.
4013138422SDimitry Andric
410b57cec5SDimitry AndricCOFF Improvements
420b57cec5SDimitry Andric-----------------
430b57cec5SDimitry Andric
4485868e8aSDimitry Andric* ...
450b57cec5SDimitry Andric
460b57cec5SDimitry AndricMinGW Improvements
470b57cec5SDimitry Andric------------------
480b57cec5SDimitry Andric
4913138422SDimitry Andric* Allow using custom .edata sections from input object files (for use
5013138422SDimitry Andric  by Wine)
5113138422SDimitry Andric  (`dadc6f248868 <https://reviews.llvm.org/rGdadc6f248868>`)
5213138422SDimitry Andric
5313138422SDimitry Andric* Don't implicitly create import libraries unless requested
5413138422SDimitry Andric  (`6540e55067e3 <https://reviews.llvm.org/rG6540e55067e3>`)
5513138422SDimitry Andric
5613138422SDimitry Andric* Support merging multiple resource object files
5713138422SDimitry Andric  (`3d3a9b3b413d <https://reviews.llvm.org/rG3d3a9b3b413d>`)
5813138422SDimitry Andric  and properly handle the default manifest object files that GCC can pass
5913138422SDimitry Andric  (`d581dd501381 <https://reviews.llvm.org/rGd581dd501381>`)
6013138422SDimitry Andric
6113138422SDimitry Andric* Demangle itanium symbol names in warnings/error messages
6213138422SDimitry Andric  (`a66fc1c99f3e <https://reviews.llvm.org/rGa66fc1c99f3e>`)
6313138422SDimitry Andric
6413138422SDimitry Andric* Print source locations for undefined references and duplicate symbols,
6513138422SDimitry Andric  if possible
6613138422SDimitry Andric  (`1d06d48bb346 <https://reviews.llvm.org/rG1d06d48bb346>`)
6713138422SDimitry Andric  and
6813138422SDimitry Andric  (`b38f577c015c <https://reviews.llvm.org/rGb38f577c015c>`)
6913138422SDimitry Andric
7013138422SDimitry Andric* Look for more filename patterns when resolving ``-l`` options
7113138422SDimitry Andric  (`0226c35262df <https://reviews.llvm.org/rG0226c35262df>`)
7213138422SDimitry Andric
7313138422SDimitry Andric* Don't error out on duplicate absolute symbols with the same value
7413138422SDimitry Andric  (which can happen for the default-null symbol for weak symbols)
7513138422SDimitry Andric  (`1737cc750c46 <https://reviews.llvm.org/rG1737cc750c46>`)
760b57cec5SDimitry Andric
7785868e8aSDimitry AndricMachO Improvements
7885868e8aSDimitry Andric------------------
790b57cec5SDimitry Andric
8085868e8aSDimitry Andric* Item 1.
810b57cec5SDimitry Andric
8285868e8aSDimitry AndricWebAssembly Improvements
8385868e8aSDimitry Andric------------------------
840b57cec5SDimitry Andric
8585868e8aSDimitry Andric* `__data_end` and `__heap_base` are no longer exported by default,
8685868e8aSDimitry Andric  as it's best to keep them internal when possible. They can be
8785868e8aSDimitry Andric  explicitly exported with `--export=__data_end` and
8885868e8aSDimitry Andric  `--export=__heap_base`, respectively.
89*47395794SDimitry Andric* wasm-ld now elides .bss sections when the memory is not imported
90