From fb04ea5d031dacb0a588f34be951ea75601c02e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20Kr=C3=BCger?= Date: Thu, 24 Oct 2024 14:53:59 +0100 Subject: [PATCH] RISC-V: Make panic hook argument work for Rust 1.81+ --- etherlink/kernel_evm/Cargo.lock | 7 +++++++ src/kernel_sdk/Cargo.lock | 7 +++++++ src/kernel_sdk/panic-hook/Cargo.toml | 3 +++ src/kernel_sdk/panic-hook/src/lib.rs | 11 +++++++++-- src/kernel_tx_demo/Cargo.lock | 7 +++++++ src/riscv/Cargo.lock | 1 + src/riscv/dummy_kernel/Cargo.lock | 7 +++++++ src/riscv/jstz/Cargo.lock | 7 +++++++ 8 files changed, 48 insertions(+), 2 deletions(-) diff --git a/etherlink/kernel_evm/Cargo.lock b/etherlink/kernel_evm/Cargo.lock index 04172e04f930..aede1d00866f 100644 --- a/etherlink/kernel_evm/Cargo.lock +++ b/etherlink/kernel_evm/Cargo.lock @@ -1837,6 +1837,12 @@ dependencies = [ "untrusted", ] +[[package]] +name = "rustversion" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" + [[package]] name = "rusty-fork" version = "0.3.0" @@ -2327,6 +2333,7 @@ dependencies = [ name = "tezos-smart-rollup-panic-hook" version = "0.2.2" dependencies = [ + "rustversion", "tezos-smart-rollup-core", ] diff --git a/src/kernel_sdk/Cargo.lock b/src/kernel_sdk/Cargo.lock index 377b737cbde9..ee0351461b93 100644 --- a/src/kernel_sdk/Cargo.lock +++ b/src/kernel_sdk/Cargo.lock @@ -1332,6 +1332,12 @@ dependencies = [ "untrusted", ] +[[package]] +name = "rustversion" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" + [[package]] name = "rusty-fork" version = "0.3.0" @@ -1699,6 +1705,7 @@ dependencies = [ name = "tezos-smart-rollup-panic-hook" version = "0.2.2" dependencies = [ + "rustversion", "tezos-smart-rollup-core", ] diff --git a/src/kernel_sdk/panic-hook/Cargo.toml b/src/kernel_sdk/panic-hook/Cargo.toml index b516a6f5275c..73f8518170be 100644 --- a/src/kernel_sdk/panic-hook/Cargo.toml +++ b/src/kernel_sdk/panic-hook/Cargo.toml @@ -14,6 +14,9 @@ description = "Hook for capturing kernel panics & printing to debug log." keywords = ["tezos", "smart", "rollup"] categories = ["no-std", "no-std::no-alloc", "api-bindings", "wasm"] +[dependencies] +rustversion = "1.0" + [dependencies.tezos-smart-rollup-core] path = "../core" version = "0.2.2" diff --git a/src/kernel_sdk/panic-hook/src/lib.rs b/src/kernel_sdk/panic-hook/src/lib.rs index 564659f86204..bca63a15fb72 100644 --- a/src/kernel_sdk/panic-hook/src/lib.rs +++ b/src/kernel_sdk/panic-hook/src/lib.rs @@ -21,13 +21,20 @@ extern crate std; extern crate alloc; -use core::panic::PanicInfo; +/// Argument type for the panic hook +#[rustversion::before(1.81)] +pub type PanicHookArg<'a> = core::panic::PanicInfo<'a>; + +/// Argument type for the panic hook +// From 1.81 onwards, panic hooks take [`std::panic::PanicHookInfo`] instead. +#[rustversion::since(1.81)] +pub type PanicHookArg<'a> = std::panic::PanicHookInfo<'a>; /// Prints the panic info to the host's *debug log*, and then aborts. /// /// When targeting WASM, this will be the *global* panic handler. #[allow(unused)] -pub fn panic_handler(info: &PanicInfo) { +pub fn panic_handler(info: &PanicHookArg) { #[cfg(feature = "debug")] { let message = if let Some(message) = diff --git a/src/kernel_tx_demo/Cargo.lock b/src/kernel_tx_demo/Cargo.lock index 99aa3e61e93a..75033ba64ae6 100644 --- a/src/kernel_tx_demo/Cargo.lock +++ b/src/kernel_tx_demo/Cargo.lock @@ -2121,6 +2121,12 @@ dependencies = [ "untrusted", ] +[[package]] +name = "rustversion" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" + [[package]] name = "rusty-fork" version = "0.3.0" @@ -2545,6 +2551,7 @@ dependencies = [ name = "tezos-smart-rollup-panic-hook" version = "0.2.2" dependencies = [ + "rustversion", "tezos-smart-rollup-core", ] diff --git a/src/riscv/Cargo.lock b/src/riscv/Cargo.lock index 871f7b08bf47..2855e9a3ddc0 100644 --- a/src/riscv/Cargo.lock +++ b/src/riscv/Cargo.lock @@ -2303,6 +2303,7 @@ dependencies = [ name = "tezos-smart-rollup-panic-hook" version = "0.2.2" dependencies = [ + "rustversion", "tezos-smart-rollup-core", ] diff --git a/src/riscv/dummy_kernel/Cargo.lock b/src/riscv/dummy_kernel/Cargo.lock index 95745ac2aa05..579e832b78c4 100644 --- a/src/riscv/dummy_kernel/Cargo.lock +++ b/src/riscv/dummy_kernel/Cargo.lock @@ -886,6 +886,12 @@ dependencies = [ "untrusted", ] +[[package]] +name = "rustversion" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" + [[package]] name = "sct" version = "0.7.1" @@ -1142,6 +1148,7 @@ dependencies = [ name = "tezos-smart-rollup-panic-hook" version = "0.2.2" dependencies = [ + "rustversion", "tezos-smart-rollup-core", ] diff --git a/src/riscv/jstz/Cargo.lock b/src/riscv/jstz/Cargo.lock index 8c6a098c087e..b939cc44bb34 100644 --- a/src/riscv/jstz/Cargo.lock +++ b/src/riscv/jstz/Cargo.lock @@ -1838,6 +1838,12 @@ dependencies = [ "untrusted", ] +[[package]] +name = "rustversion" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" + [[package]] name = "ryu" version = "1.0.18" @@ -2182,6 +2188,7 @@ dependencies = [ name = "tezos-smart-rollup-panic-hook" version = "0.2.2" dependencies = [ + "rustversion", "tezos-smart-rollup-core", ] -- GitLab