[PATCH] D109192: [WIP/DNM] Support: introduce public API annotation support

Jessica Clarke via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Sep 4 14:20:46 PDT 2021


jrtc27 added a comment.

In D109192#2983869 <https://reviews.llvm.org/D109192#2983869>, @compnerd wrote:

> In D109192#2983824 <https://reviews.llvm.org/D109192#2983824>, @MaskRay wrote:
>
>>> I think that `BUILD_SHARED_LIBS` is desirable, and `LLVM_ENABLE_DYLIB` should go away.  That said, I think that the ideal thing here is to have a different configuration that is less granular than `BUILD_SHARED_LIBS`.  That would correspond to `LLVMTools`, `LLVMCompiler` and depending on the delta, a potential third library.  These three would give us a nice hybrid approach to dynamic and static linking.  It would be dynamic for buckets of use (bintuils, clang, and possibly lld if it makes `LLVMTools` too large) but statically linking large components of LLVM to enable us to take advantage of LTO and DCE amongst that set.  It would try to minimise the cost of the GOT/PLT and IAT so that we don't introduce an extremely heavy penalty for these libraries.
>>
>> Why should `LLVM_ENABLE_DYLIB` go away? To reduce the number of configurations when the few-dylibs scheme is adopted more?
>> Other than that, I don't see any downside.
>
> Because the LLVM build system is far too complex.  Once we have the annotations, I don't see why we should continue to use custom build system logic versus the CMake standard `BUILD_SHARED_LIBS`.  That would allow the few dylib scheme to be adopted and reduce the complexity in the build system and homogenise the distribution and development builds hopefully.

The whole point of the option though is to make incremental builds faster which is really helpful for development. I'd be against removing that as all my development builds use it.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D109192



More information about the llvm-commits mailing list