From 840ced943e01dd551e03cb78ed51aa5c8896ba1e Mon Sep 17 00:00:00 2001 From: Oleksandr Babak Date: Wed, 1 Jul 2026 18:23:56 +0200 Subject: [PATCH] fix: add #[used] for autogenerated __INTERRUTS static --- CHANGELOG.md | 2 ++ src/generate/interrupt.rs | 3 +++ 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 24056472..01e9e5ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/). ## [Unreleased] +- Add `#[used]` to the generated interrupt vector table statics so they are not + dropped by the linker with lto - Improve documentation for RISC-V settings file - Use marker struct instead of address in `Periph` with `PeripheralSpec` trait - Add `--skip-peripherals-struct` flag to skip generating the `Peripherals` diff --git a/src/generate/interrupt.rs b/src/generate/interrupt.rs index 3888ee46..88a14769 100644 --- a/src/generate/interrupt.rs +++ b/src/generate/interrupt.rs @@ -154,6 +154,7 @@ pub fn render( #[doc(hidden)] #link_section_attr #nomangle + #[used] pub static __INTERRUPTS: [Vector; #num_of_interrupts] = [ #elements ]; @@ -228,6 +229,7 @@ pub fn render( #[doc(hidden)] #link_section_attr #nomangle + #[used] pub static __EXTERNAL_INTERRUPTS: [Vector; #num_of_interrupts] = [ #elements ]; @@ -263,6 +265,7 @@ pub fn render( #[doc(hidden)] #link_section_attr #nomangle + #[used] pub static __INTERRUPTS: [Vector; #num_of_interrupts] = [ #elements ];