diff --git a/derivations.nix b/derivations.nix index f8519e6..c3fbc37 100644 --- a/derivations.nix +++ b/derivations.nix @@ -20,6 +20,11 @@ rec { name = oa.name + "-riscv"; cmakeFlags = oa.cmakeFlags ++ ["-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=RISCV"]; }); + lld_7 = (pkgs.lld_7.overrideAttrs(oa: { + name = oa.name + "-riscv"; + })).override { + llvm = llvm_7; + }; rustc = (pkgs.rustc.overrideAttrs(oa: { name = "${oa.pname}-${oa.version}-riscv"; })).override { diff --git a/shell-firmware.nix b/shell-firmware.nix index be09fe2..1fa2ca9 100644 --- a/shell-firmware.nix +++ b/shell-firmware.nix @@ -3,6 +3,6 @@ let hx = import ./derivations.nix { inherit pkgs; }; in pkgs.mkShell { - buildInputs = [ hx.rustc hx.rust-riscv32imc-crates hx.cargo ]; - RUSTFLAGS="-L ${hx.rust-riscv32imc-crates}/lib/rustlib/riscv32imc-unknown-none-elf/lib"; + buildInputs = [ hx.rustc hx.rust-riscv32imc-crates hx.lld_7 hx.cargo ]; + RUSTFLAGS="-L ${hx.rust-riscv32imc-crates}/lib/rustlib/riscv32imc-unknown-none-elf/lib -C linker=lld"; }