Skip to content

Commit

Permalink
ReleaseNotes: add lld/ELF notes
Browse files Browse the repository at this point in the history
  • Loading branch information
MaskRay committed Jul 7, 2024
1 parent d00f1c1 commit 8a41327
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions lld/docs/ReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,21 @@ Non-comprehensive list of changes in this release
ELF Improvements
----------------

* ``EI_OSABI`` in the output is now inferred from input object files.
(`#97144 <https://github.com/llvm/llvm-project/pull/97144>`_)
* ``--compress-sections <section-glib>={none,zlib,zstd}[:level]`` is added to compress
matched output sections without the ``SHF_ALLOC`` flag.
(`#84855 <https://github.com/llvm/llvm-project/pull/84855>`_)
(`#90567 <https://github.com/llvm/llvm-project/pull/90567>`_)
* The default compression level for zlib is now independent of linker
optimization level (``Z_BEST_SPEED``).
* zstd compression parallelism no longer requires ``ZSTD_MULITHREAD`` build.
* ``GNU_PROPERTY_AARCH64_FEATURE_PAUTH`` notes, ``R_AARCH64_AUTH_ABS64`` and
``R_AARCH64_AUTH_RELATIVE`` relocations are now supported.
(`#72714 <https://github.com/llvm/llvm-project/pull/72714>`_)
* ``--no-allow-shlib-undefined`` now rejects non-exported definitions in the
``def-hidden.so ref.so`` case.
(`#86777 <https://github.com/llvm/llvm-project/issues/86777>`_)
* ``--debug-names`` is added to create a merged ``.debug_names`` index
from input ``.debug_names`` sections. Type units are not handled yet.
(`#86508 <https://github.com/llvm/llvm-project/pull/86508>`_)
Expand All @@ -44,13 +50,40 @@ ELF Improvements
(typical for embedded). It also makes full LTO feasible in such cases, since
IR merging currently prevents the linker script from referring to input
files. (`#90007 <https://github.com/llvm/llvm-project/pull/90007>`_)
* ``--default-script`/``-dT`` is implemented to specify a default script that is processed
if ``--script``/``-T`` is not specified.
(`#89327 <https://github.com/llvm/llvm-project/pull/89327>`_)
* ``--force-group-allocation`` is implemented to discard ``SHT_GROUP`` sections
and combine relocation sections if their relocated section group members are
placed to the same output section.
(`#94704 <https://github.com/llvm/llvm-project/pull/94704>`_)
* ``--build-id`` now defaults to generating a 20-byte digest ("sha1") instead
of 8-byte ("fast"). This improves compatibility with RPM packaging tools.
(`#93943 <https://github.com/llvm/llvm-project/pull/93943>`_)
* ``-z lrodata-after-bss`` is implemented to place ``.lrodata`` after ``.bss``.
(`#81224 <https://github.com/llvm/llvm-project/pull/81224>`_)
* ``--export-dynamic`` no longer creates dynamic sections for ``-no-pie`` static linking.
* ``--lto-emit-asm`` is now added as the canonical spelling of ``--plugin-opt=emit-llvm``.
* ``--lto-emit-llvm`` now uses the pre-codegen module.
(`#97480 <https://github.com/llvm/llvm-project/pull/97480>`_)
* When AArch64 PAuth is enabled, ``-z pack-relative-relocs`` now encodes ``R_AARCH64_AUTH_RELATIVE`` relocations in ``.rela.auth.dyn``.
(`#96496 <https://github.com/llvm/llvm-project/pull/96496>`_)
* ``-z gcs`` and ``-z gcs-report`` are now supported for AArch64 Guarded Control Stack extension.
* ``-r`` now forces ``-Bstatic``.
* Thumb2 PLT is now supported for Cortex-M processors.
(`#93644 <https://github.com/llvm/llvm-project/pull/93644>`_)
* ``DW_EH_sdata4`` of addresses larger than 0x80000000 is now supported for MIPS32.
(`#92438 <https://github.com/llvm/llvm-project/pull/92438>`_)
* Certain unknown section types are rejected.
(`#85173 <https://github.com/llvm/llvm-project/pull/85173>`_)
* ``PROVIDE(lhs = rhs) PROVIDE(rhs = ...)``, ``lhs`` is now defined only if ``rhs`` is needed.
(`#74771 <https://github.com/llvm/llvm-project/issues/74771>`_)
(`#87530 <https://github.com/llvm/llvm-project/pull/87530>`_)
* Orphan placement is refined to prefer the last similar section when its rank <= orphan's rank.
(`#94099 <https://github.com/llvm/llvm-project/pull/94099>`_)
Non-alloc orphan sections are now placed at the end.
(`#94519 <https://github.com/llvm/llvm-project/pull/94519>`_)
* R_X86_64_REX_GOTPCRELX of the addq form is no longer incorrectly optimized when the address is larger than 0x80000000.

Breaking changes
----------------
Expand Down

0 comments on commit 8a41327

Please sign in to comment.