Empowering everyone to build reliable and efficient software.
Go to file
bjorn3 aeecb45beb Preserve the order files are added to archives
rust.metadata.bin could have been at the start of an .rlib file confusing ld
2019-04-27 17:47:15 +02:00
build_sysroot Rustup to rustc 1.36.0-nightly (597f43248 2019-04-26) 2019-04-27 17:44:12 +02:00
example Preserve the order files are added to archives 2019-04-27 17:47:15 +02:00
patches Rustup to rustc 1.35.0-nightly (aa99abeb2 2019-04-14) 2019-04-15 16:34:16 +02:00
src Preserve the order files are added to archives 2019-04-27 17:47:15 +02:00
.gitignore Add rust to .gitignore 2019-02-26 11:17:47 +01:00
.travis.yml Stop using xargo for building the sysroot 2018-12-15 16:18:03 +01:00
abc.cpp Implement line debuginfo 2019-01-26 11:59:57 +01:00
Cargo.lock Fix gnu archives 2019-04-24 20:50:23 +02:00
Cargo.toml Fix gnu archives 2019-04-24 20:50:23 +02:00
clean_all.sh Stop using xargo for building the sysroot 2018-12-15 16:18:03 +01:00
config.sh Pass --sysroot in config.sh to prevent passing it 2019-04-10 16:53:23 +02:00
copy.clif Fix some bugs 2018-08-08 10:26:25 +02:00
flamegraph.sh Stop using xargo for building the sysroot 2018-12-15 16:18:03 +01:00
LICENSE-APACHE Create LICENSE-APACHE 2018-06-22 19:33:35 +02:00
LICENSE-MIT Add LICENSE-MIT 2018-06-22 19:34:27 +02:00
prepare.sh Stop using xargo for building the sysroot 2018-12-15 16:18:03 +01:00
Readme.md Some changes to README.md 2019-04-14 10:49:07 +02:00
rust-toolchain Initial commit 2018-06-17 18:05:11 +02:00
test.sh Pass --sysroot in config.sh to prevent passing it 2019-04-10 16:53:23 +02:00

Work in progress cranelift codegen backend for rust

⚠⚠⚠ This doesn't do much useful yet ⚠⚠⚠

Building

$ git clone https://github.com/bjorn3/rustc_codegen_cranelift.git
$ cd rustc_codegen_cranelift
$ ./prepare.sh # download and patch sysroot src and install hyperfine for benchmarking
$ ./test.sh

Usage

$cg_clif_dir is the directory you cloned this repo into in the following instruction.

Rustc

$ rustc -Cpanic=abort -Zcodegen-backend=$cg_clif_dir/target/debug/librustc_codegen_cranelift.so --sysroot $cg_clif_dir/build_sysroot/sysroot my_crate.rs

Cargo

$ RUSTFLAGS="-Cpanic=abort -Zcodegen-backend=$cg_clif_dir/target/debug/librustc_codegen_cranelift.dylib --sysroot $cg_clif_dir/build_sysroot/sysroot" cargo run

Not yet supported

Troubleshooting

Can't compile

Try updating your nightly compiler. You can try to use an nightly a day or two older if updating rustc doesn't fix it. If you still can't compile it, please fill an issue.