docs: Add troubleshooting section warning about RUSTFLAGS env var (#23354)
According to #23223, manually setting `RUSTFLAGS` env var overrides settings in `.cargo/config.toml`. Since users possibly may set their own `RUSTFLAGS` when building, this creates an avenue where builds may fail for really strange reasons that are difficult to debug. This PR adds notes to the troubleshooting section to avoid setting `RUSTFLAGS`, and offers alternatives which do not conflict. This problem most recently affected nightly CI builders since we had been setting `RUSTFLAGS` in our workflows to enable custom things like gles or compiling with a specific target cpu. PR #23117 caused builds to fail unless they were compiled with `-C target-feature=+crt-static`, which due to this issue the `RUSTFLAGS` env var we set overrode the `config.toml` compile flags, causing our builds to fail. Release Notes: - N/A
This commit is contained in:
parent
36c7b3eb91
commit
3c0acdea5e
2 changed files with 46 additions and 6 deletions
|
@ -126,10 +126,6 @@ When this zed instance is exited, terminal output will include a command to run
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
### Can't compile Zed
|
|
||||||
|
|
||||||
Before reporting the issue, make sure that you have the latest rustc version with `rustup update`.
|
|
||||||
|
|
||||||
### Cargo errors claiming that a dependency is using unstable features
|
### Cargo errors claiming that a dependency is using unstable features
|
||||||
|
|
||||||
Try `cargo clean` and `cargo build`.
|
Try `cargo clean` and `cargo build`.
|
||||||
|
|
|
@ -112,9 +112,53 @@ You can see the [build script](https://github.com/msys2/MINGW-packages/blob/mast
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
### Can't compile zed
|
### Setting `RUSTFLAGS` env var breaks builds
|
||||||
|
|
||||||
Before reporting the issue, make sure that you have the latest rustc version with `rustup update`.
|
If you set the `RUSTFLAGS` env var, it will override the `rustflags` settings in `.cargo/config.toml` which is required to properly build Zed.
|
||||||
|
|
||||||
|
Since these settings can vary from time to time, the build errors you receive may vary from linker errors, to other stranger errors.
|
||||||
|
|
||||||
|
If you'd like to add extra rust flags, you may do 1 of the following in `.cargo/config.toml`:
|
||||||
|
|
||||||
|
Add your flags in the build section
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[build]
|
||||||
|
rustflags = ["-C", "symbol-mangling-version=v0", "--cfg", "tokio_unstable"]
|
||||||
|
```
|
||||||
|
|
||||||
|
Add your flags in the windows target section
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[target.'cfg(target_os = "windows")']
|
||||||
|
rustflags = [
|
||||||
|
"--cfg",
|
||||||
|
"windows_slim_errors",
|
||||||
|
"-C",
|
||||||
|
"target-feature=+crt-static",
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
Or, you can create a new `.cargo/config.toml` in the same folder as the Zed repo (see below). This is particularly useful if you are doing CI builds since you don't have to edit the original `.cargo/config.toml`.
|
||||||
|
|
||||||
|
```
|
||||||
|
upper_dir
|
||||||
|
├── .cargo // <-- Make this folder
|
||||||
|
│ └── config.toml // <-- Make this file
|
||||||
|
└── zed
|
||||||
|
├── .cargo
|
||||||
|
│ └── config.toml
|
||||||
|
└── crates
|
||||||
|
├── assistant
|
||||||
|
└── ...
|
||||||
|
```
|
||||||
|
|
||||||
|
In the new (above) `.cargo/config.toml`, if we wanted to add `--cfg gles` to our rustflags, it would look like this
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[target.'cfg(all())']
|
||||||
|
rustflags = ["--cfg", "gles"]
|
||||||
|
```
|
||||||
|
|
||||||
### Cargo errors claiming that a dependency is using unstable features
|
### Cargo errors claiming that a dependency is using unstable features
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue