diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-01-04 21:23:09 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-04 21:23:09 +0100 |
| commit | e1a7743971077e96733e051396c3afab751f4b79 (patch) | |
| tree | 023df4393108ae353dcbc651f3ed546c85199adf /src | |
| parent | b9694a132f7857fb958d87867ba166aee2d392df (diff) | |
| parent | e266cb90defc63c574c1fccaccdea0cb8133557f (diff) | |
Rollup merge of #92516 - Kobzol:bootstrap-symbol-mangling, r=Mark-Simulacrum
Do not use deprecated -Zsymbol-mangling-version in bootstrap `-Zsymbol-mangling-version` now produces warnings unconditionally. So if you want to use legacy mangling for the compiler (`new-symbol-mangling = false` in `config.toml`), the build is now littered with warnings. However, with this change, stage 1 `std` doesn't compile: ``` error: `-C symbol-mangling-version=legacy` requires `-Z unstable-options` ``` Even after the bootstrap compiler is updated and it will support `-Csymbol-mangling-version`, the bootstrap code would either need to use `-Z` for the legacy mangling or use `-C` in combination with `-Z unstable-options` (because `-C` + legacy is not allowed without the unstable options). Should we just add `-Z unstable-options` to `std` compilation to resolve this? Btw I use legacy mangling because the new mangling is not supported by [Hotspot](https://github.com/KDAB/hotspot).
Diffstat (limited to 'src')
| -rw-r--r-- | src/bootstrap/builder.rs | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs index 917abde9de1..6ccf8b1d522 100644 --- a/src/bootstrap/builder.rs +++ b/src/bootstrap/builder.rs @@ -988,10 +988,20 @@ impl<'a> Builder<'a> { } }; - if use_new_symbol_mangling { - rustflags.arg("-Zsymbol-mangling-version=v0"); + // cfg(bootstrap) -- drop the compiler.stage == 0 branch. + if compiler.stage == 0 { + if use_new_symbol_mangling { + rustflags.arg("-Zsymbol-mangling-version=v0"); + } else { + rustflags.arg("-Zsymbol-mangling-version=legacy"); + } } else { - rustflags.arg("-Zsymbol-mangling-version=legacy"); + if use_new_symbol_mangling { + rustflags.arg("-Csymbol-mangling-version=v0"); + } else { + rustflags.arg("-Csymbol-mangling-version=legacy"); + rustflags.arg("-Zunstable-options"); + } } // FIXME: It might be better to use the same value for both `RUSTFLAGS` and `RUSTDOCFLAGS`, |
