Shrinking While Linking
tweag.io14 points by ingve 3 days ago
14 points by ingve 3 days ago
"If you compiled your code with support for link-time optimization (LTO), it contains another copy (in the form of LLVM bitcode — more on that later) of all our code and the code of all our dependencies."
The author then goes and removes the lto-related code via objcopy. Which is fine, and great, and useful if you care about size more than having link-time optimization enabled for your end users.
But if you are just going to turn around and remove it, you probably shouldn't include it in the first place, which makes the original analysis of 132MB vs 15MB a little misleading.
Misleading how? If your first thought on looking at a Rust-generated static library is that it's fucking huge, it's not misleading at all for someone to tell you that Rust-generated static libraries are mostly LLVM bitcode that you can remove with `objcopy --remove-section .llvmbc`.