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

Conversation

MaskRay
Copy link
Member

@MaskRay MaskRay commented Feb 2, 2024

No description provided.

@llvmbot
Copy link
Collaborator

llvmbot commented Feb 2, 2024

@llvm/pr-subscribers-lld

Author: Fangrui Song (MaskRay)

Changes

Full diff: https://github.com/llvm/llvm-project/pull/80393.diff

1 Files Affected:

  • (modified) lld/docs/ReleaseNotes.rst (+34)
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
 ----------------

@MaskRay
Copy link
Member Author

MaskRay commented Feb 2, 2024

"""
Merging is blocked
The base branch does not allow updates. Learn more about protected branches.
"""

Once this is approved, @tstellar I think I'll notify you to merge this into release/18.x?
Perhaps you can edit https://discourse.llvm.org/t/release-18-x-branch-has-been-created/76480/4 to tell us what to do :) Probably give an example PR.

@MaskRay MaskRay requested a review from smeenai February 2, 2024 06:19
Copy link
Member

@arichardson arichardson left a comment

Choose a reason for hiding this comment

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

Lgtm

Copy link
Collaborator

@smithp35 smithp35 left a 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>`_)

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.

``--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)

Copy link
Collaborator

@smeenai smeenai left a 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>`_)

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)

lld/docs/ReleaseNotes.rst Outdated Show resolved Hide resolved
@MaskRay MaskRay added this to the LLVM 18.X Release milestone Feb 2, 2024
@MaskRay
Copy link
Member Author

MaskRay commented Feb 2, 2024

@tstellar This should be in a good shape to be merged:) Thanks

@tstellar tstellar merged commit 140ad18 into llvm:release/18.x Feb 3, 2024
9 checks passed
@MaskRay MaskRay deleted the 18.x-lld-elf branch February 5, 2024 22:16
tstellar pushed a commit to tstellar/llvm-project that referenced this pull request Feb 14, 2024
tstellar pushed a commit to tstellar/llvm-project that referenced this pull request Feb 14, 2024
tstellar pushed a commit to tstellar/llvm-project that referenced this pull request Feb 14, 2024
tstellar pushed a commit to tstellar/llvm-project that referenced this pull request Feb 14, 2024
@pointhex pointhex mentioned this pull request May 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Development

Successfully merging this pull request may close these issues.

6 participants