diff --git a/lld/docs/ReleaseNotes.rst b/lld/docs/ReleaseNotes.rst --- a/lld/docs/ReleaseNotes.rst +++ b/lld/docs/ReleaseNotes.rst @@ -24,6 +24,13 @@ ELF Improvements ---------------- +* ``-z start-stop-gc`` is now supported and becomes the default. + (`D96914 `_) + (`rG6d2d3bd0 `_) +* ``--shuffle-sections=`` has been changed to ``--shuffle-sections==``. + If seed is -1, the matched input sections are reversed. + (`D98445 `_) + (`D98679 `_) * ``-Bsymbolic -Bsymbolic-functions`` has been changed to behave the same as ``-Bsymbolic-functions``. This matches GNU ld. (`D102461 `_) * ``-Bno-symbolic`` has been added. @@ -32,6 +39,75 @@ (`D103303 `_) * ``-Bsymbolic-non-weak-functions`` has been added as a ``STB_GLOBAL`` subset of ``-Bsymbolic-functions``. (`D102570 `_) +* ``--no-allow-shlib-undefined`` has been improved to catch more cases. + (`D101996 `_) +* ``__rela_iplt_start`` is no longer defined for -pie/-shared. + This makes GCC/Clang ``-static-pie`` built executables work. + (`rG8cb78e99 `_) +* IRELATIVE/TLSDESC relocations now support ``-z rel``. + (`D100544 `_) +* Section groups with a zero flag are now supported. + This is used by ``comdat nodeduplicate`` in LLVM IR. + (`D96636 `_) + (`D106228 `_) +* Defined symbols are now resolved before undefined symbols to stabilize the bheavior of archive member extraction. + (`D95985 `_) +* ``STB_WEAK`` symbols are now preferred over COMMON symbols as a fix to a ``--fortran-common`` regression. + (`D105945 `_) +* Absolute relocations referencing undef weak now produce dynamic relocations for -pie, matching GOT-generating relocations. + (`D105164 `_) +* Exported symbols are now communicated to the LTO library so as to make LTO + based whole program devirtualization (``-flto=thin -fwhole-program-vtables``) + work with shared objects. + (`D91583 `_) +* Whole program devirtualization now respects ``local:`` version nodes in a version script. + (`D98220 `_) + (`D98686 `_) +* ``local:`` version nodes in a version script now apply to non-default version symbols. + (`D107234 `_) +* If an object file defines both ``foo`` and ``foo@v1``, now only ``foo@v1`` will be in the output. + (`D107235 `_) +* Copy relocations on non-default version symbols are now supported. + (`D107535 `_) + +Linker script changes: + +* ``.``, ``$``, and quotes can now be used in symbol names in expressions. + (`D98306 `_) + (`rGe7a7ad13 `_) +* Fixed value of ``.`` in the output section description of ``.tbss``. + (`D107288 `_) +* ``NOLOAD`` sections can now be placed in a ``PT_LOAD`` program header. + (`D103815 `_) +* ``OUTPUT_FORMAT(default, big, little)`` now consults ``-EL`` and ``-EB``. + (`D96214 `_) +* The ``OVERWRITE_SECTIONS`` command has been added. + (`D103303 `_) +* The section order within an ``INSERT AFTER`` command is now preserved. + (`D105158 `_) + +Architecture specific changes: + +* aarch64_be is now supported. + (`D96188 `_) +* The AMDGPU port now supports ``--amdhsa-code-object-version=4`` object files; + (`D95811 `_) +* The ARM port now accounts for PC biases in range extension thunk creation. + (`D97550 `_) +* The AVR port now computes ``e_flags``. + (`D99754 `_) +* The Mips port now omits unneeded dynamic relocations for PIE non-preemptible TLS. + (`D101382 `_) +* The PowerPC port now supports ``--power10-stubs=no`` to omit Power10 instructions from call stubs. + (`D94625 `_) +* Fixed a thunk creation bug in the PowerPC port when TOC/NOTOC calls are mixed. + (`D101837 `_) +* The RISC-V port now resolves undefined weak relocations to the current location if not using PLT. + (`D103001 `_) +* ``R_386_GOTOFF`` relocations from .debug_info are now allowed to be compatible with GCC. + (`D95994 `_) +* ``gotEntrySize`` has been added to improve support for the ILP32 ABI of x86-64. + (`D102569 `_) Breaking changes ----------------