[llvm-branch-commits] [lld] r341890 - Update release notes for lld 7.0.

2018-09-11 Thread Rui Ueyama via llvm-branch-commits
Author: ruiu
Date: Mon Sep 10 19:14:11 2018
New Revision: 341890

URL: http://llvm.org/viewvc/llvm-project?rev=341890&view=rev
Log:
Update release notes for lld 7.0.

Modified:
lld/branches/release_70/docs/ReleaseNotes.rst

Modified: lld/branches/release_70/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/lld/branches/release_70/docs/ReleaseNotes.rst?rev=341890&r1=341889&r2=341890&view=diff
==
--- lld/branches/release_70/docs/ReleaseNotes.rst (original)
+++ lld/branches/release_70/docs/ReleaseNotes.rst Mon Sep 10 19:14:11 2018
@@ -8,10 +8,16 @@ LLD 7.0.0 Release Notes
 Introduction
 
 
-This document contains the release notes for the lld linker, release 7.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 `_.
+lld is a high-performance linker that supports ELF (Unix), COFF (Windows),
+Mach-O (macOS), MinGW and WebAssembly. lld is command-line-compatible with GNU
+linkers and Microsoft link.exe, and is significantly faster than these system
+default linkers.
+
+lld 7.0 for ELF and COFF are production-ready. lld/ELF can build the entire
+FreeBSD/AMD64 and will be the default linker of the next version of the
+operating system. lld/COFF is being used to build popular large programs such 
as
+Chrome web browser. Mach-O, MinGW and WebAssembly supports are still
+experimental.
 
 Non-comprehensive list of changes in this release
 =
@@ -19,15 +25,61 @@ Non-comprehensive list of changes in thi
 ELF Improvements
 
 
-* lld is now able to overcome MIPS GOT entries number limitation
-  and generate multi-GOT if necessary.
+* Fixed a lot of long-tail compatibility issues with GNU linkers.
 
-* lld is now able to produce MIPS position-independent executable (PIE).
+* Added ``-z retpolineplt`` to emit a PLT entry that doesn't contain an 
indirect
+  jump instruction to mitigate Spectre v2 vulnerability.
+
+* Added experimental support for `SHT_RELR sections
+  ` to create 
a
+  compact dynamic relocation table.
+
+* Added support for `split stacks `.
+
+* Added support for address significance table (section with type
+  SHT_LLVM_ADDRSIG) to improve Identical Code Folding (ICF). Combined with the
+  ``-faddrsig`` compiler option added to Clang 7.0, lld's ``--icf=all`` can now
+  safely merge functions and data to generate smaller outputs than before.
+
+* Improved ``--gdb-index`` so that it is faster (`r336790
+  `) and uses less memory (`r336672
+  `).
+
+* Reduced memory usage of ``--compress-debug-sections`` (`r338913
+  `).
+
+* Added linker script OVERLAY support (`r335714 
`).
+
+* Added ``--warn-backref`` to make it easy to identify command line option 
order
+  that doesn't work with GNU linkers (`r329636 
`)
+
+* Added ld.lld.1 man page (`r324512 `).
+
+* Added support for multi-GOT.
+
+* Added support for MIPS position-independent executable (PIE).
 
 * Fixed MIPS TLS GOT entries for local symbols in shared libraries.
 
-* Fixed calculation of MIPS GP relative relocations
-  in case of relocatable output.
+* Fixed calculation of MIPS GP relative relocations in case of relocatable
+  output.
+
+* Added support for PPCv2 ABI.
+
+* Removed an incomplete support of PPCv1 ABI.
+
+* Added support for Qualcomm Hexagon ISA.
+
+* Added the following flags: ``--apply-dynamic-relocs``, ``--check-sections``,
+  ``--cref``, ``--just-symbols``, ``--keep-unique``,
+  ``--no-allow-multiple-definition``, ``--no-apply-dynamic-relocs``,
+  ``--no-check-sections``, ``--no-gnu-unique, ``--no-pic-executable``,
+  ``--no-undefined-version``, ``--no-warn-common``, ``--pack-dyn-relocs=relr``,
+  ``--pop-state``, ``--print-icf-sections``, ``--push-state``,
+  ``--thinlto-index-only``, ``--thinlto-object-suffix-replace``,
+  ``--thinlto-prefix-replace``, ``--warn-backref``, ``-z combreloc``, ``-z
+  copyreloc``, ``-z initfirst``, ``-z keep-text-section-prefix``, ``-z lazy``,
+  ``-z noexecstack``, ``-z relro``, ``-z retpolineplt``, ``-z text``
 
 COFF Improvements
 -
@@ -39,3 +91,12 @@ COFF Improvements
 * Added support for outputting PDB debug info for MinGW targets.
 
 * Improved compatibility of output binaries with GNU binutils objcopy/strip.
+
+* Sped up PDB file creation.
+
+* Changed section layout to improve compatibility with link.exe.
+
+* Added the following flags: ``--color-diagnostics={always,never,auto}``,
+  ``--no-color-diagnostics``, ``/brepro``, ``/debug:full``, ``/debug:ghash``,
+  ``

[llvm-branch-commits] [lld] r341936 - Update release notes to say that lld/MinGW is production-ready.

2018-09-11 Thread Rui Ueyama via llvm-branch-commits
Author: ruiu
Date: Tue Sep 11 06:27:39 2018
New Revision: 341936

URL: http://llvm.org/viewvc/llvm-project?rev=341936&view=rev
Log:
Update release notes to say that lld/MinGW is production-ready.

Modified:
lld/branches/release_70/docs/ReleaseNotes.rst

Modified: lld/branches/release_70/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/lld/branches/release_70/docs/ReleaseNotes.rst?rev=341936&r1=341935&r2=341936&view=diff
==
--- lld/branches/release_70/docs/ReleaseNotes.rst (original)
+++ lld/branches/release_70/docs/ReleaseNotes.rst Tue Sep 11 06:27:39 2018
@@ -13,11 +13,12 @@ Mach-O (macOS), MinGW and WebAssembly. l
 linkers and Microsoft link.exe, and is significantly faster than these system
 default linkers.
 
-lld 7 for ELF and COFF are production-ready. lld/ELF can build the entire
+lld 7 for ELF, COFF and MinGW are production-ready. lld/ELF can build the 
entire
 FreeBSD/AMD64 and will be the default linker of the next version of the
 operating system. lld/COFF is being used to build popular large programs such 
as
-the Chrome web browser. Mach-O, MinGW and WebAssembly supports are still
-experimental.
+the Chrome web browser. lld/MinGW is being used by Firefox for their MinGW
+builds, though it needs a special-built sysroot. Mach-O and WebAssembly 
supports
+are still experimental.
 
 Non-comprehensive list of changes in this release
 =


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lld] r342187 - Update release notes for lld 7.

2018-09-13 Thread Rui Ueyama via llvm-branch-commits
Author: ruiu
Date: Thu Sep 13 14:50:59 2018
New Revision: 342187

URL: http://llvm.org/viewvc/llvm-project?rev=342187&view=rev
Log:
Update release notes for lld 7.

Modified:
lld/branches/release_70/docs/ReleaseNotes.rst

Modified: lld/branches/release_70/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/lld/branches/release_70/docs/ReleaseNotes.rst?rev=342187&r1=342186&r2=342187&view=diff
==
--- lld/branches/release_70/docs/ReleaseNotes.rst (original)
+++ lld/branches/release_70/docs/ReleaseNotes.rst Thu Sep 13 14:50:59 2018
@@ -10,15 +10,24 @@ Introduction
 
 lld is a high-performance linker that supports ELF (Unix), COFF (Windows),
 Mach-O (macOS), MinGW and WebAssembly. lld is command-line-compatible with GNU
-linkers and Microsoft link.exe, and is significantly faster than these system
+linkers and Microsoft link.exe, and is significantly faster than the system
 default linkers.
 
-lld 7 for ELF, COFF and MinGW are production-ready. lld/ELF can build the 
entire
-FreeBSD/AMD64 and will be the default linker of the next version of the
-operating system. lld/COFF is being used to build popular large programs such 
as
-the Chrome web browser. lld/MinGW is being used by Firefox for their MinGW
-builds. lld/MinGW still needs a sysroot specifically built for lld, with
-llvm-dlltool, though. Mach-O and WebAssembly supports are still experimental.
+lld 7 for ELF, COFF and MinGW are production-ready.
+
+* lld/ELF can build the entire FreeBSD/{AMD64,ARMv7} and will be the default
+  linker of the next version of the operating system.
+
+* lld/COFF is being used to create official builds of large popular programs
+  such as Chrome and Firefox.
+
+* lld/MinGW is being used by Firefox for their MinGW builds. lld/MinGW still
+  needs a sysroot specifically built for lld, with llvm-dlltool, though.
+
+* lld/WebAssembly is used as the default (only) linker in Emscripten when using
+  the upstream LLVM compiler.
+
+* lld/Mach-O is still experimental.
 
 Non-comprehensive list of changes in this release
 =
@@ -97,6 +106,8 @@ COFF Improvements
 
 * Changed section layout to improve compatibility with link.exe.
 
+* `/subsystem` inference is improved to cover more corner cases.
+
 * Added the following flags: ``--color-diagnostics={always,never,auto}``,
   ``--no-color-diagnostics``, ``/brepro``, ``/debug:full``, ``/debug:ghash``,
   ``/guard:cf``, ``/guard:longjmp``, ``/guard:nolongjmp``, ``/integritycheck``,


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lld] r351401 - Merging r351396:

2019-01-16 Thread Rui Ueyama via llvm-branch-commits
Author: ruiu
Date: Wed Jan 16 15:46:28 2019
New Revision: 351401

URL: http://llvm.org/viewvc/llvm-project?rev=351401&view=rev
Log:
Merging r351396:

r351396 | lekensteyn | 2019-01-16 15:28:51 -0800 (Wed, 16 Jan 2019) | 17 lines

[ELF][X86_64] Fix corrupted LD -> LE optimization for TLS without PLT

The LD -> LE optimization for Thread-Local Storage without PLT requires
an additional "66" prefix, otherwise the next instruction will be
corrupted, causing runtime misbehavior (crashes) of the linked object.

The other (GD -> IE/LD) optimizations are the same with or without PLT,
but add tests for completeness. The instructions are copied from
https://raw.githubusercontent.com/wiki/hjl-tools/x86-psABI/x86-64-psABI-1.0.pdf#subsection.11.1.2

This does not try to address ILP32 (x32) support.

Fixes https://bugs.llvm.org/show_bug.cgi?id=37303

Reviewed By: ruiu

Differential Revision: https://reviews.llvm.org/D56779


Added:
lld/branches/release_80/test/ELF/tls-opt-x86_64-noplt.s
Modified:
lld/branches/release_80/ELF/Arch/X86_64.cpp

Modified: lld/branches/release_80/ELF/Arch/X86_64.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lld/branches/release_80/ELF/Arch/X86_64.cpp?rev=351401&r1=351400&r2=351401&view=diff
==
--- lld/branches/release_80/ELF/Arch/X86_64.cpp (original)
+++ lld/branches/release_80/ELF/Arch/X86_64.cpp Wed Jan 16 15:46:28 2019
@@ -264,15 +264,6 @@ void X86_64::relaxTlsIeToLe(uint8_
 template 
 void X86_64::relaxTlsLdToLe(uint8_t *Loc, RelType Type,
   uint64_t Val) const {
-  // Convert
-  //   leaq bar@tlsld(%rip), %rdi
-  //   callq __tls_get_addr@PLT
-  //   leaq bar@dtpoff(%rax), %rcx
-  // to
-  //   .word 0x
-  //   .byte 0x66
-  //   mov %fs:0,%rax
-  //   leaq bar@tpoff(%rax), %rcx
   if (Type == R_X86_64_DTPOFF64) {
 write64le(Loc, Val);
 return;
@@ -287,7 +278,37 @@ void X86_64::relaxTlsLdToLe(uint8_
   0x66, // .byte 0x66
   0x64, 0x48, 0x8b, 0x04, 0x25, 0x00, 0x00, 0x00, 0x00, // mov %fs:0,%rax
   };
-  memcpy(Loc - 3, Inst, sizeof(Inst));
+
+  if (Loc[4] == 0xe8) {
+// Convert
+//   leaq bar@tlsld(%rip), %rdi   # 48 8d 3d 
+//   callq __tls_get_addr@PLT # e8 
+//   leaq bar@dtpoff(%rax), %rcx
+// to
+//   .word 0x
+//   .byte 0x66
+//   mov %fs:0,%rax
+//   leaq bar@tpoff(%rax), %rcx
+memcpy(Loc - 3, Inst, sizeof(Inst));
+return;
+  }
+
+  if (Loc[4] == 0xff && Loc[5] == 0x15) {
+// Convert
+//   leaq  x@tlsld(%rip),%rdi   # 48 8d 3d 
+//   call *__tls_get_addr@GOTPCREL(%rip)# ff 15 
+// to
+//   .long  0x
+//   movq   %fs:0,%rax
+// See "Table 11.9: LD -> LE Code Transition (LP64)" in
+// 
https://raw.githubusercontent.com/wiki/hjl-tools/x86-psABI/x86-64-psABI-1.0.pdf
+Loc[-3] = 0x66;
+memcpy(Loc - 2, Inst, sizeof(Inst));
+return;
+  }
+
+  error(getErrorLocation(Loc - 3) +
+"expected R_X86_64_PLT32 or R_X86_64_GOTPCRELX after R_X86_64_TLSLD");
 }
 
 template 

Added: lld/branches/release_80/test/ELF/tls-opt-x86_64-noplt.s
URL: 
http://llvm.org/viewvc/llvm-project/lld/branches/release_80/test/ELF/tls-opt-x86_64-noplt.s?rev=351401&view=auto
==
--- lld/branches/release_80/test/ELF/tls-opt-x86_64-noplt.s (added)
+++ lld/branches/release_80/test/ELF/tls-opt-x86_64-noplt.s Wed Jan 16 15:46:28 
2019
@@ -0,0 +1,88 @@
+// REQUIRES: x86
+
+// Checks whether the TLS optimizations match the cases in Chapter 11 of
+// 
https://raw.githubusercontent.com/wiki/hjl-tools/x86-psABI/x86-64-psABI-1.0.pdf
+
+// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
+// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux 
%p/Inputs/tls-opt-gdie.s -o %tso.o
+// RUN: ld.lld -shared %tso.o -o %t.so
+// RUN: ld.lld %t.o %t.so -o %t1
+// RUN: llvm-readobj -r %t1 | FileCheck --check-prefix=RELOC %s
+// RUN: llvm-objdump -d %t1 | FileCheck --check-prefix=DISASM %s
+
+// RELOC:  Relocations [
+// RELOC-NEXT:  Section {{.*}} .rela.dyn {
+// RELOC-NEXT:0x2020C0 R_X86_64_TPOFF64 tlsshared0 0x0
+// RELOC-NEXT:0x2020C8 R_X86_64_TPOFF64 tlsshared1 0x0
+// RELOC-NEXT:  }
+// RELOC-NEXT: ]
+
+// DISASM:  _start:
+
+// Table 11.5: GD -> IE Code Transition (LP64)
+// DISASM-NEXT: 201000: 64 48 8b 04 25 00 00 00 00  movq %fs:0, %rax
+// DISASM-NEXT: 201009: 48 03 05 b0 10 00 00addq 4272(%rip), %rax
+// DISASM-NEXT: 201010: 64 48 8b 04 25 00 00 00 00  movq %fs:0, %rax
+// DISASM-NEXT: 201019: 48 03 05 a8 10 00 00addq 4264(%rip), %rax
+
+// Table 11.7: GD -> LE Code Transition (LP64)
+// DISASM-NEXT: 201020: 64 48 8b 04 25 

[llvm-branch-commits] [lld] r353574 - - Update ReleaseNotes for lld 8.0.0.

2019-02-08 Thread Rui Ueyama via llvm-branch-commits
Author: ruiu
Date: Fri Feb  8 14:03:46 2019
New Revision: 353574

URL: http://llvm.org/viewvc/llvm-project?rev=353574&view=rev
Log:
- Update ReleaseNotes for lld 8.0.0.

Modified:
lld/branches/release_80/docs/ReleaseNotes.rst

Modified: lld/branches/release_80/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/lld/branches/release_80/docs/ReleaseNotes.rst?rev=353574&r1=353573&r2=353574&view=diff
==
--- lld/branches/release_80/docs/ReleaseNotes.rst (original)
+++ lld/branches/release_80/docs/ReleaseNotes.rst Fri Feb  8 14:03:46 2019
@@ -13,10 +13,12 @@ lld 8.0.0 Release Notes
 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 `_.
+lld is a high-performance linker that supports ELF (Unix), COFF (Windows),
+Mach-O (macOS), MinGW and WebAssembly. lld is command-line-compatible with
+GNU linkers and Microsoft link.exe and is significantly faster than the
+system default linkers.
+
+nlld 8.0.0 has lots of feature improvements and bug fixes.
 
 Non-comprehensive list of changes in this release
 =
@@ -33,16 +35,35 @@ ELF Improvements
   non-superpages to a superpage if they are aligned to the superpage
   size. (`r342746 `_)
 
+* lld now attempts to place a ``.note`` segment in the first page of a
+  generated file, so that you can find some important information
+  (``.note.gnu.build-id`` in particular) in a core file even if a core
+  file is truncated by ulimit.
+  (`r349524 `_)
+
+* lld now reports an error if ``_GLOBAL_OFFSET_TABLE_`` symbol is
+  defined by an input object file, as the symbol is supposed to be
+  synthesized by the linker.
+  (`r347854 `_)
+
 * 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``
-
 * lld now uses the ``sigrie`` instruction as a trap instruction for
   MIPS targets.
 
+* lld now creates a TLS segment for AArch64 with a slightly larger
+  alignment requirement, so that the loader makes a few bytes room
+  before each TLS segment at runtime. The aim of this change is to
+  make room to accomodate nonstandard Android TLS slots while keeping
+  the compatibility with the standard AArch64 ABI.
+  (`r350681 `_)
+
+* The following flags have been added: ``-z interpose``, ``-z global``, ``-z
+  nodefaultlib``
+
 COFF Improvements
 -
 
@@ -95,11 +116,6 @@ MinGW Improvements
   Previously, the ``--build-id`` option did not actually generate a build id
   unless ``--pdb`` was specified.
 
-MachO Improvements
---
-
-* Item 1.
-
 WebAssembly Improvements
 
 


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lld] r353749 - Minor update to lld/ReleaseNotes.

2019-02-11 Thread Rui Ueyama via llvm-branch-commits
Author: ruiu
Date: Mon Feb 11 13:26:23 2019
New Revision: 353749

URL: http://llvm.org/viewvc/llvm-project?rev=353749&view=rev
Log:
Minor update to lld/ReleaseNotes.

Modified:
lld/branches/release_80/docs/ReleaseNotes.rst

Modified: lld/branches/release_80/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/lld/branches/release_80/docs/ReleaseNotes.rst?rev=353749&r1=353748&r2=353749&view=diff
==
--- lld/branches/release_80/docs/ReleaseNotes.rst (original)
+++ lld/branches/release_80/docs/ReleaseNotes.rst Mon Feb 11 13:26:23 2019
@@ -61,8 +61,9 @@ ELF Improvements
   the compatibility with the standard AArch64 ABI.
   (`r350681 `_)
 
-* The following flags have been added: ``-z interpose``, ``-z global``, ``-z
-  nodefaultlib``
+* The following flags have been added: ``--call-graph-profile``,
+  ``--no-call-graph-profile``, ``--warn-ifunc-textrel``,
+  ``-z interpose``, ``-z global``, ``-z nodefaultlib``
 
 COFF Improvements
 -


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lld] r371034 - Update ReleaseNotes for lld 9.0.

2019-09-05 Thread Rui Ueyama via llvm-branch-commits
Author: ruiu
Date: Thu Sep  5 02:00:16 2019
New Revision: 371034

URL: http://llvm.org/viewvc/llvm-project?rev=371034&view=rev
Log:
Update ReleaseNotes for lld 9.0.

Modified:
lld/branches/release_90/docs/ReleaseNotes.rst

Modified: lld/branches/release_90/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/lld/branches/release_90/docs/ReleaseNotes.rst?rev=371034&r1=371033&r2=371034&view=diff
==
--- lld/branches/release_90/docs/ReleaseNotes.rst (original)
+++ lld/branches/release_90/docs/ReleaseNotes.rst Thu Sep  5 02:00:16 2019
@@ -8,10 +8,12 @@ lld 9.0.0 Release Notes
 Introduction
 
 
-This document contains the release notes for the lld linker, release 9.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 `_.
+lld is a high-performance linker that supports ELF (Unix), COFF
+(Windows), Mach-O (macOS), MinGW and WebAssembly. lld is
+command-line-compatible with GNU linkers and Microsoft link.exe and is
+significantly faster than the system default linkers.
+
+lld 9.0 has lots of feature improvements and bug fixes.
 
 Non-comprehensive list of changes in this release
 =
@@ -22,52 +24,189 @@ ELF Improvements
 * ld.lld now has typo suggestions for flags:
   ``$ ld.lld --call-shared`` now prints
   ``unknown argument '--call-shared', did you mean '--call_shared'``.
+  (`r361518 `_)
+
+* ``--allow-shlib-undefined`` and ``--no-allow-shlib-undefined``
+  options are added. ``--no-allow-shlib-undefined`` is the default for
+  executables.
+  (`r352826 `_)
+
+* ``-nmagic`` and ``-omagic`` options are fully supported.
+  (`r360593 `_)
+
+* Segment layout has changed. PT_GNU_RELRO, which was previously
+  placed in the middle of readable/writable PT_LOAD segments, is now
+  placed at the beginning of them. This change permits lld-produced
+  ELF files to be read correctly by GNU strip older than 2.31, which
+  has a bug to discard a PT_GNU_RELRO in the former layout.
+
+* ``-z common-page-size`` is supported.
+  (`r360593 `_)
+
+* Diagnostics messages have improved. A new flag ``--vs-diagnostics``
+  alters the format of diagnostic output to enable source hyperlinks
+  in Microsoft Visual Studio IDE.
+
+* Linker script compatibility with GNU BFD linker has generally improved.
+
+* The clang ``--dependent-library`` form of autolinking is supported.
+
+  This feature is added to implement the Windows-style autolinking for
+  Unix. On Unix, in order to use a library, you usually have to
+  include a header file provided by the library and then explicitly
+  link the library with the linker ``-l`` option. On Windows, header
+  files usually contain pragmas that list needed libraries. Compilers
+  copies that information to object files, so that linkers can
+  automatically link needed libraries. ``--dependent-library`` is
+  added for implementing that Windows semantics on Unix.
+  (`r360984 `_)
+
+* AArch64 BTI and PAC are supported.
+  (`r362793 `_)
 
 * lld now supports replacing ``JAL`` with ``JALX`` instructions in case
-  of MIPS - microMIPS cross-mode jumps.
+  of MIPS ↔ microMIPS cross-mode jumps.
+  (`r354311 `_)
 
 * lld now creates LA25 thunks for MIPS R6 code.
+  (`r354312 `_)
 
 * Put MIPS-specific .reginfo, .MIPS.options, and .MIPS.abiflags sections
   into corresponding PT_MIPS_REGINFO, PT_MIPS_OPTIONS, and PT_MIPS_ABIFLAGS
   segments.
 
+* The quality of RISC-V and PowerPC ports have greatly improved. Many
+  applications can now be linked by lld. PowerPC64 is now almost
+  production ready.
+
+* The Linux kernel for arm32_7, arm64, ppc64le and x86_64 can now be
+  linked by lld.
+
+* x86-64 TLSDESC is supported.
+  (`r361911 `_,
+  `r362078 `_)
+
+* DF_STATIC_TLS flag is set for i386 and x86-64 when needed.
+  (`r353293 `_,
+  `r353378 `_)
+
+* The experimental partitioning feature is added to allow a program to
+  be split into multiple pieces.
+
+  The feature allows you semi-automatically split a single program
+  into multiple ELF files called "partitions". Since all partitions
+  share the same memory address space and don't use PLT/GOT, split
+  programs run as fast as regular programs.
+
+  With the mechanism, you can start a program only with a "main"
+  partition and load remaining partitions on-demand. For example, you
+  can split a web browser into a main partition and a PDF reader
+