about summary refs log tree commit diff
path: root/src/bootstrap
diff options
context:
space:
mode:
authorMichael Woerister <michaelwoerister@posteo>2021-10-19 14:58:21 +0200
committerMichael Woerister <michaelwoerister@posteo>2021-10-19 14:58:21 +0200
commit456283c95dfc21a94a3f48e26a0809bc8976afbe (patch)
treeae4d2222aecf0de9dce988e8d80384dfe5f10f71 /src/bootstrap
parentd45ed7502ad225739270a368528725930f54b7b6 (diff)
downloadrust-456283c95dfc21a94a3f48e26a0809bc8976afbe.tar.gz
rust-456283c95dfc21a94a3f48e26a0809bc8976afbe.zip
Make new symbol mangling scheme default for compiler itself.
Diffstat (limited to 'src/bootstrap')
-rw-r--r--src/bootstrap/builder.rs20
-rw-r--r--src/bootstrap/config.rs4
2 files changed, 21 insertions, 3 deletions
diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
index ac1841b6913..d5656f0f37e 100644
--- a/src/bootstrap/builder.rs
+++ b/src/bootstrap/builder.rs
@@ -972,8 +972,26 @@ impl<'a> Builder<'a> {
             }
         }
 
-        if self.config.rust_new_symbol_mangling {
+        let use_new_symbol_mangling = match self.config.rust_new_symbol_mangling {
+            Some(setting) => {
+                // If an explicit setting is given, use that
+                setting
+            }
+            None => {
+                if mode == Mode::Std {
+                    // The standard library defaults to the legacy scheme
+                    false
+                } else {
+                    // The compiler and tools default to the new scheme
+                    true
+                }
+            }
+        };
+
+        if use_new_symbol_mangling {
             rustflags.arg("-Zsymbol-mangling-version=v0");
+        } else {
+            rustflags.arg("-Zsymbol-mangling-version=legacy");
         }
 
         // FIXME: It might be better to use the same value for both `RUSTFLAGS` and `RUSTDOCFLAGS`,
diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs
index 9a48b768cb3..6585152ab31 100644
--- a/src/bootstrap/config.rs
+++ b/src/bootstrap/config.rs
@@ -140,7 +140,7 @@ pub struct Config {
     pub rust_verify_llvm_ir: bool,
     pub rust_thin_lto_import_instr_limit: Option<u32>,
     pub rust_remap_debuginfo: bool,
-    pub rust_new_symbol_mangling: bool,
+    pub rust_new_symbol_mangling: Option<bool>,
     pub rust_profile_use: Option<String>,
     pub rust_profile_generate: Option<String>,
     pub llvm_profile_use: Option<String>,
@@ -870,7 +870,7 @@ impl Config {
             config.rust_run_dsymutil = rust.run_dsymutil.unwrap_or(false);
             optimize = rust.optimize;
             ignore_git = rust.ignore_git;
-            set(&mut config.rust_new_symbol_mangling, rust.new_symbol_mangling);
+            config.rust_new_symbol_mangling = rust.new_symbol_mangling;
             set(&mut config.rust_optimize_tests, rust.optimize_tests);
             set(&mut config.codegen_tests, rust.codegen_tests);
             set(&mut config.rust_rpath, rust.rpath);