Initial support for building RISC-V runtimes targeting PolkaVM (#3179)
This PR adds initial support for building RISC-V runtimes targeting PolkaVM. - Setting the `SUBSTRATE_RUNTIME_TARGET=riscv` environment variable will now build a RISC-V runtime instead of a WASM runtime. - This only adds support for *building* runtimes; running them will need a PolkaVM-based executor, which I will add in a future PR. - Only building the minimal runtime is supported (building the Polkadot runtime doesn't work *yet* due to one of the dependencies). - The builder now sets a `substrate_runtime` cfg flag when building the runtimes, with the idea being that instead of doing `#[cfg(not(feature = "std"))]` or `#[cfg(target_arch = "wasm32")]` to detect that we're building a runtime you'll do `#[cfg(substrate_runtime)]`. (Switching the whole codebase to use this will be done in a future PR; I deliberately didn't do this here to keep this PR minimal and reviewable.) - Further renaming of things (e.g. types, environment variables...
Showing
- .gitlab/pipeline/build.yml 8 additions, 0 deletions.gitlab/pipeline/build.yml
- Cargo.lock 60 additions, 5 deletionsCargo.lock
- Cargo.toml 4 additions, 0 deletionsCargo.toml
- substrate/primitives/api/Cargo.toml 5 additions, 1 deletionsubstrate/primitives/api/Cargo.toml
- substrate/primitives/api/proc-macro/src/impl_runtime_apis.rs 2 additions, 1 deletionsubstrate/primitives/api/proc-macro/src/impl_runtime_apis.rs
- substrate/primitives/api/src/lib.rs 3 additions, 0 deletionssubstrate/primitives/api/src/lib.rs
- substrate/primitives/io/src/lib.rs 31 additions, 12 deletionssubstrate/primitives/io/src/lib.rs
- substrate/primitives/runtime-interface/Cargo.toml 3 additions, 0 deletionssubstrate/primitives/runtime-interface/Cargo.toml
- substrate/primitives/runtime-interface/proc-macro/src/runtime_interface/bare_function_interface.rs 7 additions, 2 deletions...oc-macro/src/runtime_interface/bare_function_interface.rs
- substrate/primitives/runtime-interface/proc-macro/src/runtime_interface/host_function_interface.rs 1 addition, 1 deletion...oc-macro/src/runtime_interface/host_function_interface.rs
- substrate/primitives/runtime-interface/src/lib.rs 3 additions, 0 deletionssubstrate/primitives/runtime-interface/src/lib.rs
- substrate/primitives/runtime-interface/src/polkavm.rs 30 additions, 0 deletionssubstrate/primitives/runtime-interface/src/polkavm.rs
- substrate/utils/wasm-builder/Cargo.toml 1 addition, 0 deletionssubstrate/utils/wasm-builder/Cargo.toml
- substrate/utils/wasm-builder/src/builder.rs 29 additions, 4 deletionssubstrate/utils/wasm-builder/src/builder.rs
- substrate/utils/wasm-builder/src/lib.rs 97 additions, 14 deletionssubstrate/utils/wasm-builder/src/lib.rs
- substrate/utils/wasm-builder/src/prerequisites.rs 134 additions, 85 deletionssubstrate/utils/wasm-builder/src/prerequisites.rs
- substrate/utils/wasm-builder/src/wasm_project.rs 160 additions, 45 deletionssubstrate/utils/wasm-builder/src/wasm_project.rs
Please register or sign in to comment