"symbol names" => ABI

ABI is more general and gives a better idea of what goes wrong.
This commit is contained in:
Joshua Nelson 2022-09-10 11:23:24 -05:00 committed by Joshua Nelson
parent 01c550ef63
commit 150bafb8d0
1 changed files with 6 additions and 3 deletions

View File

@ -73,9 +73,12 @@ In theory, the stage1 compiler is functionally identical to the stage2 compiler,
but in practice there are subtle differences.
In particular, the stage1 compiler itself was built by stage0
and hence not by the source in your working directory.
This means that the symbol names used in the compiler source
may not match the symbol names that would have been made by the stage1 compiler,
which can cause problems for dynamic libraries and tests.
This means that the ABI generated by the stage0 compiler may not match the ABI that would have been
made by the stage1 compiler, which can cause problems for dynamic libraries, tests, and tools using
`rustc_private`.
Note that the `proc_macro` crate avoids this issue with a C FFI layer called `proc_macro::bridge`,
allowing it to be used with stage 1.
The `stage2` compiler is the one distributed with `rustup` and all other install methods.
However, it takes a very long time to build