]> git.lizzy.rs Git - rust.git/blob - src/rustc/rustc.rs
Auto merge of #55780 - ogoffart:span_source_text, r=petrochenkov
[rust.git] / src / rustc / rustc.rs
1
2 fn main() {
3     // Pull in jemalloc when enabled.
4     //
5     // Note that we're pulling in a static copy of jemalloc which means that to
6     // pull it in we need to actually reference its symbols for it to get
7     // linked. The two crates we link to here, std and rustc_driver, are both
8     // dynamic libraries. That means to pull in jemalloc we need to actually
9     // reference allocation symbols one way or another (as this file is the only
10     // object code in the rustc executable).
11     #[cfg(feature = "jemalloc-sys")]
12     {
13         use std::os::raw::{c_void, c_int};
14
15         #[used]
16         static _F1: unsafe extern fn(usize, usize) -> *mut c_void =
17             jemalloc_sys::calloc;
18         #[used]
19         static _F2: unsafe extern fn(*mut *mut c_void, usize, usize) -> c_int =
20             jemalloc_sys::posix_memalign;
21         #[used]
22         static _F3: unsafe extern fn(usize, usize) -> *mut c_void =
23             jemalloc_sys::aligned_alloc;
24         #[used]
25         static _F4: unsafe extern fn(usize) -> *mut c_void =
26             jemalloc_sys::malloc;
27         #[used]
28         static _F5: unsafe extern fn(*mut c_void, usize) -> *mut c_void =
29             jemalloc_sys::realloc;
30         #[used]
31         static _F6: unsafe extern fn(*mut c_void) =
32             jemalloc_sys::free;
33     }
34
35     rustc_driver::set_sigpipe_handler();
36     rustc_driver::main()
37 }