remove the unstable rustdoc parameter --linker

use the code generation parameter -Clinker (same parameter as rustc)
to control what linker to use for building the rustdoc test executables.

closes: #63816
This commit is contained in:
Andreas Jonson 2019-09-01 08:49:26 +02:00
parent 59cc53e6e7
commit f0b30c7ded
7 changed files with 6 additions and 31 deletions

View File

@ -5,6 +5,7 @@
use std::env; use std::env;
use std::process::Command; use std::process::Command;
use std::path::PathBuf; use std::path::PathBuf;
use std::ffi::OsString;
fn main() { fn main() {
let args = env::args_os().skip(1).collect::<Vec<_>>(); let args = env::args_os().skip(1).collect::<Vec<_>>();
@ -44,7 +45,9 @@ fn main() {
cmd.arg("-Z").arg("force-unstable-if-unmarked"); cmd.arg("-Z").arg("force-unstable-if-unmarked");
} }
if let Some(linker) = env::var_os("RUSTC_TARGET_LINKER") { if let Some(linker) = env::var_os("RUSTC_TARGET_LINKER") {
cmd.arg("--linker").arg(linker).arg("-Z").arg("unstable-options"); let mut arg = OsString::from("-Clinker=");
arg.push(&linker);
cmd.arg(arg);
} }
// Bootstrap's Cargo-command builder sets this variable to the current Rust version; let's pick // Bootstrap's Cargo-command builder sets this variable to the current Rust version; let's pick

View File

@ -311,19 +311,6 @@ When `rustdoc` receives this flag, it will print an extra "Version (version)" in
the crate root's docs. You can use this flag to differentiate between different versions of your the crate root's docs. You can use this flag to differentiate between different versions of your
library's documentation. library's documentation.
### `--linker`: control the linker used for documentation tests
Using this flag looks like this:
```bash
$ rustdoc --test src/lib.rs -Z unstable-options --linker foo
$ rustdoc --test README.md -Z unstable-options --linker foo
```
When `rustdoc` runs your documentation tests, it needs to compile and link the tests as executables
before running them. This flag can be used to change the linker used on these executables. It's
equivalent to passing `-C linker=foo` to `rustc`.
### `--sort-modules-by-appearance`: control how items on module pages are sorted ### `--sort-modules-by-appearance`: control how items on module pages are sorted
Using this flag looks like this: Using this flag looks like this:

View File

@ -60,8 +60,6 @@ pub struct Options {
pub edition: Edition, pub edition: Edition,
/// The path to the sysroot. Used during the compilation process. /// The path to the sysroot. Used during the compilation process.
pub maybe_sysroot: Option<PathBuf>, pub maybe_sysroot: Option<PathBuf>,
/// Linker to use when building doctests.
pub linker: Option<PathBuf>,
/// Lint information passed over the command-line. /// Lint information passed over the command-line.
pub lint_opts: Vec<(String, Level)>, pub lint_opts: Vec<(String, Level)>,
/// Whether to ask rustc to describe the lints it knows. Practically speaking, this will not be /// Whether to ask rustc to describe the lints it knows. Practically speaking, this will not be
@ -130,7 +128,6 @@ impl fmt::Debug for Options {
.field("target", &self.target) .field("target", &self.target)
.field("edition", &self.edition) .field("edition", &self.edition)
.field("maybe_sysroot", &self.maybe_sysroot) .field("maybe_sysroot", &self.maybe_sysroot)
.field("linker", &self.linker)
.field("lint_opts", &self.lint_opts) .field("lint_opts", &self.lint_opts)
.field("describe_lints", &self.describe_lints) .field("describe_lints", &self.describe_lints)
.field("lint_cap", &self.lint_cap) .field("lint_cap", &self.lint_cap)
@ -454,7 +451,6 @@ impl Options {
let playground_url = matches.opt_str("playground-url"); let playground_url = matches.opt_str("playground-url");
let maybe_sysroot = matches.opt_str("sysroot").map(PathBuf::from); let maybe_sysroot = matches.opt_str("sysroot").map(PathBuf::from);
let display_warnings = matches.opt_present("display-warnings"); let display_warnings = matches.opt_present("display-warnings");
let linker = matches.opt_str("linker").map(PathBuf::from);
let sort_modules_alphabetically = !matches.opt_present("sort-modules-by-appearance"); let sort_modules_alphabetically = !matches.opt_present("sort-modules-by-appearance");
let resource_suffix = matches.opt_str("resource-suffix").unwrap_or_default(); let resource_suffix = matches.opt_str("resource-suffix").unwrap_or_default();
let enable_minification = !matches.opt_present("disable-minification"); let enable_minification = !matches.opt_present("disable-minification");
@ -489,7 +485,6 @@ impl Options {
target, target,
edition, edition,
maybe_sysroot, maybe_sysroot,
linker,
lint_opts, lint_opts,
describe_lints, describe_lints,
lint_cap, lint_cap,

View File

@ -242,9 +242,6 @@ fn opts() -> Vec<RustcOptGroup> {
unstable("crate-version", |o| { unstable("crate-version", |o| {
o.optopt("", "crate-version", "crate version to print into documentation", "VERSION") o.optopt("", "crate-version", "crate version to print into documentation", "VERSION")
}), }),
unstable("linker", |o| {
o.optopt("", "linker", "linker used for building executable test code", "PATH")
}),
unstable("sort-modules-by-appearance", |o| { unstable("sort-modules-by-appearance", |o| {
o.optflag("", "sort-modules-by-appearance", "sort modules by where they appear in the \ o.optflag("", "sort-modules-by-appearance", "sort modules by where they appear in the \
program, rather than alphabetically") program, rather than alphabetically")

View File

@ -266,9 +266,6 @@ fn run_test(
for codegen_options_str in &options.codegen_options_strs { for codegen_options_str in &options.codegen_options_strs {
compiler.arg("-C").arg(&codegen_options_str); compiler.arg("-C").arg(&codegen_options_str);
} }
if let Some(linker) = options.linker {
compiler.arg(&format!("-C linker={:?}", linker));
}
if no_run { if no_run {
compiler.arg("--emit=metadata"); compiler.arg("--emit=metadata");
} }

View File

@ -12,7 +12,7 @@ RUSTC := $(BARE_RUSTC) --out-dir $(TMPDIR) -L $(TMPDIR) $(RUSTFLAGS)
RUSTDOC := $(BARE_RUSTDOC) -L $(TARGET_RPATH_DIR) RUSTDOC := $(BARE_RUSTDOC) -L $(TARGET_RPATH_DIR)
ifdef RUSTC_LINKER ifdef RUSTC_LINKER
RUSTC := $(RUSTC) -Clinker=$(RUSTC_LINKER) RUSTC := $(RUSTC) -Clinker=$(RUSTC_LINKER)
RUSTDOC := $(RUSTDOC) --linker $(RUSTC_LINKER) -Z unstable-options RUSTDOC := $(RUSTDOC) -Clinker=$(RUSTC_LINKER)
endif endif
#CC := $(CC) -L $(TMPDIR) #CC := $(CC) -L $(TMPDIR)
HTMLDOCCK := $(PYTHON) $(S)/src/etc/htmldocck.py HTMLDOCCK := $(PYTHON) $(S)/src/etc/htmldocck.py

View File

@ -1603,11 +1603,7 @@ impl<'test> TestCx<'test> {
.args(&self.props.compile_flags); .args(&self.props.compile_flags);
if let Some(ref linker) = self.config.linker { if let Some(ref linker) = self.config.linker {
rustdoc rustdoc.arg(format!("-Clinker={}", linker));
.arg("--linker")
.arg(linker)
.arg("-Z")
.arg("unstable-options");
} }
self.compose_and_run_compiler(rustdoc, None) self.compose_and_run_compiler(rustdoc, None)