"symbol names" => ABI
ABI is more general and gives a better idea of what goes wrong.
This commit is contained in:
parent
01c550ef63
commit
150bafb8d0
|
|
@ -73,9 +73,12 @@ In theory, the stage1 compiler is functionally identical to the stage2 compiler,
|
||||||
but in practice there are subtle differences.
|
but in practice there are subtle differences.
|
||||||
In particular, the stage1 compiler itself was built by stage0
|
In particular, the stage1 compiler itself was built by stage0
|
||||||
and hence not by the source in your working directory.
|
and hence not by the source in your working directory.
|
||||||
This means that the symbol names used in the compiler source
|
This means that the ABI generated by the stage0 compiler may not match the ABI that would have been
|
||||||
may not match the symbol names that would have been made by the stage1 compiler,
|
made by the stage1 compiler, which can cause problems for dynamic libraries, tests, and tools using
|
||||||
which can cause problems for dynamic libraries and tests.
|
`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.
|
The `stage2` compiler is the one distributed with `rustup` and all other install methods.
|
||||||
However, it takes a very long time to build
|
However, it takes a very long time to build
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue