about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorMichael Woerister <michaelwoerister@posteo>2018-04-16 16:25:29 +0200
committerMichael Woerister <michaelwoerister@posteo>2018-05-03 02:30:14 -0700
commit443f99fca02365c8d4cbc734d290d4b0cc7c3ae6 (patch)
treef33a17d1facc53c387c4b58d6e2c0495b7489d93 /src
parentaed5b9c81540343987649db9a5836bedc7e56258 (diff)
downloadrust-443f99fca02365c8d4cbc734d290d4b0cc7c3ae6.tar.gz
rust-443f99fca02365c8d4cbc734d290d4b0cc7c3ae6.zip
Add -Z cross-lang-lto flag in order to support linker-based LTO.
Diffstat (limited to 'src')
-rw-r--r--src/librustc/session/config.rs2
-rw-r--r--src/librustc_trans/back/write.rs3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
index 59b40e9e2dc..574a8992ad1 100644
--- a/src/librustc/session/config.rs
+++ b/src/librustc/session/config.rs
@@ -1293,6 +1293,8 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options,
           "make the current crate share its generic instantiations"),
     chalk: bool = (false, parse_bool, [TRACKED],
           "enable the experimental Chalk-based trait solving engine"),
+    cross_lang_lto: bool = (false, parse_bool, [TRACKED],
+          "generate build artifacts that are compatible with linker-based LTO."),
 }
 
 pub fn default_lib_output() -> CrateType {
diff --git a/src/librustc_trans/back/write.rs b/src/librustc_trans/back/write.rs
index a14c98acb2d..aeed81fa059 100644
--- a/src/librustc_trans/back/write.rs
+++ b/src/librustc_trans/back/write.rs
@@ -293,7 +293,8 @@ impl ModuleConfig {
         self.inline_threshold = sess.opts.cg.inline_threshold;
         self.obj_is_bitcode = sess.target.target.options.obj_is_bitcode;
         let embed_bitcode = sess.target.target.options.embed_bitcode ||
-            sess.opts.debugging_opts.embed_bitcode;
+                            sess.opts.debugging_opts.embed_bitcode ||
+                            sess.opts.debugging_opts.cross_lang_lto;
         if embed_bitcode {
             match sess.opts.optimize {
                 config::OptLevel::No |