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