Skip to content

Commit f29e38c

Browse files
committed
"symbol names" => ABI
ABI is more general and gives a better idea of what goes wrong.
1 parent 5d8825e commit f29e38c

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/building/bootstrapping.md

+6-3
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,12 @@ In theory, the stage1 compiler is functionally identical to the stage2 compiler,
7373
but in practice there are subtle differences.
7474
In particular, the stage1 compiler itself was built by stage0
7575
and hence not by the source in your working directory.
76-
This means that the symbol names used in the compiler source
77-
may not match the symbol names that would have been made by the stage1 compiler,
78-
which can cause problems for dynamic libraries and tests.
76+
This means that the ABI generated by the stage0 compiler may not match the ABI that would have been
77+
made by the stage1 compiler, which can cause problems for dynamic libraries, tests, and tools using
78+
`rustc_private`.
79+
80+
Note that the `proc_macro` crate avoids this issue with a C FFI layer called `proc_macro::bridge`,
81+
allowing it to be used with stage 1.
7982

8083
The `stage2` compiler is the one distributed with `rustup` and all other install methods.
8184
However, it takes a very long time to build

0 commit comments

Comments
 (0)