Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d04eed5

Browse files
Merge pull request #2587 from GuillaumeGomez/gcc-backend-missing-docs
Add missing documentation for running tests with GCC backend
2 parents f4cec59 + bbaa54b commit d04eed5

File tree

1 file changed

+55
-2
lines changed

1 file changed

+55
-2
lines changed
Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,56 @@
1-
# GCC codegen backend tests
1+
# GCC codegen backend
22

3-
TODO: please add some more information to this page.
3+
If you ran into an error related to tests executed with the GCC codegen backend on CI,
4+
you can use the following command to run tests locally using the GCC backend:
5+
6+
```bash
7+
./x test tests/ui --set 'rust.codegen-backends = ["llvm", "gcc"]' --test-codegen-backend gcc
8+
```
9+
10+
Below, you can find more information about how to configure the GCC backend in bootstrap.
11+
12+
## Choosing which codegen backends are built
13+
14+
The `rust.codegen-backends = [...]` bootstrap option affects which codegen backends will be built and
15+
included in the sysroot of the produced `rustc`. To use the GCC codegen backend, `"gcc"` has to
16+
be included in this array in `bootstrap.toml`:
17+
18+
```toml
19+
rust.codegen-backends = ["llvm", "gcc"]
20+
```
21+
22+
If you don't want to change your `bootstrap.toml` file, you can alternatively run your `x`
23+
commands with `--set rust.codegen-backends=["llvm", "gcc"]'`. For example:
24+
25+
```bash
26+
./x build --set 'rust.codegen-backends=["llvm", "gcc"]'
27+
```
28+
29+
The first backend in the `codegen-backends` array will determine which backend will be used as the
30+
*default backend* of the built `rustc`. This also determines which backend will be used to compile the
31+
stage 1 standard library (or anything built in stage 2+). To produce `rustc` that uses the GCC backend
32+
by default, you can thus put `"gcc"` as the first element of this array:
33+
34+
```bash
35+
./x build --set 'rust.codegen-backends=["gcc"]' library
36+
```
37+
38+
## Choosing the codegen backend used in tests
39+
40+
To run compiler tests with the GCC codegen backend being used to build the test Rust programs, you can use the
41+
`--test-codegen-backend` flag:
42+
43+
```bash
44+
./x test tests/ui --test-codegen-backend gcc
45+
```
46+
47+
Note that in order for this to work, the tested compiler must have the GCC codegen backend available in its sysroot
48+
directory. You can achieve that using the [instructions above](#choosing-which-codegen-backends-are-built).
49+
50+
## Downloading GCC from CI
51+
52+
The `gcc.download-ci-gcc` bootstrap option controls if GCC (which is a dependency of the GCC codegen backend)
53+
will be downloaded from CI or built locally. The default value is `true`, which will download GCC from CI
54+
if there are no local changes to the GCC sources and the given host target is available on CI.
55+
56+
Note that GCC can currently only be downloaded from CI for the `x86_64-unknown-linux-gnu` target.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /