about summary refs log tree commit diff
path: root/src/libstd/rt/crate_map.rs
diff options
context:
space:
mode:
authorLuqman Aden <laden@csclub.uwaterloo.ca>2013-09-18 04:58:52 -0400
committerLuqman Aden <laden@csclub.uwaterloo.ca>2013-09-18 16:51:27 -0400
commit9621156fc3814edaef6acafc06827e5aa87c9bdd (patch)
tree9acfbcc61bc1bf5e51d9391c72eab32825c41b0b /src/libstd/rt/crate_map.rs
parentd2b0b11aebfe3167bf41f7c6c31cf7b1e396efe7 (diff)
librustc/libstd: No longer pass crate_map to start.
Diffstat (limited to 'src/libstd/rt/crate_map.rs')
-rw-r--r--src/libstd/rt/crate_map.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/libstd/rt/crate_map.rs b/src/libstd/rt/crate_map.rs
index 270b5e5b137..ee89df2bd96 100644
--- a/src/libstd/rt/crate_map.rs
+++ b/src/libstd/rt/crate_map.rs
@@ -16,7 +16,13 @@ use vec;
 use hashmap::HashSet;
 use container::MutableSet;
 
-pub struct ModEntry{
+extern {
+    #[cfg(not(stage0))]
+    #[crate_map]
+    static CRATE_MAP: CrateMap;
+}
+
+pub struct ModEntry {
     name: *c_char,
     log_level: *mut u32
 }
@@ -34,6 +40,11 @@ struct CrateMap {
     children: [*CrateMap, ..1]
 }
 
+#[cfg(not(stage0))]
+pub fn get_crate_map() -> *CrateMap {
+    &'static CRATE_MAP as *CrateMap
+}
+
 unsafe fn version(crate_map: *CrateMap) -> i32 {
     match (*crate_map).version {
         1 => return 1,