aboutsummaryrefslogtreecommitdiff
path: root/zkvms/risc0/guest_elf_patch
diff options
context:
space:
mode:
Diffstat (limited to 'zkvms/risc0/guest_elf_patch')
-rw-r--r--zkvms/risc0/guest_elf_patch/Cargo.toml9
-rw-r--r--zkvms/risc0/guest_elf_patch/src/main.rs11
2 files changed, 20 insertions, 0 deletions
diff --git a/zkvms/risc0/guest_elf_patch/Cargo.toml b/zkvms/risc0/guest_elf_patch/Cargo.toml
new file mode 100644
index 0000000..2008faf
--- /dev/null
+++ b/zkvms/risc0/guest_elf_patch/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+name = "guest-elf-patch-risc0"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+risc0-binfmt = { path = "/nix/store/6992z4qxba51p1m9vjbjvcwh16gvdp56-risc0-unstable-2025-03-12/risc0/binfmt" }
+risc0-zkos-v1compat = { path = "/nix/store/6992z4qxba51p1m9vjbjvcwh16gvdp56-risc0-unstable-2025-03-12/risc0/zkos/v1compat" }
+bytemuck_derive = "<1.9.0"
diff --git a/zkvms/risc0/guest_elf_patch/src/main.rs b/zkvms/risc0/guest_elf_patch/src/main.rs
new file mode 100644
index 0000000..6999ab4
--- /dev/null
+++ b/zkvms/risc0/guest_elf_patch/src/main.rs
@@ -0,0 +1,11 @@
+use risc0_binfmt::ProgramBinary;
+use risc0_zkos_v1compat::V1COMPAT_ELF;
+
+static ELF: &[u8] = include_bytes!("../../host/src/guest");
+
+// https://github.com/risc0/risc0/blob/fee2e19a3c49b3da492403de5e2d011c890e52de/risc0/build/src/lib.rs#L179-L187
+fn main() {
+ let binary = ProgramBinary::new(&ELF, V1COMPAT_ELF);
+ let elf = binary.encode();
+ std::fs::write("../host/src/guest", &elf).expect("couldn't add magic bytes to elf!");
+}