bjorn3 dc2f32f985 Change the CallConv for "rust" abi functions to "SystemV" to match the "C" abi
The allocator machinery seems to mix "rust" and "C" abi function defs and calls.
2018-12-11 15:13:45 +01:00
2018-10-10 19:04:20 +02:00
2018-12-11 10:45:03 +00:00
2018-12-11 10:45:03 +00:00
2018-08-08 10:26:25 +02:00
2018-06-22 19:33:35 +02:00
2018-06-22 19:34:27 +02:00
2018-11-27 11:21:20 +01:00
2018-06-17 18:05:11 +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
$ rustup override set nightly # This uses unstable api's which will never be stabilized
$ cargo install xargo         # Used for building the sysroot
$ cargo install hyperfine     # Used for benchmarking in build.sh
$ cargo build

Usage

$ rustc -Zcodegen-backend=$(pwd)/target/debug/librustc_codegen_cranelift.so my_crate.rs

Build sysroot and test

$ rustup component add rust-src # Make sure the sysroot source is available
$ ./prepare_libcore.sh          # Patch the sysroot source for some not yet supported things
$ ./build.sh

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.

error[E0463]: can't find crate for std while compiling a no_std crate

If you use RUSTFLAGS to pass -Zcodegen-backend to rustc, cargo will compile build-dependencies with those flags too. Because this project doesn't support libstd yet, that will result in an error. I don't know of any way to fix this. :(

Description
No description provided
Readme 1.4 GiB
Languages
Rust 96.2%
RenderScript 0.7%
JavaScript 0.6%
Shell 0.6%
Fluent 0.4%
Other 1.3%