mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 16:21:06 +00:00
402b64caf5
This PR improves compatibility with RISC-V and PolkaVM, allowing more runtimes to successfully compile. In particular, it makes the following changes: - The `sp-mmr-primitives` and `sp-consensus-beefy` crates unconditionally required an `std`-only dependency; now they only require those dependencies when the `std` feature is actually enabled. (Our RISC-V target is, unlike WASM, a true `no_std` target where you can't accidentally use stuff from `std` anymore.) - One of our dependencies (the `bitvec` trace) uses a crate called `radium` which doesn't compile under RISC-V due to incomplete autodetection logic in their `build.rs` file. The good news is that this is already fixed in the newest upstream version of `radium`, and the newest version of `bitvec` uses it. The bad news is that the newest version of `bitvec` is not currently released on crates.io, so we can't use it. I've [created an issue](https://github.com/ferrilab/ferrilab/issues/5) asking for a new release, but in the meantime I forked the currently used `radium` 0.7, [fixed the faulty logic](https://github.com/paritytech/radium-0.7-fork/commit/ed66c8a294b138c67f93499644051d97d4c7fbda) and used cargo's patching capabilities to use it for the RISC-V runtime builds. This might be a little hacky, but it is the least intrusive way to fix the problem, doesn't affect WASM builds at all, and we can trivially remove it once a new `bitvec` is released. - The new runtimes are added to the CI to make sure their compilation doesn't break.
51 lines
1.5 KiB
TOML
51 lines
1.5 KiB
TOML
[package]
|
|
name = "sp-mmr-primitives"
|
|
version = "26.0.0"
|
|
authors.workspace = true
|
|
edition.workspace = true
|
|
license = "Apache-2.0"
|
|
homepage = "https://substrate.io"
|
|
repository.workspace = true
|
|
description = "Merkle Mountain Range primitives."
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[package.metadata.docs.rs]
|
|
targets = ["x86_64-unknown-linux-gnu"]
|
|
|
|
[dependencies]
|
|
codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false }
|
|
scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
|
|
log = { version = "0.4.17", default-features = false }
|
|
mmr-lib = { package = "ckb-merkle-mountain-range", version = "0.5.2", default-features = false }
|
|
serde = { version = "1.0.195", features = ["alloc", "derive"], default-features = false, optional = true }
|
|
sp-api = { path = "../api", default-features = false }
|
|
sp-core = { path = "../core", default-features = false }
|
|
sp-debug-derive = { path = "../debug-derive", default-features = false }
|
|
sp-runtime = { path = "../runtime", default-features = false }
|
|
sp-std = { path = "../std", default-features = false }
|
|
thiserror = { version = "1.0", optional = true }
|
|
|
|
[dev-dependencies]
|
|
array-bytes = "6.1"
|
|
|
|
[features]
|
|
default = ["std"]
|
|
std = [
|
|
"codec/std",
|
|
"dep:thiserror",
|
|
"log/std",
|
|
"mmr-lib/std",
|
|
"scale-info/std",
|
|
"serde/std",
|
|
"sp-api/std",
|
|
"sp-core/std",
|
|
"sp-debug-derive/std",
|
|
"sp-runtime/std",
|
|
"sp-std/std",
|
|
]
|
|
|
|
# Serde support without relying on std features.
|
|
serde = ["dep:serde", "scale-info/serde", "sp-core/serde", "sp-runtime/serde"]
|