mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-05-09 02:28:05 +00:00
94ec34c4d5
Separate between compilation and linker phases to allow deploy time linking and back-porting era compiler changes to fix #91. Unlinked contract binaries (caused by missing libraries or missing factory dependencies in turn) are emitted as raw ELF object. Few drive by fixes: - #98 - A compiler panic on missing libraries definitions. - Fixes some incosistent type forwarding in JSON output (empty string vs. null object). - Remove the unused fallback for size optimization setting. - Remove the broken `--lvm-ir` mode. - CI workflow fixes. --------- Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com> Signed-off-by: xermicus <bigcyrill@hotmail.com> Signed-off-by: xermicus <cyrill@parity.io>
11 lines
403 B
Rust
11 lines
403 B
Rust
//! The revive PVM blob linker library.
|
|
|
|
pub fn polkavm_linker<T: AsRef<[u8]>>(code: T, strip_binary: bool) -> anyhow::Result<Vec<u8>> {
|
|
let mut config = polkavm_linker::Config::default();
|
|
config.set_strip(strip_binary);
|
|
config.set_optimize(true);
|
|
|
|
polkavm_linker::program_from_elf(config, code.as_ref())
|
|
.map_err(|reason| anyhow::anyhow!("polkavm linker failed: {}", reason))
|
|
}
|