Skip to content
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

ReleaseNotes: add lld/ELF notes #80393

Merged
merged 3 commits into from
Feb 3, 2024
Merged
Changes from 1 commit
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
34 changes: 34 additions & 0 deletions lld/docs/ReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,42 @@ ELF Improvements
* ``--fat-lto-objects`` option is added to support LLVM FatLTO.
Without ``--fat-lto-objects``, LLD will link LLVM FatLTO objects using the
relocatable object file. (`D146778 <https://reviews.llvm.org/D146778>`_)
* ``-Bsymbolic-non-weak`` is added to directly bind non-weak definitions.
(`D158322 <https://reviews.llvm.org/D158322>`_)
* ``--lto-validate-all-vtables-have-type-infos``, which complements
``--lto-whole-program-visibility``, is added to disable unsafe whole-program
devirtualization. ``--lto-known-safe-vtables=<glob>`` can be used
to mark known-safe vtable symbols.
(`D155659 <https://reviews.llvm.org/D155659>`_)
Copy link
Collaborator

@smithp35 smithp35 Feb 2, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could be worth adding

* ``--save-temps --lto-emit-asm`` now derives ELF/asm file names from bitcode file names. ld.lld --save-temps a.o d/b.o -o out` will create ELF relocatable files `out.lto.a.o`/`d/out.lto.b.o` instead of `out1.lto.o`/`out2.lto.o`. (`#78835 <https://github.com/llvm/llvm-project/pull/78835>`_)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the suggestion! I noticed this and GOT32_PCREL and was wondering whether they are minor. But your mentioning this made it clear it is worth mentioning:)

This entry may motivate wasm and Mach-O folks to implement a similar change.
(I am actually self motivated to do this if I have some spare time)

* ``--no-allow-shlib-undefined`` now reports errors for DSO referencing
non-exported definitions.
(`#70769 <https://github.com/llvm/llvm-project/pull/70769>`_)
* common-page-size can now be larger than the system page-size.
(`#57618 <https://github.com/llvm/llvm-project/issues/57618>`_)
* When call graph profile information is availablue due to instrumentation or
MaskRay marked this conversation as resolved.
Show resolved Hide resolved
sample PGO, input sections are now sorted using the new ``cdsort`` algorithm,
better than the previous ``hfsort`` algorithm.
(`D152840 <https://reviews.llvm.org/D152840>`_)
* Symbol assignments like ``a = DEFINED(a) ? a : 0;`` are now handled.
(`#65866 <https://github.com/llvm/llvm-project/pull/65866>`_)
* ``OVERLAY`` now supports optional start address and LMA
(`#77272 <https://github.com/llvm/llvm-project/pull/77272>`_)
* Relocations referencing a symbol defined in ``/DISCARD/`` section now lead to
an error.
(`#69295 <https://github.com/llvm/llvm-project/pull/69295>`_)
* For AArch64 MTE, global variable descriptors have been implemented.
(`D152921 <https://reviews.llvm.org/D152921>`_)
* ``R_LARCH_PCREL20_S2``/``R_LARCH_ADD6``/``R_LARCH_CALL36`` and extreme code
model relocations are now supported.
* ``--emit-relocs`` is now supported for RISC-V linker relaxation.
(`D159082 <https://reviews.llvm.org/D159082>`_)
* Call relaxation respects RVC when mixing +c and -c relocatable files.
(`#73977 <https://github.com/llvm/llvm-project/pull/73977>`_)
* ``R_RISCV_SET_ULEB128``/``R_RISCV_SUB_ULEB128`` relocations are now supported.
(`#72610 <https://github.com/llvm/llvm-project/pull/72610>`_)
(`#77261 <https://github.com/llvm/llvm-project/pull/77261>`_)
* RISC-V TLSDESC is now supported.
(`#79239 <https://github.com/llvm/llvm-project/pull/79239>`_)

Copy link
Collaborator

@smithp35 smithp35 Feb 2, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could be worth adding

* R_AARCH64_GOTPCREL32 is now supported. (`#72584 <https://github.com/llvm/llvm-project/pull/72584>`_)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call, as well as R_RISCV_GOT32_PCREL (#72587)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the addition. Added both.

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