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

Paul Kirth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 20 10:01:04 PDT 2023


paulkirth marked 4 inline comments as done.
paulkirth added a comment.

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

> Started looking...
>
> `-DBUILD_SHARED_LIBS=on` uses `-Wl,-z,defs` and can detect some library layering (https://llvm.org/docs/CodingStandards.html#library-layering https://maskray.me/blog/2021-06-13-dependency-related-linker-options)  problems. `ninja LLVMBitWriter` doesn't build due to missing dependencies.
>
> One issue can be addressed with the following change but the dependency may be a bit weird.
>
>   diff --git i/llvm/lib/Bitcode/Writer/CMakeLists.txt w/llvm/lib/Bitcode/Writer/CMakeLists.txt
>   index 2b17aa912016..51849d2d0fc0 100644
>   --- i/llvm/lib/Bitcode/Writer/CMakeLists.txt
>   +++ w/llvm/lib/Bitcode/Writer/CMakeLists.txt
>   @@ -17,2 +17,4 @@ add_llvm_component_library(LLVMBitWriter
>      TargetParser
>   +  TransformUtils
>      )
>
> The other issue (`error: undefined symbol: llvm::ThinLTOBitcodeWriterPass::run`) is more tricky: LLVMipo (`llvm/lib/Transforms/IPO/CMakeLists.txt`) depends on LLVMBitWriter, so LLVMBitWriter cannot depend on LLVMipo.

What if we move the pass into transforms? Yes, its fairly correlated to bitcode writing, but the pass is really just creating a new section using existing utilities, which could just be considered a transform. There's also an argument that this pass should just live wherever the ThinLTOBitcodeWritterPass does. I //think// that should fix both the issues you've mentioned here.

Do you think that would be a better solution?


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