=======================
lld 8.0.0 Release Notes
=======================

.. contents::
    :local:

.. warning::
   These are in-progress notes for the upcoming LLVM 8.0.0 release.
   Release notes for previous releases can be found on
   `the Download Page <https://releases.llvm.org/download.html>`_.

Introduction
============

This document contains the release notes for the lld linker, release 8.0.0.
Here we describe the status of lld, including major improvements
from the previous release. All lld releases may be downloaded
from the `LLVM releases web site <https://llvm.org/releases/>`_.

Non-comprehensive list of changes in this release
=================================================

ELF Improvements
----------------

* lld now supports RISC-V. (`r339364
  <https://reviews.llvm.org/rL339364>`_)

* Default image base address has changed from 65536 to 2 MiB for i386
  and 4 MiB for AArch64 to make lld-generated executables work better
  with automatic superpage promotion. FreeBSD can promote contiguous
  non-superpages to a superpage if they are aligned to the superpage
  size. (`r342746 <https://reviews.llvm.org/rL342746>`_)

* lld/Hexagon can now link Linux kernel and musl libc for Qualcomm
  Hexagon ISA.

* Initial MSP430 ISA support has landed.

* The following flags have been added: ``-z interpose``, ``-z global``

COFF Improvements
-----------------

* PDB GUID is set to hash of PDB contents instead to a random byte
  sequence for build reproducibility.

* The following flags have been added: ``/force:multiple``

* lld now can link against import libraries produced by GNU tools.

* lld can create thunks for ARM, to allow linking images over 16 MB.

MinGW Improvements
------------------

* lld can now automatically import data variables from DLLs without the
  use of the dllimport attribute.

* lld can now use existing normal MinGW sysroots with import libraries and
  CRT startup object files for GNU binutils. lld can handle most object
  files produced by GCC, and thus works as a drop-in replacement for
  ld.bfd in such environments. (There are known issues with linking crtend.o
  from GCC in setups with DWARF exceptions though, where object files are
  linked in a different order than with GNU ld, inserting a DWARF exception
  table terminator too early.)

MachO Improvements
------------------

* Item 1.

WebAssembly Improvements
------------------------

* Add initial support for creating shared libraries (-shared).
  Note: The shared library format is still under active development and may
  undergo significant changes in future versions.
  See: https://github.com/WebAssembly/tool-conventions/blob/master/DynamicLinking.md
