-
Notifications
You must be signed in to change notification settings - Fork 253
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
[FR] remove superfluous LLVM libraries #2010
Comments
Thanks for flagging this. The
This is by design. AOSP clang collects PGO and BOLT profiles when building Android so all backends get exercised and profiled. The CMake support only builds for the host architecture.
For now, we plan to leave plugin support off considering the significant size reduction and build speedup, esp. for users on old hardware. |
https://android-review.googlesource.com/c/platform/ndk/+/3038133. Will cherry-pick to r27 since that also shaves about half a GB off the install size. We had some code that stripped those (the toolchain you give me has those unstripped for whatever reason), but they either moved or whoever wrote that code in the first place didn't test it, because it was stripping the wrong location :( |
I am not sure why the libraries are not stripped. Filed internal bug b/333762307 to track this down. |
@pirama-arumuga-nainar @DanAlbert Thanks for your kindly response introducing more NDK design perspectives! FYI, when
That means currently those bloated binaries and libraries, whose size are around 100MB and more, contain multiple copies of (at least part of) With
So I believe enabling The problem is whether optimizers, especially BOLT, work with dynamic libraries. I have noticed that both upstream CMake and our build scripts only perform BOLT over the |
A change in that policy would be up to @pirama-arumuga-nainar, as I wouldn't be the one paying the maintenance costs for it. Closing as we've cleaned up the misleading mess, and there's currently no plan to add plugin support. If the toolchain team decides they want to take on the costs of plugin support, we'll get an FR filed to track it (or it'll just show up in the changelog). |
Description
I am curious about how LLVM toolchain distributed with NDK are built and find some potential improvements in current versions (r26.2/r487747e and r28/r522817):
libclang.so
,libclang-cpp.so
andlibLLVM-17.so
are built, beacuseLLVM_BUILD_LLVM_DYLIB
isON
since the build scripts are refactored, and...LLVM_LINK_LLVM_DYLIB
is not set (OFF
by default since introduced by llvm/llvm-project@9211396).By the way, I find
LLVM_ENABLE_THREADS
is explicitly defined asON
, which is default on most platforms supported by LLVM.Those are not bugs because functionalities are not broken, so this issue is labeled with "enhancement". As for "plugin support in Clang", it would be nice to compile and load out-of-tree passes independently rather than compile the whole modified LLVM toolchain.
The text was updated successfully, but these errors were encountered: