From 06582593257ccb0825d14b0740625546eb6bdc3d Mon Sep 17 00:00:00 2001 From: Dylan MacKenzie Date: Thu, 23 Apr 2020 11:24:28 -0700 Subject: [PATCH] Set RUSTDOCFLAGS in `cargo` invocation --- src/bootstrap/builder.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs index 8d6c2db792645..466e2d6e79919 100644 --- a/src/bootstrap/builder.rs +++ b/src/bootstrap/builder.rs @@ -791,6 +791,11 @@ impl<'a> Builder<'a> { rustflags.arg("--cfg=bootstrap"); } + // FIXME: It might be better to use the same value for both `RUSTFLAGS` and `RUSTDOCFLAGS`, + // but this breaks CI. At the very least, stage0 `rustdoc` needs `--cfg bootstrap`. See + // #71458. + let rustdocflags = rustflags.clone(); + if let Ok(s) = env::var("CARGOFLAGS") { cargo.args(s.split_whitespace()); } @@ -1269,7 +1274,7 @@ impl<'a> Builder<'a> { } } - Cargo { command: cargo, rustflags } + Cargo { command: cargo, rustflags, rustdocflags } } /// Ensure that a given step is built, returning its output. This will @@ -1327,7 +1332,7 @@ impl<'a> Builder<'a> { #[cfg(test)] mod tests; -#[derive(Debug)] +#[derive(Debug, Clone)] struct Rustflags(String); impl Rustflags { @@ -1367,6 +1372,7 @@ impl Rustflags { pub struct Cargo { command: Command, rustflags: Rustflags, + rustdocflags: Rustflags, } impl Cargo { @@ -1400,6 +1406,7 @@ impl Cargo { impl From for Command { fn from(mut cargo: Cargo) -> Command { cargo.command.env("RUSTFLAGS", &cargo.rustflags.0); + cargo.command.env("RUSTDOCFLAGS", &cargo.rustdocflags.0); cargo.command } }