diff --git a/ci/shell.nix b/ci/shell.nix index 567695fa7..6ee6e9584 100644 --- a/ci/shell.nix +++ b/ci/shell.nix @@ -37,7 +37,7 @@ let ]; # we use rustfmt from nixpkgs because it's built with the nighly flag needed for wrap_comments # to use official binary, remove rustfmt from buildInputs and add it to extensions: - extensions = [ "clippy" "rustfmt" ]; + extensions = [ "rust-src" "clippy" "rustfmt" ]; }; llvmPackages = nixpkgs.llvmPackages_13; # see pyright/README.md for update procedure diff --git a/core/SConscript.firmware b/core/SConscript.firmware index d685afd26..4804c7c01 100644 --- a/core/SConscript.firmware +++ b/core/SConscript.firmware @@ -719,7 +719,16 @@ def cargo_build(): if PYOPT == '0': features.append('ui_debug') - return f'cd embed/rust; cargo build {profile} --target={RUST_TARGET} --target-dir=../../build/firmware/rust --no-default-features --features "{" ".join(features)}"' + cargo_opts = [ + f'--target={RUST_TARGET}', + f'--target-dir=../../build/firmware/rust', + '--no-default-features', + '--features ' + ','.join(features), + '-Z build-std=core', + '-Z build-std-features=panic_immediate_abort', + ] + + return f'cd embed/rust; cargo build {profile} ' + ' '.join(cargo_opts) rust = env.Command( target=RUST_LIBPATH,