Skip to content

ReleaseNotes: add lld/ELF notes #124508

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 28, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions lld/docs/ReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,45 @@ ELF Improvements
* ``-z nosectionheader`` has been implemented to omit the section header table.
The operation is similar to ``llvm-objcopy --strip-sections``.
(`#101286 <https://github.com/llvm/llvm-project/pull/101286>`_)
* ``--randomize-section-padding=<seed>`` is introduced to insert random padding
between input sections and at the start of each segment. This can be used to
control measurement bias in A/B experiments.
(`#117653 <https://github.com/llvm/llvm-project/pull/117653>`_)
* The reproduce tarball created with ``--reproduce=`` now excludes directories
specified in the ``--dependency-file`` argument (used by Ninja). This
resolves an error where non-existent directories could cause issues when
invoking ``ld.lld @response.txt``.
* ``--symbol-ordering-file=`` and call graph profile can now be used together.
* When ``--call-graph-ordering-file=`` is specified, ``.llvm.call-graph-profile``
sections in relocatable files are no longer used.
* ``--lto-basic-block-sections=labels`` is deprecated in favor of
``--lto-basic-block-address-map``.
(`#110697 <https://github.com/llvm/llvm-project/pull/110697>`_)
* In non-relocatable links, a ``.note.GNU-stack`` section with the
``SHF_EXECINSTR`` flag is now rejected unless ``-z execstack`` is specified.
(`#124068 <https://github.com/llvm/llvm-project/pull/124068>`_)
* In relocatable links, the ``sh_entsize`` member of a ``SHF_MERGE`` section
with relocations is now respected in the output.
* Quoted names can now be used in output section phdr, memory region names,
``OVERLAY``, the LHS of ``--defsym``, and ``INSERT AFTER``.
* Section ``CLASS`` linker script syntax binds input sections to named classes,
which are referenced later one or more times. This provides access to the
automatic spilling mechanism of `--enable-non-contiguous-regions` without
globally changing the semantics of section matching. It also independently
increases the expressive power of linker scripts.
(`#95323 <https://github.com/llvm/llvm-project/pull/95323>`_)
* ``INCLUDE`` cycle detection has been fixed. A linker script can now be
included twice.
* The ``archivename:`` syntax when matching input sections is now supported.
(`#119293 <https://github.com/llvm/llvm-project/pull/119293>`_)
* To support Arm v6-M, short thunks using B.w are no longer generated.
(`#118111 <https://github.com/llvm/llvm-project/pull/118111>`_)
* For AArch64, BTI-aware long branch thunks can now be created to a destination
function without a BTI instruction.
(`#108989 <https://github.com/llvm/llvm-project/pull/108989>`_)
(`#116402 <https://github.com/llvm/llvm-project/pull/116402>`_)
* Relocations related to GOT and TLSDESC for the AArch64 Pointer Authentication ABI
are now supported.
* Supported relocation types for x86-64 target:
* ``R_X86_64_CODE_4_GOTPCRELX`` (`#109783 <https://github.com/llvm/llvm-project/pull/109783>`_) (`#116737 <https://github.com/llvm/llvm-project/pull/116737>`_)
* ``R_X86_64_CODE_4_GOTTPOFF`` (`#116634 <https://github.com/llvm/llvm-project/pull/116634>`_)
Expand Down
Loading