Skip to content

Commit 760cad6

Browse files
committed
ReleaseNotes: add lld/ELF notes
1 parent 763fdb1 commit 760cad6

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

lld/docs/ReleaseNotes.rst

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,64 @@ Non-comprehensive list of changes in this release
2626
ELF Improvements
2727
----------------
2828

29+
* When ``--threads=`` is not specified, the number of concurrency is now capped to 16.
30+
A large ``--thread=`` can harm performance, especially with some system
31+
malloc implementations like glibc's.
32+
(`D147493 <https://reviews.llvm.org/D147493>`_)
2933
* ``--remap-inputs=`` and ``--remap-inputs-file=`` are added to remap input files.
3034
(`D148859 <https://reviews.llvm.org/D148859>`_)
35+
* ``--lto=`` is now available to support ``clang -funified-lto``
36+
(`D123805 <https://reviews.llvm.org/D123805>`_)
37+
* ``--lto-CGO[0-3]`` is now available to control ``CodeGenOpt::Level`` independent of the LTO optimization level.
38+
(`D141970 <https://reviews.llvm.org/D141970>`_)
39+
* ``--check-dynamic-relocations=`` is now correct 32-bit targets when the addend is larger than 0x80000000.
40+
(`D149347 <https://reviews.llvm.org/D149347>`_)
41+
* ``--print-memory-usage`` has been implemented for memory regions.
42+
(`D150644 <https://reviews.llvm.org/D150644>`_)
43+
* ``SHF_MERGE``, ``--icf=``, and ``--build-id=fast`` have switched to 64-bit xxh3.
44+
(`D154813 <https://reviews.llvm.org/D154813>`_)
45+
* Quoted output section names can now be used in linker scripts.
46+
(`#60496 <https://github.com/llvm/llvm-project/issues/60496>`_)
47+
* ``MEMORY`` can now be used without a ``SECTIONS`` command.
48+
(`D145132 <https://reviews.llvm.org/D145132>`_)
49+
* ``REVERSE`` can now be used in input section descriptions to reverse the order of input sections.
50+
(`D145381 <https://reviews.llvm.org/D145381>`_)
51+
* Program header assignment can now be used within ``OVERLAY``. This functionality was accidentally lost in 2020.
52+
(`D150445 <https://reviews.llvm.org/D150445>`_)
53+
* Operators ``^`` and ``^=`` can now be used in linker scripts.
54+
* ``DT_AARCH64_MEMTAG_*`` dynamic tags are now supported.
55+
(`D143769 <https://reviews.llvm.org/D143769>`_)
56+
* AArch32 port now supports BE-8 and BE-32 modes for big-endian.
57+
(`D140201 <https://reviews.llvm.org/D140201>`_)
58+
(`D140202 <https://reviews.llvm.org/D140202>`_)
59+
(`D150870 <https://reviews.llvm.org/D150870>`_)
60+
* ``R_ARM_THM_ALU_ABS_G*`` relocations are now supported.
61+
(`D153407 <https://reviews.llvm.org/D153407>`_)
62+
* ``.ARM.exidx`` sections may start at non-zero output section offset.
63+
(`D148033 <https://reviews.llvm.org/D148033>`_)
64+
* Arm Cortex-M Security Extensions is now implemented.
65+
(`D139092 <https://reviews.llvm.org/D139092>`_)
66+
* BTI landing pads are now added to PLT entries accessed by range extension thunks or relative vtables.
67+
(`D148704 <https://reviews.llvm.org/D148704>`_)
68+
(`D153264 <https://reviews.llvm.org/D153264>`_)
69+
* AArch64 short range thunk has been implemented to mitigate the performance loss of a long range thunk.
70+
(`D148701 <https://reviews.llvm.org/D148701>`_)
71+
* ``R_AVR_8_LO8/R_AVR_8_HI8/R_AVR_8_HLO8/R_AVR_LO8_LDI_GS/R_AVR_HI8_LDI_GS`` have been implemented.
72+
(`D147100 <https://reviews.llvm.org/D147100>`_)
73+
(`D147364 <https://reviews.llvm.org/D147364>`_)
74+
* ``--no-power10-stubs`` now works for PowerPC64.
75+
* ``DT_PPC64_OPT`` is now supported;
76+
(`D150631 <https://reviews.llvm.org/D150631>`_)
3177
* ``PT_RISCV_ATTRIBUTES`` is added to include the SHT_RISCV_ATTRIBUTES section.
3278
(`D152065 <https://reviews.llvm.org/D152065>`_)
79+
* ``R_RISCV_PLT32`` is added to support C++ relative vtables.
80+
(`D143115 <https://reviews.llvm.org/D143115>`_)
81+
* RISC-V global pointer relaxation has been implemented. Specify ``--relax-gp`` to enable the linker relaxation.
82+
(`D143673 <https://reviews.llvm.org/D143673>`_)
83+
* The symbol value of ``foo`` is correctly handled when ``--wrap=foo`` and RISC-V linker relaxation are used.
84+
(`D151768 <https://reviews.llvm.org/D151768>`_)
85+
* x86-64 large data sections are now placed away from code sections to alleviate relocation overflow pressure.
86+
(`D150510 <https://reviews.llvm.org/D150510>`_)
3387

3488
Breaking changes
3589
----------------

0 commit comments

Comments
 (0)