From 77e6cd35ee4591f473dea89413f094b2008704a1 Mon Sep 17 00:00:00 2001 From: Dmitri Makarov Date: Sat, 29 May 2021 01:14:53 +0200 Subject: [PATCH] Add BPF rustc option to reduce the optimizations to safer level (#17590) --- programs/bpf/tests/programs.rs | 18 +++++++++--------- sdk/bpf/env.sh | 2 ++ sdk/cargo-build-bpf/src/main.rs | 4 +++- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/programs/bpf/tests/programs.rs b/programs/bpf/tests/programs.rs index 65f75db397..68c0aa5e1b 100644 --- a/programs/bpf/tests/programs.rs +++ b/programs/bpf/tests/programs.rs @@ -1296,17 +1296,17 @@ fn assert_instruction_count() { { programs.extend_from_slice(&[ ("solana_bpf_rust_128bit", 584), - ("solana_bpf_rust_alloc", 4967), + ("solana_bpf_rust_alloc", 7890), ("solana_bpf_rust_dep_crate", 2), - ("solana_bpf_rust_external_spend", 334), - ("solana_bpf_rust_iter", 8), - ("solana_bpf_rust_many_args", 189), - ("solana_bpf_rust_mem", 1989), - ("solana_bpf_rust_membuiltins", 1715), - ("solana_bpf_rust_noop", 322), + ("solana_bpf_rust_external_spend", 508), + ("solana_bpf_rust_iter", 724), + ("solana_bpf_rust_many_args", 233), + ("solana_bpf_rust_mem", 3095), + ("solana_bpf_rust_membuiltins", 4012), + ("solana_bpf_rust_noop", 482), ("solana_bpf_rust_param_passing", 46), - ("solana_bpf_rust_sanity", 587), - ("solana_bpf_rust_sha", 22417), + ("solana_bpf_rust_sanity", 900), + ("solana_bpf_rust_sha", 28877), ]); } diff --git a/sdk/bpf/env.sh b/sdk/bpf/env.sh index 3bdf0555f8..8c15625871 100644 --- a/sdk/bpf/env.sh +++ b/sdk/bpf/env.sh @@ -14,3 +14,5 @@ export CC="$bpf_sdk/dependencies/bpf-tools/llvm/bin/clang" export AR="$bpf_sdk/dependencies/bpf-tools/llvm/bin/llvm-ar" export OBJDUMP="$bpf_sdk/dependencies/bpf-tools/llvm/bin/llvm-objdump" export OBJCOPY="$bpf_sdk/dependencies/bpf-tools/llvm/bin/llvm-objcopy" + +export RUSTFLAGS="-C lto=no -C opt-level=2" diff --git a/sdk/cargo-build-bpf/src/main.rs b/sdk/cargo-build-bpf/src/main.rs index 0d0f1c2a20..41b750bceb 100644 --- a/sdk/cargo-build-bpf/src/main.rs +++ b/sdk/cargo-build-bpf/src/main.rs @@ -277,7 +277,9 @@ fn build_bpf_package(config: &Config, target_directory: &Path, package: &cargo_m env::set_var("AR", llvm_bin.join("llvm-ar")); env::set_var("OBJDUMP", llvm_bin.join("llvm-objdump")); env::set_var("OBJCOPY", llvm_bin.join("llvm-objcopy")); - + let mut rust_flags = String::from("-C lto=no"); + rust_flags.push_str(" -C opt-level=2"); + env::set_var("RUSTFLAGS", rust_flags); let cargo_build = PathBuf::from("cargo"); let mut cargo_build_args = vec![ "+bpf",