From f2f4f28c0b14fe48b72c34ce5996c7f938dc5380 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 5 Apr 2021 21:57:26 +0000 Subject: [PATCH] merkle-tree: fix build when targeting bpf (bp #16335) (#16342) * merkle-tree: Add Xargo.toml (cherry picked from commit a1d9b53cd7b0c70c5b9d980be6958d2ea0479aad) * merkle-tree: Get `Hash` et. al from program instead of sdk (cherry picked from commit ddc0a16cec7e98a8f44af83a7d6a90142b157b5f) * merkle-tree: Use `matches` crate when targeting eBPF (cherry picked from commit a44c32694f69c667b2937846d502d8943567213a) Co-authored-by: Trent Nelson --- Cargo.lock | 3 ++- merkle-tree/Cargo.toml | 6 +++++- merkle-tree/Xargo.toml | 2 ++ merkle-tree/src/lib.rs | 5 +++++ merkle-tree/src/merkle_tree.rs | 2 +- 5 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 merkle-tree/Xargo.toml diff --git a/Cargo.lock b/Cargo.lock index baabb7e5d8..294d22221c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4792,7 +4792,8 @@ version = "1.6.5" dependencies = [ "fast-math", "hex", - "solana-sdk", + "matches", + "solana-program 1.6.5", ] [[package]] diff --git a/merkle-tree/Cargo.toml b/merkle-tree/Cargo.toml index 60fff47596..2c3b2f71e3 100644 --- a/merkle-tree/Cargo.toml +++ b/merkle-tree/Cargo.toml @@ -10,9 +10,13 @@ documentation = "https://docs.rs/solana-merkle-tree" edition = "2018" [dependencies] -solana-sdk = { path = "../sdk", version = "=1.6.5" } +solana-program = { path = "../sdk/program", version = "=1.6.5" } fast-math = "0.1" +# This can go once the BPF toolchain target Rust 1.42.0+ +[target.bpfel-unknown-unknown.dependencies] +matches = "0.1.8" + [dev-dependencies] hex = "0.4.2" diff --git a/merkle-tree/Xargo.toml b/merkle-tree/Xargo.toml new file mode 100644 index 0000000000..475fb71ed1 --- /dev/null +++ b/merkle-tree/Xargo.toml @@ -0,0 +1,2 @@ +[target.bpfel-unknown-unknown.dependencies.std] +features = [] diff --git a/merkle-tree/src/lib.rs b/merkle-tree/src/lib.rs index f68e4b7ef4..8732b823df 100644 --- a/merkle-tree/src/lib.rs +++ b/merkle-tree/src/lib.rs @@ -1,3 +1,8 @@ #![allow(clippy::integer_arithmetic)] + +#[cfg(target_arch = "bpf")] +#[macro_use] +extern crate matches; + pub mod merkle_tree; pub use merkle_tree::MerkleTree; diff --git a/merkle-tree/src/merkle_tree.rs b/merkle-tree/src/merkle_tree.rs index 7bec5ed043..2834fbee90 100644 --- a/merkle-tree/src/merkle_tree.rs +++ b/merkle-tree/src/merkle_tree.rs @@ -1,4 +1,4 @@ -use solana_sdk::hash::{hashv, Hash}; +use solana_program::hash::{hashv, Hash}; // We need to discern between leaf and intermediate nodes to prevent trivial second // pre-image attacks.