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 33*13138422SDimitry Andric* New ``elf32btsmipn32_fbsd`` and ``elf32ltsmipn32_fbsd`` emulations 34*13138422SDimitry Andric are supported. 35*13138422SDimitry Andric 36*13138422SDimitry Andric* Relax MIPS ``jalr``and ``jr`` instructions marked by the ``R_MIPS_JALR`` 37*13138422SDimitry Andric relocation. 38*13138422SDimitry Andric 39*13138422SDimitry Andric* Reduced size of linked MIPS binaries. 40*13138422SDimitry Andric 410b57cec5SDimitry AndricCOFF Improvements 420b57cec5SDimitry Andric----------------- 430b57cec5SDimitry Andric 4485868e8aSDimitry Andric* ... 450b57cec5SDimitry Andric 460b57cec5SDimitry AndricMinGW Improvements 470b57cec5SDimitry Andric------------------ 480b57cec5SDimitry Andric 49*13138422SDimitry Andric* Allow using custom .edata sections from input object files (for use 50*13138422SDimitry Andric by Wine) 51*13138422SDimitry Andric (`dadc6f248868 <https://reviews.llvm.org/rGdadc6f248868>`) 52*13138422SDimitry Andric 53*13138422SDimitry Andric* Don't implicitly create import libraries unless requested 54*13138422SDimitry Andric (`6540e55067e3 <https://reviews.llvm.org/rG6540e55067e3>`) 55*13138422SDimitry Andric 56*13138422SDimitry Andric* Support merging multiple resource object files 57*13138422SDimitry Andric (`3d3a9b3b413d <https://reviews.llvm.org/rG3d3a9b3b413d>`) 58*13138422SDimitry Andric and properly handle the default manifest object files that GCC can pass 59*13138422SDimitry Andric (`d581dd501381 <https://reviews.llvm.org/rGd581dd501381>`) 60*13138422SDimitry Andric 61*13138422SDimitry Andric* Demangle itanium symbol names in warnings/error messages 62*13138422SDimitry Andric (`a66fc1c99f3e <https://reviews.llvm.org/rGa66fc1c99f3e>`) 63*13138422SDimitry Andric 64*13138422SDimitry Andric* Print source locations for undefined references and duplicate symbols, 65*13138422SDimitry Andric if possible 66*13138422SDimitry Andric (`1d06d48bb346 <https://reviews.llvm.org/rG1d06d48bb346>`) 67*13138422SDimitry Andric and 68*13138422SDimitry Andric (`b38f577c015c <https://reviews.llvm.org/rGb38f577c015c>`) 69*13138422SDimitry Andric 70*13138422SDimitry Andric* Look for more filename patterns when resolving ``-l`` options 71*13138422SDimitry Andric (`0226c35262df <https://reviews.llvm.org/rG0226c35262df>`) 72*13138422SDimitry Andric 73*13138422SDimitry Andric* Don't error out on duplicate absolute symbols with the same value 74*13138422SDimitry Andric (which can happen for the default-null symbol for weak symbols) 75*13138422SDimitry 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