As Ken Thompson explains, it’s possible to insert a backdoor in a compiler. Rust is particularly impacted because the compiler is written in Rust (but rely on LLVM), so we need an initial binary/compiler to build our own. This initial rustc can or could have been compromised (since the first build/bootstrap).
Rust is one letter away from trust but how can we check that rustc only transform a Rust source code into it’s equivalent binary code?
This imply to trust a compiler, which means to have multiple compilers. For now there is only one Rust source code compiler but it support multiple architectures. So we have multiple binaries who should transform a source code the same way. Cross-compiling could be a start to check the rustc binaries. Maybe there is something to do with the compilation stages as well?
What do you think could be done for a more trustworthy rustc?