]> git.lizzy.rs Git - rust.git/blob - src/librustc/Cargo.toml
Fixes issue #43205: ICE in Rvalue::Len evaluation.
[rust.git] / src / librustc / Cargo.toml
1 [package]
2 authors = ["The Rust Project Developers"]
3 name = "rustc"
4 version = "0.0.0"
5
6 [lib]
7 name = "rustc"
8 path = "lib.rs"
9 crate-type = ["dylib"]
10
11 [dependencies]
12 arena = { path = "../libarena" }
13 fmt_macros = { path = "../libfmt_macros" }
14 graphviz = { path = "../libgraphviz" }
15 jobserver = "0.1"
16 log = "0.3"
17 owning_ref = "0.3.3"
18 rustc_back = { path = "../librustc_back" }
19 rustc_bitflags = { path = "../librustc_bitflags" }
20 rustc_const_math = { path = "../librustc_const_math" }
21 rustc_data_structures = { path = "../librustc_data_structures" }
22 rustc_errors = { path = "../librustc_errors" }
23 serialize = { path = "../libserialize" }
24 syntax = { path = "../libsyntax" }
25 syntax_pos = { path = "../libsyntax_pos" }
26
27 # Note that these dependencies are a lie, they're just here to get linkage to
28 # work.
29 #
30 # We're creating a bunch of dylibs for the compiler but we're also compiling a
31 # bunch of crates.io crates. Everything in the compiler is compiled as an
32 # rlib/dylib pair but all crates.io crates tend to just be rlibs. This means
33 # we've got a problem for dependency graphs that look like:
34 #
35 #           foo - rustc_trans
36 #         /                  \
37 #   rustc                     ---- rustc_driver
38 #         \                     /
39 #           foo - rustc_metadata
40 #
41 # Here the crate `foo` is linked into the `rustc_trans` and the
42 # `rustc_metadata` dylibs, meaning we've got duplicate copies! When we then
43 # go to link `rustc_driver` the compiler notices this and gives us a compiler
44 # error.
45 #
46 # To work around this problem we just add these crates.io dependencies to the
47 # `rustc` crate which is a shared dependency above. That way the crate `foo`
48 # shows up in the dylib for the `rustc` crate, deduplicating it and allowing
49 # crates like `rustc_trans` to use `foo` *through* the `rustc` crate.
50 #
51 # tl;dr; this is not needed to get `rustc` to compile, but if you remove it then
52 #        later crate stop compiling. If you can remove this and everything
53 #        compiles, then please feel free to do so!
54 flate2 = "0.2"