diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-03-07 19:57:44 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-07 19:57:44 +0100 |
| commit | 23beda44ea14342f608abf6b3d67a703c1fe9e80 (patch) | |
| tree | d9b1475ebfd7e083c4b89cc87d25964a2332800e | |
| parent | 14260c83acd2d5f689579341151ec610d3de3d86 (diff) | |
| parent | 848f6f9b0d25229a974faf202ebec5d0fb0acf50 (diff) | |
| download | rust-23beda44ea14342f608abf6b3d67a703c1fe9e80.tar.gz rust-23beda44ea14342f608abf6b3d67a703c1fe9e80.zip | |
Rollup merge of #108581 - jfgoog:include-mingw-linker, r=petrochenkov
Add a new config flag, dist.include-mingw-linker. The flag controls whether to copy the linker, DLLs, and various libraries from MinGW into the rustc toolchain. It applies only when the host or target is pc-windows-gnu. The flag is true by default to preserve existing behavior.
| -rw-r--r-- | config.toml.example | 4 | ||||
| -rw-r--r-- | src/bootstrap/config.rs | 4 | ||||
| -rw-r--r-- | src/bootstrap/dist.rs | 4 |
3 files changed, 10 insertions, 2 deletions
diff --git a/config.toml.example b/config.toml.example index a12c4e0700c..dee0d8f254b 100644 --- a/config.toml.example +++ b/config.toml.example @@ -659,6 +659,10 @@ changelog-seen = 2 # Build compiler with the optimization enabled and -Zvalidate-mir, currently only for `std` #validate-mir-opts = 3 +# Copy the linker, DLLs, and various libraries from MinGW into the rustc toolchain. +# Only applies when the host or target is pc-windows-gnu. +#include-mingw-linker = true + # ============================================================================= # Options for specific targets # diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs index 6e64bc20d20..4f417d36511 100644 --- a/src/bootstrap/config.rs +++ b/src/bootstrap/config.rs @@ -190,6 +190,7 @@ pub struct Config { pub dist_sign_folder: Option<PathBuf>, pub dist_upload_addr: Option<String>, pub dist_compression_formats: Option<Vec<String>>, + pub dist_include_mingw_linker: bool, // libstd features pub backtrace: bool, // support for RUST_BACKTRACE @@ -700,6 +701,7 @@ define_config! { src_tarball: Option<bool> = "src-tarball", missing_tools: Option<bool> = "missing-tools", compression_formats: Option<Vec<String>> = "compression-formats", + include_mingw_linker: Option<bool> = "include-mingw-linker", } } @@ -816,6 +818,7 @@ impl Config { config.rust_codegen_backends = vec![INTERNER.intern_str("llvm")]; config.deny_warnings = true; config.bindir = "bin".into(); + config.dist_include_mingw_linker = true; // set by build.rs config.build = TargetSelection::from_user(&env!("BUILD_TRIPLE")); @@ -1299,6 +1302,7 @@ impl Config { config.dist_compression_formats = t.compression_formats; set(&mut config.rust_dist_src, t.src_tarball); set(&mut config.missing_tools, t.missing_tools); + set(&mut config.dist_include_mingw_linker, t.include_mingw_linker) } if let Some(r) = build.rustfmt { diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs index d7008df4179..c9384004100 100644 --- a/src/bootstrap/dist.rs +++ b/src/bootstrap/dist.rs @@ -324,7 +324,7 @@ impl Step for Mingw { /// without any extra installed software (e.g., we bundle gcc, libraries, etc). fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> { let host = self.host; - if !host.ends_with("pc-windows-gnu") { + if !host.ends_with("pc-windows-gnu") || !builder.config.dist_include_mingw_linker { return None; } @@ -380,7 +380,7 @@ impl Step for Rustc { // anything requiring us to distribute a license, but it's likely the // install will *also* include the rust-mingw package, which also needs // licenses, so to be safe we just include it here in all MinGW packages. - if host.ends_with("pc-windows-gnu") { + if host.ends_with("pc-windows-gnu") && builder.config.dist_include_mingw_linker { make_win_dist(tarball.image_dir(), &tmpdir(builder), host, builder); tarball.add_dir(builder.src.join("src/etc/third-party"), "share/doc"); } |
