-
Notifications
You must be signed in to change notification settings - Fork 253
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Disable libunwind for NuttX #688
Conversation
NuttX is a resource-constrained system, libunwind is too large for it in terms of both code size and memory usage. So we disable libunwind for NuttX. Signed-off-by: Huang Qi <[email protected]>
@no1wudi why are you building with unwinding enabled? |
@workingjubilee Previously, I have been using the RISC-V platform for development work related to Rust and NuttX. Recently, when I started testing on the ARM platform, I discovered that the ARM platform references _Unwind_GetIP, which is currently not supported in the NuttX environment. Considering that the size of the Rust code could be reduced by approximately 20% after disabling libunwind, we are currently considering turning it off for the time being. |
@no1wudi it's... not supported? ...but this is Arm we're talking about...? |
For ARM platform in NuttX, we are using unwind support from GCC ( This branch works, implement _Unwind_GetIP on top of _Unwind_VRS_Get: backtrace-rs/src/backtrace/libunwind.rs Lines 214 to 291 in f8cc6ac
However, I have observed that compared to disabling libunwind, the code size increases by approximately 20%. Considering that as an embedded system, we typically analyze call stack information and the like on a PC, it is therefore advisable to disable it in order to conserve code space. |
Isn't this what |
Get it, thank you ! I originally thought that setting |
NuttX is a resource-constrained system, libunwind is too large for it in terms of both code size and memory usage. So we disable libunwind for NuttX.