-
Notifications
You must be signed in to change notification settings - Fork 13.4k
ReleaseNotes: add lld/ELF notes #80393
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
Conversation
@llvm/pr-subscribers-lld Author: Fangrui Song (MaskRay) ChangesFull diff: https://github.com/llvm/llvm-project/pull/80393.diff 1 Files Affected:
diff --git a/lld/docs/ReleaseNotes.rst b/lld/docs/ReleaseNotes.rst
index 01669543cd50c..824cc6f56f8d5 100644
--- a/lld/docs/ReleaseNotes.rst
+++ b/lld/docs/ReleaseNotes.rst
@@ -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>`_)
+* ``--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
+ 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>`_)
Breaking changes
----------------
|
""" Once this is approved, @tstellar I think I'll notify you to merge this into |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's there LGTM too, I've suggested a couple of possible additions that you might want to consider.
(`#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>`_) | ||
|
There was a problem hiding this comment.
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>`_)
There was a problem hiding this comment.
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)
There was a problem hiding this comment.
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.
``--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>`_) |
There was a problem hiding this comment.
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>`_)
There was a problem hiding this comment.
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)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
(`#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>`_) | ||
|
There was a problem hiding this comment.
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)
@tstellar This should be in a good shape to be merged:) Thanks |
No description provided.