Skip to content

Commit e0e6b1e

Browse files
committed
ReleaseNotes: add lld/ELF notes
Differential Revision: https://reviews.llvm.org/D97113
1 parent 4918a3d commit e0e6b1e

File tree

1 file changed

+66
-2
lines changed

1 file changed

+66
-2
lines changed

lld/docs/ReleaseNotes.rst

Lines changed: 66 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,77 @@ Non-comprehensive list of changes in this release
2424
ELF Improvements
2525
----------------
2626

27-
* ``--error-handling-script`` is added to allow for user-defined handlers upon
27+
* ``--dependency-file`` has been added. (Similar to ``cc -M -MF``.)
28+
(`D82437 <https://reviews.llvm.org/D82437>`_)
29+
* ``--error-handling-script`` has been added to allow for user-defined handlers upon
2830
missing libraries. (`D87758 <https://reviews.llvm.org/D87758>`_)
31+
* ``--exclude-libs`` can now localize defined version symbols and bitcode referenced libcall symbols.
32+
(`D94280 <https://reviews.llvm.org/D94280>`_)
33+
* ``--gdb-index`` now works with DWARF v5 and ``--icf={safe,all}``.
34+
(`D85579 <https://reviews.llvm.org/D85579>`_)
35+
(`D89751 <https://reviews.llvm.org/D89751>`_)
36+
* ``--gdb-index --emit-relocs`` can now be used together.
37+
(`D94354 <https://reviews.llvm.org/D94354>`_)
38+
* ``--icf={safe,all}`` conservatively no longer fold text sections with LSDA.
39+
Previously ICF on ``-fexceptions`` code could be unsafe.
40+
(`D84610 <https://reviews.llvm.org/D84610>`_)
41+
* ``--icf={safe,all}`` can now fold two sections with relocations referencing aliased symbols.
42+
(`D88830 <https://reviews.llvm.org/D88830>`_)
43+
* ``--lto-pseudo-probe-for-profiling`` has been added.
44+
(`D95056 <https://reviews.llvm.org/D95056>`_)
45+
* ``--no-lto-whole-program-visibility`` has been added.
46+
(`D92060 <https://reviews.llvm.org/D92060>`_)
47+
* ``--oformat-binary`` has been fixed to respect LMA.
48+
(`D85086 <https://reviews.llvm.org/D85086>`_)
49+
* ``--reproduce`` includes ``--lto-sample-profile``, ``--just-symbols``, ``--call-graph-ordering-file``, ``--retain-symbols-file`` files.
50+
* ``-r --gc-sections`` is now supported.
51+
(`D84131 <https://reviews.llvm.org/D84131>`_)
52+
* A ``-u`` specified symbol will no longer change the binding to ``STB_WEAK``.
53+
(`D88945 <https://reviews.llvm.org/D88945>`_)
54+
* ``--wrap`` support has been improved.
55+
+ If ``foo`` is not referenced, there is no longer an undefined symbol ``__wrap_foo``.
56+
+ If ``__real_foo`` is not referenced, there is no longer an undefined symbol ``foo``.
57+
* ``SHF_LINK_ORDER`` sections can now have zero ``sh_link`` values.
58+
* ``SHF_LINK_ORDER`` and non-``SHF_LINK_ORDER`` sections can now be mixed within an input section description.
59+
(`D84001 <https://reviews.llvm.org/D84001>`_)
60+
* ``LOG2CEIL`` is now supported in linker scripts.
61+
(`D84054 <https://reviews.llvm.org/D84054>`_)
62+
* ``DEFINED`` has been fixed to check whether the symbol is defined.
63+
(`D83758 <https://reviews.llvm.org/D83758>`_)
64+
* An input section description may now have multiple ``SORT_*``.
65+
The matched sections are ordered by radix sort with the keys being ``(SORT*, --sort-section, input order)``.
66+
(`D91127 <https://reviews.llvm.org/D91127>`_)
67+
* Users can now provide a GNU style linker script to convert ``.ctors`` into ``.init_array``.
68+
(`D91187 <https://reviews.llvm.org/D91187>`_)
69+
* An empty output section can now be discarded even if it is assigned to a program header.
70+
(`D92301 <https://reviews.llvm.org/D92301>`_)
71+
* Non-``SHF_ALLOC`` sections now have larger file offsets than ``SHF_ALLOC`` sections.
72+
(`D85867 <https://reviews.llvm.org/D85867>`_)
73+
* Some symbol versioning improvements.
74+
+ Defined ``foo@@v1`` now resolve undefined ``foo@v1`` (`D92259 <https://reviews.llvm.org/D92259>`_)
75+
+ Undefined ``foo@v1`` now gets an error (`D92260 <https://reviews.llvm.org/D92260>`_)
76+
* The AArch64 port now has support for ``STO_AARCH64_VARIANT_PCS`` and ``DT_AARCH64_VARIANT_PCS``.
77+
(`D93045 <https://reviews.llvm.org/D93045>`_)
78+
* The AArch64 port now has support for ``R_AARCH64_LD64_GOTPAGE_LO15``.
79+
* The PowerPC64 port now detects missing R_PPC64_TLSGD/R_PPC64_TLSLD and disables TLS relaxation.
80+
This allows linking with object files produced by very old IBM XL compilers.
81+
(`D92959 <https://reviews.llvm.org/D92959>`_)
82+
* Many PowerPC PC-relative relocations are now supported.
83+
* ``R_PPC_ADDR24`` and ``R_PPC64_ADDR16_HIGH`` are now supported.
84+
* powerpcle is now supported. Tested with FreeBSD loader and freestanding.
85+
(`D93917 <https://reviews.llvm.org/D93917>`_)
86+
* RISC-V: the first ``SHT_RISCV_ATTRIBUTES`` section is now retained.
87+
(`D86309 <https://reviews.llvm.org/D86309>`_)
88+
* LTO pipeline now defaults to the new PM if the CMake variable ``ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER`` is on.
89+
(`D92885 <https://reviews.llvm.org/D92885>`_)
2990

3091
Breaking changes
3192
----------------
3293

33-
* ...
94+
* A COMMON symbol can now cause the fetch of an archive providing a ``STB_GLOBAL`` definition.
95+
This behavior follows GNU ld newer than December 1999.
96+
If you see ``duplicate symbol`` errors with the new behavior, check out `PR49226 <https://bugs.llvm.org//show_bug.cgi?id=49226>`_.
97+
(`D86142 <https://reviews.llvm.org/D86142>`_)
3498

3599
COFF Improvements
36100
-----------------

0 commit comments

Comments
 (0)