From 20ac67965177de25ed695bf99dc4153e5110140f Mon Sep 17 00:00:00 2001 From: matejcik Date: Thu, 18 Aug 2022 13:24:46 +0200 Subject: [PATCH] build(core/rust): enable panic_immediate_abort for firmware --- ci/shell.nix | 2 +- core/SConscript.firmware | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) 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,