sdk: Add SyscallStubs to enable syscall interception when building programs for non-BPF (bp #12984) (#12993)

* Add SyscallStubs to enable syscall interception when building programs for non-BPF

(cherry picked from commit 9c53e1dfb2)

* Remove program_stubs!()

(cherry picked from commit 6d5889bdb5)

Co-authored-by: Michael Vines <mvines@gmail.com>
This commit is contained in:
mergify[bot]
2020-10-19 22:28:44 +00:00
committed by GitHub
parent 4bf0a54ed7
commit 77ba6d6784
23 changed files with 109 additions and 79 deletions

View File

@@ -204,12 +204,17 @@ impl Pubkey {
}
/// Log a `Pubkey` from a program
#[cfg(feature = "program")]
pub fn log(&self) {
extern "C" {
fn sol_log_pubkey(pubkey_addr: *const u8);
};
unsafe { sol_log_pubkey(self.as_ref() as *const _ as *const u8) };
#[cfg(all(feature = "program", target_arch = "bpf"))]
{
extern "C" {
fn sol_log_pubkey(pubkey_addr: *const u8);
};
unsafe { sol_log_pubkey(self.as_ref() as *const _ as *const u8) };
}
#[cfg(all(feature = "program", not(target_arch = "bpf")))]
crate::program_stubs::sol_log(&self.to_string());
}
}