Defeature bpf_loader; bpf_{c,rust} features now confined to programs/bpf
This commit is contained in:
parent
d0be16b49a
commit
03d6c9a552
|
@ -2031,11 +2031,15 @@ dependencies = [
|
||||||
name = "solana-bpf-programs"
|
name = "solana-bpf-programs"
|
||||||
version = "0.12.0"
|
version = "0.12.0"
|
||||||
dependencies = [
|
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-bpfloader 0.12.0",
|
||||||
"solana-logger 0.12.0",
|
"solana-logger 0.12.0",
|
||||||
"solana-runtime 0.12.0",
|
"solana-runtime 0.12.0",
|
||||||
"solana-sdk 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]]
|
[[package]]
|
||||||
|
@ -2044,14 +2048,12 @@ version = "0.12.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"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)",
|
"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)",
|
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.12.0",
|
"solana-logger 0.12.0",
|
||||||
"solana-sdk 0.12.0",
|
"solana-sdk 0.12.0",
|
||||||
"solana_rbpf 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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]]
|
[[package]]
|
||||||
|
|
|
@ -42,12 +42,12 @@ BENCH_ARTIFACT=current_bench_results.log
|
||||||
_ cargo +nightly bench ${V:+--verbose} \
|
_ cargo +nightly bench ${V:+--verbose} \
|
||||||
-- -Z unstable-options --format=json | tee "$BENCH_FILE"
|
-- -Z unstable-options --format=json | tee "$BENCH_FILE"
|
||||||
|
|
||||||
# Run bpf_loader bench with bpf_c feature enabled
|
# Run bpf benches
|
||||||
echo --- program/bpf_loader bench --features=bpf_c
|
echo --- program/bpf
|
||||||
(
|
(
|
||||||
set -x
|
set -x
|
||||||
cd programs/bpf_loader
|
cd programs/bpf
|
||||||
cargo +nightly bench ${V:+--verbose} --features="bpf_c" \
|
cargo +nightly bench ${V:+--verbose} --features=bpf_c \
|
||||||
-- -Z unstable-options --format=json --nocapture | tee -a ../../../"$BENCH_FILE"
|
-- -Z unstable-options --format=json --nocapture | tee -a ../../../"$BENCH_FILE"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -44,21 +44,12 @@ test-stable-perf)
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# Run program package with these features
|
# BPF program tests
|
||||||
PROGRAM_FEATURES=bpf_c,bpf_rust
|
|
||||||
|
|
||||||
# Run all BPF C tests
|
|
||||||
_ make -C programs/bpf/c 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
|
# Run root package tests with these features
|
||||||
_ 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
|
|
||||||
ROOT_FEATURES=erasure,chacha
|
ROOT_FEATURES=erasure,chacha
|
||||||
if [[ $(uname) = Darwin ]]; then
|
if [[ $(uname) = Darwin ]]; then
|
||||||
./build-perf-libs.sh
|
./build-perf-libs.sh
|
||||||
|
|
|
@ -11,15 +11,21 @@ license = "Apache-2.0"
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
bpf_c = ["solana-bpfloader/bpf_c"]
|
bpf_c = []
|
||||||
bpf_rust = ["solana-bpfloader/bpf_rust"]
|
bpf_rust = []
|
||||||
chacha = ["solana/chacha"]
|
|
||||||
cuda = ["solana/cuda"]
|
[build-dependencies]
|
||||||
erasure = ["solana/erasure"]
|
walkdir = "2"
|
||||||
|
|
||||||
[dependencies]
|
[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-bpfloader = { path = "../bpf_loader", version = "0.12.0" }
|
||||||
solana-logger = { path = "../../logger", version = "0.12.0" }
|
solana-logger = { path = "../../logger", version = "0.12.0" }
|
||||||
solana-runtime = { path = "../../runtime", version = "0.12.0" }
|
solana-runtime = { path = "../../runtime", version = "0.12.0" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.12.0" }
|
solana-sdk = { path = "../../sdk", version = "0.12.0" }
|
||||||
|
|
||||||
|
[[bench]]
|
||||||
|
name = "bpf_loader"
|
||||||
|
|
|
@ -36,17 +36,13 @@ fn main() {
|
||||||
+ &"/bpf".to_string();
|
+ &"/bpf".to_string();
|
||||||
|
|
||||||
rerun_if_changed(
|
rerun_if_changed(
|
||||||
&[
|
&["../../sdk/bpf/bpf.ld", "../../sdk/bpf/bpf.mk", "c/makefile"],
|
||||||
"../../sdk/bpf/bpf.ld",
|
&["../../sdk/bpf/inc", "../../sdk/bpf/scripts", "c/src"],
|
||||||
"../../sdk/bpf/bpf.mk",
|
|
||||||
"../bpf/c/makefile",
|
|
||||||
],
|
|
||||||
&["../../sdk/bpf/inc", "../../sdk/bpf/scripts", "../bpf/c/src"],
|
|
||||||
);
|
);
|
||||||
|
|
||||||
println!("cargo:warning=(not a warning) Compiling C-based BPF programs");
|
println!("cargo:warning=(not a warning) Compiling C-based BPF programs");
|
||||||
let status = Command::new("make")
|
let status = Command::new("make")
|
||||||
.current_dir("../bpf/c")
|
.current_dir("c")
|
||||||
.arg("programs")
|
.arg("programs")
|
||||||
.arg(&out_dir)
|
.arg(&out_dir)
|
||||||
.status()
|
.status()
|
||||||
|
@ -59,9 +55,7 @@ fn main() {
|
||||||
let install_dir =
|
let install_dir =
|
||||||
"../../../../target/".to_string() + &env::var("PROFILE").unwrap() + &"/bpf".to_string();
|
"../../../../target/".to_string() + &env::var("PROFILE").unwrap() + &"/bpf".to_string();
|
||||||
|
|
||||||
if !Path::new(
|
if !Path::new("rust/noop/target/bpfel-unknown-unknown/release/solana_bpf_rust_noop.so")
|
||||||
"../bpf/rust/noop/target/bpfel-unknown-unknown/release/solana_bpf_rust_noop.so",
|
|
||||||
)
|
|
||||||
.is_file()
|
.is_file()
|
||||||
{
|
{
|
||||||
// Cannot build Rust BPF programs as part of main build because
|
// Cannot build Rust BPF programs as part of main build because
|
||||||
|
@ -75,19 +69,19 @@ fn main() {
|
||||||
|
|
||||||
rerun_if_changed(
|
rerun_if_changed(
|
||||||
&[
|
&[
|
||||||
"../bpf/rust/noop/bpf.ld",
|
"rust/noop/bpf.ld",
|
||||||
"../bpf/rust/noop/build.sh",
|
"rust/noop/build.sh",
|
||||||
"../bpf/rust/noop/Cargo.toml",
|
"rust/noop/Cargo.toml",
|
||||||
"../bpf/rust/noop/target/bpfel-unknown-unknown/release/solana_bpf_rust_noop.so",
|
"rust/noop/target/bpfel-unknown-unknown/release/solana_bpf_rust_noop.so",
|
||||||
],
|
],
|
||||||
&["../bpf/rust/noop/src"],
|
&["rust/noop/src"],
|
||||||
);
|
);
|
||||||
|
|
||||||
println!(
|
println!(
|
||||||
"cargo:warning=(not a warning) Installing Rust-based BPF program: solana_bpf_rust_noop"
|
"cargo:warning=(not a warning) Installing Rust-based BPF program: solana_bpf_rust_noop"
|
||||||
);
|
);
|
||||||
let status = Command::new("mkdir")
|
let status = Command::new("mkdir")
|
||||||
.current_dir("../bpf/rust/noop")
|
.current_dir("rust/noop")
|
||||||
.arg("-p")
|
.arg("-p")
|
||||||
.arg(&install_dir)
|
.arg(&install_dir)
|
||||||
.status()
|
.status()
|
||||||
|
@ -95,7 +89,7 @@ fn main() {
|
||||||
assert!(status.success());
|
assert!(status.success());
|
||||||
|
|
||||||
let status = Command::new("cp")
|
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("target/bpfel-unknown-unknown/release/solana_bpf_rust_noop.so")
|
||||||
.arg(&install_dir)
|
.arg(&install_dir)
|
||||||
.status()
|
.status()
|
|
@ -8,14 +8,9 @@ license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[features]
|
|
||||||
bpf_c = []
|
|
||||||
bpf_rust = []
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bincode = "1.1.2"
|
bincode = "1.1.2"
|
||||||
byteorder = "1.3.1"
|
byteorder = "1.3.1"
|
||||||
elf = "0.0.10"
|
|
||||||
libc = "0.2.49"
|
libc = "0.2.49"
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
solana_rbpf = "=0.1.10"
|
solana_rbpf = "=0.1.10"
|
||||||
|
@ -23,13 +18,6 @@ serde = "1.0.89"
|
||||||
solana-logger = { path = "../../logger", version = "0.12.0" }
|
solana-logger = { path = "../../logger", version = "0.12.0" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.12.0" }
|
solana-sdk = { path = "../../sdk", version = "0.12.0" }
|
||||||
|
|
||||||
[build-dependencies]
|
|
||||||
walkdir = "2"
|
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "solana_bpf_loader"
|
name = "solana_bpf_loader"
|
||||||
crate-type = ["lib", "cdylib"]
|
crate-type = ["lib", "cdylib"]
|
||||||
|
|
||||||
[[bench]]
|
|
||||||
name = "bpf_loader"
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue