error[E0433]: failed to resolve: use of undeclared crate or module `alloc`
--> /home/clang/.cargo/registry/src/index.crates.io-6f17d22bba15001f/frame-benchmarking-36.0.0/src/v1.rs:1738:2
|
1738 | / sp_runtime::format_runtime_string!(
1739 | | "\n* Pallet: {}\n\
1740 | | * Benchmark: {}\n\
1741 | | * Components: {:?}\n\
... |
1750 | | error_message,
1751 | | )
| |_____^ use of undeclared crate or module `alloc`
|
= note: this error originates in the macro `sp_runtime::format_runtime_string` (in Nightly builds, run with -Z macro-backtrace for more info)
For more information about this error, try `rustc --explain E0433`.
The macro hygiene for the
format_runtime_string!
macro was broken since https://github.com/paritytech/polkadot-sdk/pull/5010, which resulted in the following build error under certain circumstances:This bug has been known already, but hasn't been fixed so far, see https://github.com/paritytech/polkadot-sdk/issues/5213 and https://substrate.stackexchange.com/questions/11786/use-of-undeclared-crate-or-module-alloc-when-upgrade-to-v1-13-0.
I have made a mini rust crate that can reproduce the bug, and it also shows that this PR will fix the issue: https://github.com/clangenb/sp-runtime-string-test.