diff --git a/artiq/firmware/Cargo.lock b/artiq/firmware/Cargo.lock index f6d660460..700bc76ee 100644 --- a/artiq/firmware/Cargo.lock +++ b/artiq/firmware/Cargo.lock @@ -59,6 +59,11 @@ dependencies = [ "rustc-cfg 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "compiler_builtins" +version = "0.1.0" +source = "git+https://github.com/m-labs/compiler-builtins?rev=97916b1#97916b17ca542eac0524b8570c7d05913891a0dc" + [[package]] name = "cslice" version = "0.3.0" @@ -109,10 +114,10 @@ dependencies = [ "board 0.0.0", "build_artiq 0.0.0", "byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "compiler_builtins 0.1.0 (git+https://github.com/m-labs/compiler-builtins?rev=97916b1)", "cslice 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "dyld 0.0.0", "proto 0.0.0", - "rlibc 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "std_artiq 0.0.0", ] @@ -156,11 +161,6 @@ dependencies = [ "std_artiq 0.0.0", ] -[[package]] -name = "rlibc" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "runtime" version = "0.0.0" @@ -171,7 +171,7 @@ dependencies = [ "board 0.0.0", "build_artiq 0.0.0", "byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "compiler_builtins 0.1.0 (git+https://github.com/rust-lang-nursery/compiler-builtins?rev=631b568)", + "compiler_builtins 0.1.0 (git+https://github.com/m-labs/compiler-builtins?rev=97916b1)", "cslice 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "drtioaux 0.0.0", "fringe 1.1.0 (git+https://github.com/m-labs/libfringe?rev=bd23494)", @@ -248,6 +248,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b3c30d3802dfb7281680d6285f2ccdaa8c2d8fee41f93805dba5c4cf50dc23cf" "checksum byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "652805b7e73fada9d85e9a6682a4abd490cb52d96aeecc12e33a0de34dfd0d23" "checksum cc 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a9b13a57efd6b30ecd6598ebdb302cca617930b5470647570468a65d12ef9719" +"checksum compiler_builtins 0.1.0 (git+https://github.com/m-labs/compiler-builtins?rev=97916b1)" = "" "checksum compiler_builtins 0.1.0 (git+https://github.com/rust-lang-nursery/compiler-builtins?rev=631b568)" = "" "checksum cslice 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0f8cb7306107e4b10e64994de6d3274bd08996a7c1322a27b86482392f96be0a" "checksum fringe 1.1.0 (git+https://github.com/m-labs/libfringe?rev=bd23494)" = "" @@ -257,7 +258,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "880f77541efa6e5cc74e76910c9884d9859683118839d6a1dc3b11e63512565b" "checksum log_buffer 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ec57723b84bbe7bdf76aa93169c9b59e67473317c6de3a83cb2a0f8ccb2aa493" "checksum managed 0.4.0 (git+https://github.com/m-labs/rust-managed.git?rev=629a6786a1cf1692015f464ed16c04eafa5cb8d1)" = "" -"checksum rlibc 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc874b127765f014d792f16763a81245ab80500e2ad921ed4ee9e82481ee08fe" "checksum rustc-cfg 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "56a596b5718bf5e059d59a30af12f7f462a152de147aa462b70892849ee18704" "checksum same-file 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a117a7" "checksum smoltcp 0.4.0 (git+https://github.com/m-labs/smoltcp?rev=507d2fe)" = "" diff --git a/artiq/firmware/ksupport/Cargo.toml b/artiq/firmware/ksupport/Cargo.toml index d808e4af7..1162a848c 100644 --- a/artiq/firmware/ksupport/Cargo.toml +++ b/artiq/firmware/ksupport/Cargo.toml @@ -13,7 +13,6 @@ crate-type = ["staticlib"] build_artiq = { path = "../libbuild_artiq" } [dependencies] -rlibc = "1.0" byteorder = { version = "1.0", default-features = false } cslice = { version = "0.3" } alloc_stub = { path = "../liballoc_stub" } @@ -22,3 +21,8 @@ dyld = { path = "../libdyld" } board = { path = "../libboard" } proto = { path = "../libproto" } amp = { path = "../libamp" } + +[dependencies.compiler_builtins] +git = "https://github.com/m-labs/compiler-builtins" +rev = "97916b1" +features = ["mem"] diff --git a/artiq/firmware/ksupport/Makefile b/artiq/firmware/ksupport/Makefile index b2ad9410c..297bad7bd 100644 --- a/artiq/firmware/ksupport/Makefile +++ b/artiq/firmware/ksupport/Makefile @@ -7,7 +7,6 @@ CFLAGS += \ -I$(MISOC_DIRECTORY)/software/include/dyld LDFLAGS += --eh-frame-hdr \ - -L../libcompiler-rt \ -L../libm \ -L../libprintf \ -L../libunwind @@ -22,7 +21,7 @@ $(RUSTOUT)/libksupport.a: ksupport.elf: $(RUSTOUT)/libksupport.a glue.o $(link) -T $(KSUPPORT_DIRECTORY)/ksupport.ld \ - -lunwind-elf -lprintf-float -lm -lcompiler-rt + -lunwind-elf -lprintf-float -lm %.o: $(KSUPPORT_DIRECTORY)/%.c $(compile) diff --git a/artiq/firmware/ksupport/api.rs b/artiq/firmware/ksupport/api.rs index 1cf3ce884..d7c079243 100644 --- a/artiq/firmware/ksupport/api.rs +++ b/artiq/firmware/ksupport/api.rs @@ -31,8 +31,6 @@ static mut API: &'static [(&'static str, *const ())] = &[ api!(__ltdf2), api!(__nedf2), api!(__gtdf2), - api!(__negsf2), - api!(__negdf2), api!(__addsf3), api!(__subsf3), api!(__mulsf3), @@ -57,8 +55,6 @@ static mut API: &'static [(&'static str, *const ())] = &[ api!(__fixdfsi), api!(__fixdfdi), api!(__fixunsdfsi), - api!(__clzsi2), - api!(__ctzsi2), api!(__udivdi3), api!(__umoddi3), api!(__moddi3), diff --git a/artiq/firmware/ksupport/lib.rs b/artiq/firmware/ksupport/lib.rs index 87b3cec4e..c6ec95fb2 100644 --- a/artiq/firmware/ksupport/lib.rs +++ b/artiq/firmware/ksupport/lib.rs @@ -1,7 +1,8 @@ -#![feature(lang_items, asm, libc, panic_unwind, unwind_attributes, global_allocator)] +#![feature(lang_items, asm, libc, panic_unwind, unwind_attributes, global_allocator, + compiler_builtins_lib)] #![no_std] -extern crate rlibc; +extern crate compiler_builtins; extern crate byteorder; extern crate cslice; extern crate unwind; diff --git a/artiq/firmware/runtime/Cargo.toml b/artiq/firmware/runtime/Cargo.toml index 00f1ca121..468ca295d 100644 --- a/artiq/firmware/runtime/Cargo.toml +++ b/artiq/firmware/runtime/Cargo.toml @@ -26,8 +26,8 @@ amp = { path = "../libamp" } drtioaux = { path = "../libdrtioaux" } [dependencies.compiler_builtins] -git = "https://github.com/rust-lang-nursery/compiler-builtins" -rev = "631b568" +git = "https://github.com/m-labs/compiler-builtins" +rev = "97916b1" features = ["mem"] [dependencies.fringe]