aboutsummaryrefslogtreecommitdiff
path: root/docs/ReleaseNotes.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ReleaseNotes.rst')
-rw-r--r--docs/ReleaseNotes.rst169
1 files changed, 17 insertions, 152 deletions
diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst
index 01a984148b7e..dcd6ac0602d3 100644
--- a/docs/ReleaseNotes.rst
+++ b/docs/ReleaseNotes.rst
@@ -1,23 +1,22 @@
=======================
-lld 5.0.0 Release Notes
+LLD 6.0.0 Release Notes
=======================
.. contents::
:local:
+.. warning::
+ These are in-progress notes for the upcoming LLVM 6.0.0 release.
+ Release notes for previous releases can be found on
+ `the Download Page <http://releases.llvm.org/download.html>`_.
+
Introduction
============
-lld is a linker from the LLVM project. It supports ELF (Unix), COFF (Windows)
-and Mach-O (macOS), and it is generally faster than the GNU bfd or gold linkers
-or the MSVC linker.
-
-lld is designed to be a drop-in replacement for the system linkers, so that
-users don't need to change their build systems other than swapping the linker
-command.
-
-All lld releases may be downloaded from the `LLVM releases web site
-<http://llvm.org/releases/>`_.
+This document contains the release notes for the LLD linker, release 6.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 <http://llvm.org/releases/>`_.
Non-comprehensive list of changes in this release
=================================================
@@ -25,148 +24,14 @@ Non-comprehensive list of changes in this release
ELF Improvements
----------------
-* First and foremost, a lot of compatibility issues and bugs have been fixed.
- Linker script support has significantly improved. As a result, we believe you
- are very likely to be able to link your programs with lld without experiencing
- any problem now.
-
-* Error message format has changed in order to improve readability.
- Traditionally, linker's error messages are concise and arguably too terse.
- This is an example of lld 4.0.0's error message (they are actually in one line)::
-
- /ssd/clang/bin/ld.lld: error: /ssd/llvm-project/lld/ELF/Writer.cpp:207:
- undefined symbol 'lld::elf::EhFrameSection::addSection()'
-
- It is not easy to read because too much information is packed into a single line
- and the embedded text, particularly a symbol name, is sometimes too long.
- In lld 5.0.0, we use more vertical space to print out error messages in a more
- structured manner like this::
-
- bin/ld.lld: error: undefined symbol: lld::elf::EhFrameSection::addSection()
- >>> Referenced by Writer.cpp:207 (/ssd/llvm-project/lld/ELF/Writer.cpp:207)
- >>> Writer.cpp.o in archive lib/liblldELF.a
-
- As a bonus, the new error message contains source code location of the error
- if it is available from debug info.
-
-* ``./configure`` scripts generated by GNU autoconf determines whether a linker
- supports modern GNU-compatible features or not by searching for "GNU" in the
- ``--help`` message. To be compatible with the scripts, we decided to add a
- string "(compatible with GNU linkers)" to our ``--help`` message. This is a
- hack, but just like the web browser's User-Agent string (which everyone still
- claim they are "Mozilla/5.0"), we had no choice other than doing this to claim
- that we accept GNU-compatible options.
+* Item 1.
-* The ``-Map`` option is added. The option is to make the linker to print out how
- input files are mapped to the output file. Here is an example::
+COFF Improvements
+-----------------
- Address Size Align Out In Symbol
- 00000000016d84d8 00000000008f8f50 8 .eh_frame
- 00000000016d84d8 00000000008f8f50 8 <internal>:(.eh_frame)
- 0000000001fd2000 00000000034b3bd0 16 .text
- 0000000001fd2000 000000000000002a 1 /usr/lib/x86_64-linux-gnu/crt1.o:(.text)
- 0000000001fd2000 0000000000000000 0 _start
- 0000000001fd202a 0000000000000000 1 /usr/lib/x86_64-linux-gnu/crti.o:(.text)
- 0000000001fd2030 00000000000000bd 16 /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o:(.text)
- 0000000001fd2030 0000000000000000 0 deregister_tm_clones
- 0000000001fd2060 0000000000000000 0 register_tm_clones
-
- This format is not the same as GNU linkers as our linker internal data
- structure is different from them but contains the same amount of information
- and should be more readable than their outputs.
-
- As with other lld features, the ``-Map`` option is designed with speed in mind.
- The option would generate a hundred megabyte text file if you link a large
- program with it. lld can usually do that in a few seconds, and it is generally
- a few times faster than the GNU gold's ``-Map`` option.
-
-* lld's ``--gdb-index`` option used to be slow, but we sped it up so that it is
- at least as fast as the GNU gold.
-
-* Some nonstandard relocations, such as R_X86_64_8 or R_X86_64_16, are supported.
- They are not used for 32/64-bit applications, but some 16-bit bootloaders need
- them.
-
-* Paddings in executable text sections are now filled with trap instructions
- (such as INT3) instead of being left as null bytes. This change improves
- disassembler outputs because it now prints out trap instructions instead of
- trying to decode 0x00 as an instruction. It also makes debugging of some type
- of program easier because when the control reaches a padding, the program
- immediately raises an error.
-
-* The following options are added: ``-M``, ``-Map``,
- ``-compress-debug-sections``, ``-emit-relocs``,
- ``-error-unresolved-symbols``, ``-exclude-libs``, ``-filter``,
- ``-no-dynamic-linker``, ``-no-export-dynamic``, ``-no-fatal-warnings``,
- ``-print-map``, ``-warn-unresolved-symbols``, ``-z nocopyreloc``,
- ``-z notext``, ``-z rodynamic``
-
-
-Contributors to lld 5.0
-=======================
+* Item 1.
-We had 63 individuals contribute to lld 5.0. Thank you so much!
+MachO Improvements
+------------------
-- Adrian McCarthy
-- Alberto Magni
-- Alexander Richardson
-- Andre Vieira
-- Andrew Ng
-- Anton Korobeynikov
-- Bob Haarman
-- David Blaikie
-- Davide Italiano
-- David L. Jones
-- Dmitry Mikulin
-- Ed Maste
-- Ed Schouten
-- Eric Beckmann
-- Eric Fiselier
-- Eugene Leviant
-- Evgeniy Stepanov
-- Galina Kistanova
-- George Rimar
-- Hans Wennborg
-- Igor Kudrin
-- Ismail Donmez
-- Jake Ehrlich
-- James Henderson
-- Joel Jones
-- Jon Chesterfield
-- Kamil Rytarowski
-- Kevin Enderby
-- Konstantin Zhuravlyov
-- Kyungwoo Lee
-- Leslie Zhai
-- Mark Kettenis
-- Martell Malone
-- Martin Storsjo
-- Meador Inge
-- Mehdi Amini
-- Michal Gorny
-- NAKAMURA Takumi
-- Paul Robinson
-- Pavel Labath
-- Petar Jovanovic
-- Peter Collingbourne
-- Peter Smith
-- Petr Hosek
-- Rafael Espindola
-- Reid Kleckner
-- Richard Smith
-- Robert Clarke
-- Rui Ueyama
-- Saleem Abdulrasool
-- Sam Clegg
-- Sean Eveson
-- Sean Silva
-- Shankar Easwaran
-- Shoaib Meenai
-- Simon Atanasyan
-- Simon Dardis
-- Simon Tatham
-- Sylvestre Ledru
-- Tom Stellard
-- Vitaly Buka
-- Yuka Takahashi
-- Zachary Turner
+* Item 1.