-
Notifications
You must be signed in to change notification settings - Fork 12.6k
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
Add a "slim" staticlib variant that does not include a copy of std #111594
Comments
If at all possible it would be preferable to have this somehow incorporated in the default way of building staticlibs and instead have "fat" staticlibs be the "new" configurable option for people who still need that variation. |
While I agree that it would be a better default, I don't think it's a good idea to change that default at this point. It's going to break existing usage that assumes that |
A couple of days ago my PR #106560 got merged. By combining The |
Currently when building a
staticlib
, the resulting static library contains a copy of all of std and various other things. This makes the minimum size of astaticlib
something around 20MB with Rust 1.69 on Linux x86-64, which is not exactly small.This is currently a blocker for GStreamer to ship (static) plugins written in Rust on Android/iOS (and elsewhere) as that adds up to a couple of 100MB.
While this can in theory be solved after the fact by repackaging the
ar
archives and having a single copy of std, this seems like something that could be useful to solve in general.An obvious solution here would be having some kind of "slim"
staticlib
variant which does not include a copy of everything every time but instead require the final linking step (to an executable or shared library) to list a staticlibstd.a
(among other things). This would also require to ship a static version of std together with the already existing shared version.--print native-static-libs
would then print all those other static libraries too.The text was updated successfully, but these errors were encountered: