Skip to content

Commit

Permalink
Auto merge of rust-lang#63834 - andjo403:rustdoc-linker-remove, r=Mar…
Browse files Browse the repository at this point in the history
…k-Simulacrum

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: rust-lang#63816
  • Loading branch information
bors committed Sep 2, 2019
2 parents dfd43f0 + f0b30c7 commit fdaf594
Show file tree
Hide file tree
Showing 7 changed files with 6 additions and 31 deletions.
5 changes: 4 additions & 1 deletion src/bootstrap/bin/rustdoc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use std::env;
use std::process::Command;
use std::path::PathBuf;
use std::ffi::OsString;

fn main() {
let args = env::args_os().skip(1).collect::<Vec<_>>();
Expand Down Expand Up @@ -44,7 +45,9 @@ fn main() {
cmd.arg("-Z").arg("force-unstable-if-unmarked");
}
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
Expand Down
13 changes: 0 additions & 13 deletions src/doc/rustdoc/src/unstable-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
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

Using this flag looks like this:
Expand Down
5 changes: 0 additions & 5 deletions src/librustdoc/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,6 @@ pub struct Options {
pub edition: Edition,
/// The path to the sysroot. Used during the compilation process.
pub maybe_sysroot: Option<PathBuf>,
/// Linker to use when building doctests.
pub linker: Option<PathBuf>,
/// Lint information passed over the command-line.
pub lint_opts: Vec<(String, Level)>,
/// Whether to ask rustc to describe the lints it knows. Practically speaking, this will not be
Expand Down Expand Up @@ -130,7 +128,6 @@ impl fmt::Debug for Options {
.field("target", &self.target)
.field("edition", &self.edition)
.field("maybe_sysroot", &self.maybe_sysroot)
.field("linker", &self.linker)
.field("lint_opts", &self.lint_opts)
.field("describe_lints", &self.describe_lints)
.field("lint_cap", &self.lint_cap)
Expand Down Expand Up @@ -454,7 +451,6 @@ impl Options {
let playground_url = matches.opt_str("playground-url");
let maybe_sysroot = matches.opt_str("sysroot").map(PathBuf::from);
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 resource_suffix = matches.opt_str("resource-suffix").unwrap_or_default();
let enable_minification = !matches.opt_present("disable-minification");
Expand Down Expand Up @@ -489,7 +485,6 @@ impl Options {
target,
edition,
maybe_sysroot,
linker,
lint_opts,
describe_lints,
lint_cap,
Expand Down
3 changes: 0 additions & 3 deletions src/librustdoc/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -242,9 +242,6 @@ fn opts() -> Vec<RustcOptGroup> {
unstable("crate-version", |o| {
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| {
o.optflag("", "sort-modules-by-appearance", "sort modules by where they appear in the \
program, rather than alphabetically")
Expand Down
3 changes: 0 additions & 3 deletions src/librustdoc/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -267,9 +267,6 @@ fn run_test(
for codegen_options_str in &options.codegen_options_strs {
compiler.arg("-C").arg(&codegen_options_str);
}
if let Some(linker) = options.linker {
compiler.arg(&format!("-C linker={:?}", linker));
}
if no_run {
compiler.arg("--emit=metadata");
}
Expand Down
2 changes: 1 addition & 1 deletion src/test/run-make-fulldeps/tools.mk
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ RUSTC := $(BARE_RUSTC) --out-dir $(TMPDIR) -L $(TMPDIR) $(RUSTFLAGS)
RUSTDOC := $(BARE_RUSTDOC) -L $(TARGET_RPATH_DIR)
ifdef RUSTC_LINKER
RUSTC := $(RUSTC) -Clinker=$(RUSTC_LINKER)
RUSTDOC := $(RUSTDOC) --linker $(RUSTC_LINKER) -Z unstable-options
RUSTDOC := $(RUSTDOC) -Clinker=$(RUSTC_LINKER)
endif
#CC := $(CC) -L $(TMPDIR)
HTMLDOCCK := $(PYTHON) $(S)/src/etc/htmldocck.py
Expand Down
6 changes: 1 addition & 5 deletions src/tools/compiletest/src/runtest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1603,11 +1603,7 @@ impl<'test> TestCx<'test> {
.args(&self.props.compile_flags);

if let Some(ref linker) = self.config.linker {
rustdoc
.arg("--linker")
.arg(linker)
.arg("-Z")
.arg("unstable-options");
rustdoc.arg(format!("-Clinker={}", linker));
}

self.compose_and_run_compiler(rustdoc, None)
Expand Down

0 comments on commit fdaf594

Please sign in to comment.