Rustc_codegen_GCC can now run libcore’s tests and pass most of them
blog.antoyo.xyz
blog.antoyo.xyz
Contrast with GCC Rust (https://thephilbert.io/2021/05/14/gcc-rust-weekly-status-rep...), which is attacking the problem from the other side by building a GCC Rust frontend in C++. That one will help with bootstrapping, which currently has to go through mrustc and many rustc builds.
It's very nice to see both of these progressing :)
https://github.com/thepowersgang/mrustc
Does the bootstrapping require every single step up to the current rustc or can it skip some steps?
Wouldn't it depend on what kind of bootstrapping? It doesn't help with trusting trust, but rustc frontend + gcc backend would help with porting to a new platform, wouldn't it?
For a new platform it doesn't change anything. By definition neither GCC nor LLVM supports a new platform since it is new.
Note that GCC Rust won't help any more with bootstrapping than mrustc can help. Getting one rustc version to compile is only the start of a long process of following the evolution of the language and implementing weird implementation behaviours the compiler now relies on for its own compilation.
You have to provide constant upkeep, and for that both mrustc and GCC Rust are suited equally well. On the other hand, rustc_codegen_gcc is way better suited for following the moving target, but obviously it can't be used for bootstrapping as it's written in Rust.
I'm also curious if the resulting binary size is any different.
1: https://github.com/bytecodealliance/wasmtime/tree/main/crane...