Skip to content

Commit ba0ed5b

Browse files
committed
rustc: Move jemalloc from rustc_driver to rustc
This commit moves jemalloc to just the rustc binary rather than the rustc_driver shared library, enusring that it's only used for binaries that opt-in to it like rustc rather than other binaries using librustc_driver like rustdoc/rls/etc. This will hopefully address rust-lang#56980
1 parent 6f839fb commit ba0ed5b

File tree

5 files changed

+15
-15
lines changed

5 files changed

+15
-15
lines changed

Cargo.lock

+1-1
Original file line numberDiff line numberDiff line change
@@ -2214,6 +2214,7 @@ dependencies = [
22142214
name = "rustc-main"
22152215
version = "0.0.0"
22162216
dependencies = [
2217+
"jemalloc-sys 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
22172218
"rustc_codegen_ssa 0.0.0",
22182219
"rustc_driver 0.0.0",
22192220
"rustc_target 0.0.0",
@@ -2400,7 +2401,6 @@ dependencies = [
24002401
"arena 0.0.0",
24012402
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
24022403
"graphviz 0.0.0",
2403-
"jemalloc-sys 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
24042404
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
24052405
"rustc 0.0.0",
24062406
"rustc-rayon 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",

src/librustc_driver/Cargo.toml

-5
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,3 @@ syntax = { path = "../libsyntax" }
3838
smallvec = { version = "0.6.7", features = ["union", "may_dangle"] }
3939
syntax_ext = { path = "../libsyntax_ext" }
4040
syntax_pos = { path = "../libsyntax_pos" }
41-
42-
[dependencies.jemalloc-sys]
43-
version = '0.1.8'
44-
optional = true
45-
features = ['unprefixed_malloc_on_supported_platforms']

src/librustc_driver/lib.rs

-8
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,6 @@ extern crate syntax;
6464
extern crate syntax_ext;
6565
extern crate syntax_pos;
6666

67-
// Note that the linkage here should be all that we need, on Linux we're not
68-
// prefixing the symbols here so this should naturally override our default
69-
// allocator. On OSX it should override via the zone allocator. We shouldn't
70-
// enable this by default on other platforms, so other platforms aren't handled
71-
// here yet.
72-
#[cfg(feature = "jemalloc-sys")]
73-
extern crate jemalloc_sys;
74-
7567
use driver::CompileController;
7668
use pretty::{PpMode, UserIdentifiedItem};
7769

src/rustc/Cargo.toml

+6-1
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,10 @@ rustc_driver = { path = "../librustc_driver" }
1515
# crate is intended to be used by codegen backends, which may not be in-tree.
1616
rustc_codegen_ssa = { path = "../librustc_codegen_ssa" }
1717

18+
[dependencies.jemalloc-sys]
19+
version = '0.1.8'
20+
optional = true
21+
features = ['unprefixed_malloc_on_supported_platforms']
22+
1823
[features]
19-
jemalloc = ['rustc_driver/jemalloc-sys']
24+
jemalloc = ['jemalloc-sys']

src/rustc/rustc.rs

+8
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,14 @@ extern {}
2323

2424
extern crate rustc_driver;
2525

26+
// Note that the linkage here should be all that we need, on Linux we're not
27+
// prefixing the symbols here so this should naturally override our default
28+
// allocator. On OSX it should override via the zone allocator. We shouldn't
29+
// enable this by default on other platforms, so other platforms aren't handled
30+
// here yet.
31+
#[cfg(feature = "jemalloc-sys")]
32+
extern crate jemalloc_sys;
33+
2634
fn main() {
2735
rustc_driver::set_sigpipe_handler();
2836
rustc_driver::main()

0 commit comments

Comments
 (0)