Skip to content

Commit

Permalink
Auto merge of #9524 - ehuss:rustflags-compatibility, r=alexcrichton
Browse files Browse the repository at this point in the history
Add a note about rustflags compatibility.

Over time, Cargo occasionally starts issuing new flags that may conflict with flags the user is passing directly to the compiler. Some recent examples are `-C embed-bitcode` (which broke anyone passing `-Clto` manually), and `-C prefer-dynamic` (which is kind of a mess). Future conflicts might be things like `--remap-path-prefix` or `--extern-html-root-url` (for rustdoc). This adds a note to mention these potential conflicts.

Although we try to maintain backwards compatibility as much as possible throughout all of Cargo, this particular area I think is dangerous enough that it is prudent to have some kind of warning somewhere. It is very rare that conflicts arise in practice, but they can happen.

I also added a note about passing in flags that Cargo itself issues, which can cause problems. Closes #9358.
  • Loading branch information
bors committed Jun 1, 2021
2 parents 0c9eb20 + 4d3772b commit 51eac9c
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/doc/src/reference/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,16 @@ Without `--target`, the flags will be passed to all compiler invocations
you have args that you do not want to pass to build scripts or proc macros and
are building for the host, pass `--target` with the host triple.

It is not recommended to pass in flags that Cargo itself usually manages. For
example, the flags driven by [profiles] are best handled by setting the
appropriate profile setting.

> **Caution**: Due to the low-level nature of passing flags directly to the
> compiler, this may cause a conflict with future versions of Cargo which may
> issue the same or similar flags on its own which may interfere with the
> flags you specify. This is an area where Cargo may not always be backwards
> compatible.
##### `build.rustdocflags`
* Type: string or array of strings
* Default: none
Expand Down

0 comments on commit 51eac9c

Please sign in to comment.