Defeature bpf_loader; bpf_{c,rust} features now confined to programs/bpf

This commit is contained in:
Michael Vines 2019-03-04 10:08:21 -08:00 committed by Grimes
parent d0be16b49a
commit 03d6c9a552
7 changed files with 37 additions and 56 deletions

8
Cargo.lock generated
View File

@ -2031,11 +2031,15 @@ dependencies = [
name = "solana-bpf-programs"
version = "0.12.0"
dependencies = [
"solana 0.12.0",
"bincode 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"elf 0.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-bpfloader 0.12.0",
"solana-logger 0.12.0",
"solana-runtime 0.12.0",
"solana-sdk 0.12.0",
"solana_rbpf 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
"walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@ -2044,14 +2048,12 @@ version = "0.12.0"
dependencies = [
"bincode 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"elf 0.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-logger 0.12.0",
"solana-sdk 0.12.0",
"solana_rbpf 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
"walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]

View File

@ -42,12 +42,12 @@ BENCH_ARTIFACT=current_bench_results.log
_ cargo +nightly bench ${V:+--verbose} \
-- -Z unstable-options --format=json | tee "$BENCH_FILE"
# Run bpf_loader bench with bpf_c feature enabled
echo --- program/bpf_loader bench --features=bpf_c
# Run bpf benches
echo --- program/bpf
(
set -x
cd programs/bpf_loader
cargo +nightly bench ${V:+--verbose} --features="bpf_c" \
cd programs/bpf
cargo +nightly bench ${V:+--verbose} --features=bpf_c \
-- -Z unstable-options --format=json --nocapture | tee -a ../../../"$BENCH_FILE"
)

View File

@ -44,21 +44,12 @@ test-stable-perf)
exit 0
}
# Run program package with these features
PROGRAM_FEATURES=bpf_c,bpf_rust
# Run all BPF C tests
# BPF program tests
_ make -C programs/bpf/c tests
_ programs/bpf/rust/noop/build.sh # Must be built out of band
_ cargo test --manifest-path programs/bpf/Cargo.toml --no-default-features --features=bpf_c,bpf_rust
# Must be built out of band
_ pushd programs/bpf/rust/noop
./build.sh
popd
_ cargo test --manifest-path programs/bpf/Cargo.toml --no-default-features --features="$PROGRAM_FEATURES"
_ cargo test --manifest-path programs/bpf_loader/Cargo.toml --no-default-features --features="$PROGRAM_FEATURES"
# Run root package tests witht these features
# Run root package tests with these features
ROOT_FEATURES=erasure,chacha
if [[ $(uname) = Darwin ]]; then
./build-perf-libs.sh

View File

@ -11,15 +11,21 @@ license = "Apache-2.0"
edition = "2018"
[features]
bpf_c = ["solana-bpfloader/bpf_c"]
bpf_rust = ["solana-bpfloader/bpf_rust"]
chacha = ["solana/chacha"]
cuda = ["solana/cuda"]
erasure = ["solana/erasure"]
bpf_c = []
bpf_rust = []
[build-dependencies]
walkdir = "2"
[dependencies]
solana = { path = "../../core", version = "0.12.0" }
bincode = "1.1.2"
byteorder = "1.3.1"
elf = "0.0.10"
solana_rbpf = "=0.1.10"
solana-bpfloader = { path = "../bpf_loader", version = "0.12.0" }
solana-logger = { path = "../../logger", version = "0.12.0" }
solana-runtime = { path = "../../runtime", version = "0.12.0" }
solana-sdk = { path = "../../sdk", version = "0.12.0" }
[[bench]]
name = "bpf_loader"

View File

@ -36,17 +36,13 @@ fn main() {
+ &"/bpf".to_string();
rerun_if_changed(
&[
"../../sdk/bpf/bpf.ld",
"../../sdk/bpf/bpf.mk",
"../bpf/c/makefile",
],
&["../../sdk/bpf/inc", "../../sdk/bpf/scripts", "../bpf/c/src"],
&["../../sdk/bpf/bpf.ld", "../../sdk/bpf/bpf.mk", "c/makefile"],
&["../../sdk/bpf/inc", "../../sdk/bpf/scripts", "c/src"],
);
println!("cargo:warning=(not a warning) Compiling C-based BPF programs");
let status = Command::new("make")
.current_dir("../bpf/c")
.current_dir("c")
.arg("programs")
.arg(&out_dir)
.status()
@ -59,10 +55,8 @@ fn main() {
let install_dir =
"../../../../target/".to_string() + &env::var("PROFILE").unwrap() + &"/bpf".to_string();
if !Path::new(
"../bpf/rust/noop/target/bpfel-unknown-unknown/release/solana_bpf_rust_noop.so",
)
.is_file()
if !Path::new("rust/noop/target/bpfel-unknown-unknown/release/solana_bpf_rust_noop.so")
.is_file()
{
// Cannot build Rust BPF programs as part of main build because
// to build it requires calling Cargo with different parameters which
@ -75,19 +69,19 @@ fn main() {
rerun_if_changed(
&[
"../bpf/rust/noop/bpf.ld",
"../bpf/rust/noop/build.sh",
"../bpf/rust/noop/Cargo.toml",
"../bpf/rust/noop/target/bpfel-unknown-unknown/release/solana_bpf_rust_noop.so",
"rust/noop/bpf.ld",
"rust/noop/build.sh",
"rust/noop/Cargo.toml",
"rust/noop/target/bpfel-unknown-unknown/release/solana_bpf_rust_noop.so",
],
&["../bpf/rust/noop/src"],
&["rust/noop/src"],
);
println!(
"cargo:warning=(not a warning) Installing Rust-based BPF program: solana_bpf_rust_noop"
);
let status = Command::new("mkdir")
.current_dir("../bpf/rust/noop")
.current_dir("rust/noop")
.arg("-p")
.arg(&install_dir)
.status()
@ -95,7 +89,7 @@ fn main() {
assert!(status.success());
let status = Command::new("cp")
.current_dir("../bpf/rust/noop")
.current_dir("rust/noop")
.arg("target/bpfel-unknown-unknown/release/solana_bpf_rust_noop.so")
.arg(&install_dir)
.status()

View File

@ -8,14 +8,9 @@ license = "Apache-2.0"
homepage = "https://solana.com/"
edition = "2018"
[features]
bpf_c = []
bpf_rust = []
[dependencies]
bincode = "1.1.2"
byteorder = "1.3.1"
elf = "0.0.10"
libc = "0.2.49"
log = "0.4.2"
solana_rbpf = "=0.1.10"
@ -23,13 +18,6 @@ serde = "1.0.89"
solana-logger = { path = "../../logger", version = "0.12.0" }
solana-sdk = { path = "../../sdk", version = "0.12.0" }
[build-dependencies]
walkdir = "2"
[lib]
name = "solana_bpf_loader"
crate-type = ["lib", "cdylib"]
[[bench]]
name = "bpf_loader"