[PATCH] D146776: [llvm] Preliminary fat-lto-objects support

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 20 14:03:21 PDT 2023


MaskRay accepted this revision.
MaskRay added a comment.
This revision is now accepted and ready to land.

In D146776#4435885 <https://reviews.llvm.org/D146776#4435885>, @MaskRay wrote:

> Thanks for the update. This fixes `-DBUILD_SHARED_LIBS=on` build of mine.
>
> Perhaps `llvm/test/Bitcode/` tests (which don't normally test `-passes=`) should be moved to elsewhere, e.g. `llvm/test/Transforms/EmbedBitcodePass/` ?
>
> Another strange thing to fix:
>
> `llc a.ll` => `.type   .Lllvm.embedded.object, at object`
>
> We don't normally set attributes on temporary symbols (`.L`), which do not normally have symbol table entries anyway.

This is due to `private` but I think this is acceptable. Both GNU assembler and LLVM integrated assembler do not create a symbol table entry, so this is fine. This likely does not justify adding a special case for `private` lowering to the underlying ELF section.

Feel free to land this one with a `readelf -S` test to check `SHF_EXCLUDE`. Maybe give some time for the Clang patch. Landing this one shall make reviewing the Clang part easier.



================
Comment at: llvm/docs/FatLTO.rst:62
+Currently, using LTO with LLVM fat lto objects is supported by LLD and by the
+GNU linkers via the LLVMGold plugin. This may change in the future, but
+extending support to other linkers isn't planned for now.
----------------
`LLVMgold.so` plugin.

Consider using hypertext to link this to `llvm/docs/GoldPlugin.rst`. I don't recall immediately the reST syntax...


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D146776/new/

https://reviews.llvm.org/D146776



More information about the llvm-commits mailing list