diff options
| author | Fangrui Song <i@maskray.me> | 2024-07-06 18:03:39 -0700 |
|---|---|---|
| committer | Fangrui Song <i@maskray.me> | 2024-07-06 18:03:39 -0700 |
| commit | 8a41327948e7611e851234782b8005d615c5c92c (patch) | |
| tree | d55ab1a741e6ab6c8bbdd856740cc77cc00a66a4 | |
| parent | d00f1c14dc0ea8a933f90ada0f77781d99a439a7 (diff) | |
| download | llvm-8a41327948e7611e851234782b8005d615c5c92c.zip llvm-8a41327948e7611e851234782b8005d615c5c92c.tar.gz llvm-8a41327948e7611e851234782b8005d615c5c92c.tar.bz2 | |
ReleaseNotes: add lld/ELF notes
| -rw-r--r-- | lld/docs/ReleaseNotes.rst | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lld/docs/ReleaseNotes.rst b/lld/docs/ReleaseNotes.rst index 12ea6de..c95170c 100644 --- a/lld/docs/ReleaseNotes.rst +++ b/lld/docs/ReleaseNotes.rst @@ -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>`_) @@ -44,6 +50,9 @@ 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. @@ -51,6 +60,30 @@ ELF Improvements * ``--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 ---------------- |
