From ec09c09cf3f6f48ae8790c70b2398db2a669c434 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Tue, 14 May 2019 20:35:40 +0800 Subject: [PATCH] rust-riscv32i-crates: use external compiler_builtins --- compilers/rust-riscv32i-crates.nix | 48 +++++++++++++++++------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/compilers/rust-riscv32i-crates.nix b/compilers/rust-riscv32i-crates.nix index 3696155..11f8431 100644 --- a/compilers/rust-riscv32i-crates.nix +++ b/compilers/rust-riscv32i-crates.nix @@ -1,21 +1,29 @@ -{ stdenv, rustc }: -stdenv.mkDerivation { - name = "rust-riscv32i-crates"; - src = rustc.src; - phases = [ "unpackPhase" "buildPhase" ]; - buildPhase = '' - destdir=$out/lib/rustlib/riscv32imac-unknown-none-elf/lib/ - rustc="${rustc}/bin/rustc --out-dir ''${destdir} -L ''${destdir} --target riscv32i-unknown-none-elf -g -C opt-level=s --crate-type rlib" +{ stdenv, rustc, fetchFromGitHub }: +let + compiler-builtins-src = fetchFromGitHub { + owner = "rust-lang-nursery"; + repo = "compiler-builtins"; + rev = "0.1.12"; + sha256 = "0hkssvrh952kcz7w7aws3pqr05barg3qppqpji641b35xpbg9gyg"; + }; +in + stdenv.mkDerivation { + name = "rust-riscv32i-crates"; + src = rustc.src; + phases = [ "unpackPhase" "buildPhase" ]; + buildPhase = '' + destdir=$out/lib/rustlib/riscv32imac-unknown-none-elf/lib/ + rustc="${rustc}/bin/rustc --out-dir ''${destdir} -L ''${destdir} --target riscv32i-unknown-none-elf -g -C opt-level=s --crate-type rlib" - mkdir -p ''${destdir} - export RUSTC_BOOTSTRAP=1 - ''${rustc} --crate-name core src/libcore/lib.rs - ''${rustc} --crate-name alloc src/liballoc/lib.rs - ''; - # ''${rustc} --crate-name compiler_builtins src/libcompiler_builtins/src/lib.rs --cfg 'feature="compiler-builtins"' --cfg 'feature="mem"' - # ''${rustc} --crate-name libc ${./libc_mini.rs} - # ''${rustc} --crate-name unwind src/libunwind/lib.rs - # ''${rustc} --crate-name std src/libstd/lib.rs - # ''${rustc} -Cpanic=abort --crate-name panic_abort src/libpanic_abort/lib.rs - # ''${rustc} -Cpanic=unwind --crate-name panic_unwind src/libpanic_unwind/lib.rs --cfg llvm_libunwind -} + mkdir -p ''${destdir} + export RUSTC_BOOTSTRAP=1 + ''${rustc} --crate-name core src/libcore/lib.rs + ''${rustc} --crate-name compiler_builtins ${compiler-builtins-src}/src/lib.rs --cfg 'feature="compiler-builtins"' --cfg 'feature="mem"' + ''; + # ''${rustc} --crate-name alloc src/liballoc/lib.rs + # ''${rustc} --crate-name libc ${./libc_mini.rs} + # ''${rustc} --crate-name unwind src/libunwind/lib.rs + # ''${rustc} --crate-name std src/libstd/lib.rs + # ''${rustc} -Cpanic=abort --crate-name panic_abort src/libpanic_abort/lib.rs + # ''${rustc} -Cpanic=unwind --crate-name panic_unwind src/libpanic_unwind/lib.rs --cfg llvm_libunwind + }