Skip to content
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

rust-std component filled with unnecessary rlibs #44037

Closed
retep998 opened this issue Aug 22, 2017 · 3 comments
Closed

rust-std component filled with unnecessary rlibs #44037

retep998 opened this issue Aug 22, 2017 · 3 comments
Labels
C-cleanup Category: PRs that clean code up or issues documenting cleanup. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-libs-api Relevant to the library API team, which will review and decide on the PR/issue.

Comments

@retep998
Copy link
Member

I'm pretty sure over half the rlibs in this list are completely useless. Normal crates would only need libstd and its dependencies, while plugins don't use rlibs at all.

@retep998 retep998 added the T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) label Aug 22, 2017
@shepmaster shepmaster added C-cleanup Category: PRs that clean code up or issues documenting cleanup. T-libs-api Relevant to the library API team, which will review and decide on the PR/issue. labels Aug 25, 2017
@Mark-Simulacrum Mark-Simulacrum added this to the impl period milestone Sep 15, 2017
@aturon aturon removed this from the impl period milestone Sep 15, 2017
@Mark-Simulacrum
Copy link
Member

@alexcrichton We can certainly remove these rlibs, but I think they are necessary for something -- maybe regular crates with extern crate rustc_serialize; or something like that?

@alexcrichton
Copy link
Member

These are needed for plugins, when you extern crate proc_macro it needs to transitively load all of that crate's dependencies, even if they're rlibs. In this case that pulls in some crates.io rlibs.

Everything that's not transitively a dependency of proc_macro is then still required for unstable plugins, so closing.

@retep998
Copy link
Member Author

But proc_macro is only available as a dylib, not an rlib, which means transitive dependencies are being linked in as dylibs too, which means those rlibs definitely are not needed for proc_macro! Ditto for plugins, they pull in everything as dylibs, not rlibs!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-cleanup Category: PRs that clean code up or issues documenting cleanup. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-libs-api Relevant to the library API team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

5 participants