diff --git a/programs/bpf/rust/128bit/Cargo.toml b/programs/bpf/rust/128bit/Cargo.toml index 2827e08fae..225a97df3a 100644 --- a/programs/bpf/rust/128bit/Cargo.toml +++ b/programs/bpf/rust/128bit/Cargo.toml @@ -13,11 +13,11 @@ edition = "2018" [dependencies] solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = false } -solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "1.4.0" } +solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "1.4.0", default-features = false } [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [lib] name = "solana_bpf_rust_128bit" diff --git a/programs/bpf/rust/128bit_dep/Cargo.toml b/programs/bpf/rust/128bit_dep/Cargo.toml index 8abfef052d..7cccb58414 100644 --- a/programs/bpf/rust/128bit_dep/Cargo.toml +++ b/programs/bpf/rust/128bit_dep/Cargo.toml @@ -16,7 +16,7 @@ solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/bpf/rust/alloc/Cargo.toml b/programs/bpf/rust/alloc/Cargo.toml index ac3fc2b0fc..d0f1800fb9 100644 --- a/programs/bpf/rust/alloc/Cargo.toml +++ b/programs/bpf/rust/alloc/Cargo.toml @@ -16,7 +16,7 @@ solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [lib] name = "solana_bpf_rust_alloc" diff --git a/programs/bpf/rust/dep_crate/Cargo.toml b/programs/bpf/rust/dep_crate/Cargo.toml index af0649a3fa..26470e057c 100644 --- a/programs/bpf/rust/dep_crate/Cargo.toml +++ b/programs/bpf/rust/dep_crate/Cargo.toml @@ -17,7 +17,7 @@ solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [lib] name = "solana_bpf_rust_dep_crate" diff --git a/programs/bpf/rust/dup_accounts/Cargo.toml b/programs/bpf/rust/dup_accounts/Cargo.toml index a64c46964f..de79bd4bc0 100644 --- a/programs/bpf/rust/dup_accounts/Cargo.toml +++ b/programs/bpf/rust/dup_accounts/Cargo.toml @@ -16,7 +16,7 @@ solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [lib] name = "solana_bpf_rust_dup_accounts" diff --git a/programs/bpf/rust/error_handling/Cargo.toml b/programs/bpf/rust/error_handling/Cargo.toml index 0ecfe8e520..101ac69d93 100644 --- a/programs/bpf/rust/error_handling/Cargo.toml +++ b/programs/bpf/rust/error_handling/Cargo.toml @@ -19,7 +19,7 @@ thiserror = "1.0" [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [lib] name = "solana_bpf_rust_error_handling" diff --git a/programs/bpf/rust/external_spend/Cargo.toml b/programs/bpf/rust/external_spend/Cargo.toml index f01c61c8a3..8fe1edd01c 100644 --- a/programs/bpf/rust/external_spend/Cargo.toml +++ b/programs/bpf/rust/external_spend/Cargo.toml @@ -16,7 +16,7 @@ solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [lib] name = "solana_bpf_rust_external_spend" diff --git a/programs/bpf/rust/invoke/Cargo.toml b/programs/bpf/rust/invoke/Cargo.toml index 4276ecd206..c3db59a7dd 100644 --- a/programs/bpf/rust/invoke/Cargo.toml +++ b/programs/bpf/rust/invoke/Cargo.toml @@ -12,16 +12,16 @@ homepage = "https://solana.com/" edition = "2018" [dependencies] -solana-bpf-rust-invoked = { path = "../invoked"} +solana-bpf-rust-invoked = { path = "../invoked", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = false } [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [lib] name = "solana_bpf_rust_invoke" crate-type = ["cdylib"] [package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] \ No newline at end of file +targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/bpf/rust/invoke/src/lib.rs b/programs/bpf/rust/invoke/src/lib.rs index f402e90684..561d6403f2 100644 --- a/programs/bpf/rust/invoke/src/lib.rs +++ b/programs/bpf/rust/invoke/src/lib.rs @@ -266,5 +266,17 @@ fn process_instruction( Ok(()) } -// Pull in syscall stubs when building for non-BPF targets -solana_sdk::program_stubs!(); +#[cfg(test)] +mod test { + use super::*; + // Pull in syscall stubs when building for non-BPF targets + solana_sdk::program_stubs!(); + + #[test] + fn create_program_address_is_defined() { + assert_eq!( + Pubkey::create_program_address(&[b"You pass butter"], &Pubkey::default()).unwrap_err(), + PubkeyError::InvalidSeeds + ); + } +} diff --git a/programs/bpf/rust/invoked/Cargo.toml b/programs/bpf/rust/invoked/Cargo.toml index d7e305942d..92b98d0e92 100644 --- a/programs/bpf/rust/invoked/Cargo.toml +++ b/programs/bpf/rust/invoked/Cargo.toml @@ -16,11 +16,11 @@ solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [lib] name = "solana_bpf_rust_invoked" crate-type = ["lib", "cdylib"] [package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] \ No newline at end of file +targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/bpf/rust/iter/Cargo.toml b/programs/bpf/rust/iter/Cargo.toml index 3fd017fa6b..7118522416 100644 --- a/programs/bpf/rust/iter/Cargo.toml +++ b/programs/bpf/rust/iter/Cargo.toml @@ -16,7 +16,7 @@ solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [lib] name = "solana_bpf_rust_iter" diff --git a/programs/bpf/rust/many_args/Cargo.toml b/programs/bpf/rust/many_args/Cargo.toml index 2ea93b72a6..ee65df3965 100644 --- a/programs/bpf/rust/many_args/Cargo.toml +++ b/programs/bpf/rust/many_args/Cargo.toml @@ -13,11 +13,11 @@ edition = "2018" [dependencies] solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = false } -solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "1.4.0" } +solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "1.4.0", default-features = false } [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [lib] name = "solana_bpf_rust_many_args" diff --git a/programs/bpf/rust/many_args_dep/Cargo.toml b/programs/bpf/rust/many_args_dep/Cargo.toml index 1fc9d00950..82e166d0a5 100644 --- a/programs/bpf/rust/many_args_dep/Cargo.toml +++ b/programs/bpf/rust/many_args_dep/Cargo.toml @@ -16,7 +16,7 @@ solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/bpf/rust/noop/Cargo.toml b/programs/bpf/rust/noop/Cargo.toml index 192b8ca9a7..8af54b4f06 100644 --- a/programs/bpf/rust/noop/Cargo.toml +++ b/programs/bpf/rust/noop/Cargo.toml @@ -16,7 +16,7 @@ solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [lib] name = "solana_bpf_rust_noop" diff --git a/programs/bpf/rust/panic/Cargo.toml b/programs/bpf/rust/panic/Cargo.toml index d0f5cddd27..a597d3029a 100644 --- a/programs/bpf/rust/panic/Cargo.toml +++ b/programs/bpf/rust/panic/Cargo.toml @@ -16,7 +16,7 @@ solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [lib] name = "solana_bpf_rust_panic" diff --git a/programs/bpf/rust/param_passing/Cargo.toml b/programs/bpf/rust/param_passing/Cargo.toml index bf91cf8040..55b7f0d23c 100644 --- a/programs/bpf/rust/param_passing/Cargo.toml +++ b/programs/bpf/rust/param_passing/Cargo.toml @@ -13,11 +13,11 @@ edition = "2018" [dependencies] solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = false } -solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "1.4.0" } +solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "1.4.0", default-features = false } [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [lib] name = "solana_bpf_rust_param_passing" diff --git a/programs/bpf/rust/param_passing_dep/Cargo.toml b/programs/bpf/rust/param_passing_dep/Cargo.toml index 8d719bbf36..db76b277aa 100644 --- a/programs/bpf/rust/param_passing_dep/Cargo.toml +++ b/programs/bpf/rust/param_passing_dep/Cargo.toml @@ -16,7 +16,7 @@ solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/bpf/rust/sysval/Cargo.toml b/programs/bpf/rust/sysval/Cargo.toml index a3d5b5dc80..6dd5bb4a8f 100644 --- a/programs/bpf/rust/sysval/Cargo.toml +++ b/programs/bpf/rust/sysval/Cargo.toml @@ -16,7 +16,7 @@ solana-sdk = { path = "../../../../sdk/", version = "1.4.0", default-features = [features] program = ["solana-sdk/program"] -default = ["program"] +default = ["program", "solana-sdk/default"] [lib] name = "solana_bpf_rust_sysval" diff --git a/sdk/src/pubkey.rs b/sdk/src/pubkey.rs index 62032185b7..1148ae4db2 100644 --- a/sdk/src/pubkey.rs +++ b/sdk/src/pubkey.rs @@ -1,6 +1,6 @@ -#[cfg(feature = "program")] +#[cfg(all(feature = "program", target_arch = "bpf"))] use crate::entrypoint::SUCCESS; -#[cfg(not(feature = "program"))] +#[cfg(not(all(feature = "program", target_arch = "bpf")))] use crate::hash::Hasher; use crate::{decode_error::DecodeError, hash::hashv}; use num_derive::{FromPrimitive, ToPrimitive}; @@ -107,7 +107,7 @@ impl Pubkey { ) -> Result { // Perform the calculation inline, calling this from within a program is // not supported - #[cfg(not(feature = "program"))] + #[cfg(not(all(feature = "program", target_arch = "bpf")))] { let mut hasher = Hasher::default(); for seed in seeds.iter() { @@ -129,7 +129,7 @@ impl Pubkey { Ok(Pubkey::new(hash.as_ref())) } // Call via a system call to perform the calculation - #[cfg(feature = "program")] + #[cfg(all(feature = "program", target_arch = "bpf"))] { extern "C" { fn sol_create_program_address(