On 30-10-2024 19:54, Randy MacLeod wrote:
On 2024-10-30 7:16 a.m., Yash.Shinde@windriver.com wrote:The second issue mentioned in the references is still open but there aren't any recent updates.
From: Yash Shinde<Yash.Shinde@windriver.com>
For some Rust crates, like building p384 in DEBUG mode, a SIGSEGV
is encountered as follows:
note: rustc unexpectedly overflowed its stack! this is a bug
note: maximum backtrace depth reached, frames may have been lost
note: we would appreciate a report athttps://github.com/rust-lang/rust
note: backtrace dumped due to SIGSEGV! resuming signal
error: could not compile `p384` (lib)
WARNING: Backtrace (BB generated script):
#1: oe_cargo_build, /home/poky/build/tmp/work/core2-32-wrs-linux/cargo/1.79.0/temp/run.do_compile.3262358, line 193
#2: cargo_do_compile, /home/poky/build/tmp/work/core2-32-wrs-linux/cargo/1.79.0/temp/run.do_compile.3262358, line 165
#3: do_compile, /home/poky/build/tmp/work/core2-32-wrs-linux/cargo/1.79.0/temp/run.do_compile.3262358, line 160
#4: main, /home/poky/build/tmp/work/core2-32-wrs-linux/cargo/1.79.0/temp/run.do_compile.3262358, line 206
Setting RUST_MIN_STACK to 8MB conditionally for DEBUG builds only handles
the stack overflow and SIGSEGV.
s/to 8MB/from 2MB to 8MB/
Best to explain what the current default value in your commit log in case the rust devs increase the limit some day.
From:
rust.git on 🦀 v1.80.0
❯ grep -C 1 DEFAULT_MIN_ST library/std/src/sys/pal/unix/thread.rs
#[cfg(not(any(target_os = "l4re", target_os = "vxworks", target_os = "espidf")))]
pub const DEFAULT_MIN_STACK_SIZE: usize = 2 * 1024 * 1024;
#[cfg(target_os = "l4re")]
pub const DEFAULT_MIN_STACK_SIZE: usize = 1024 * 1024;
#[cfg(target_os = "vxworks")]
pub const DEFAULT_MIN_STACK_SIZE: usize = 256 * 1024;
#[cfg(target_os = "espidf")]
pub const DEFAULT_MIN_STACK_SIZE: usize = 0; // 0 indicates that the stack size configured in the ESP-IDF menuconfig system should be used
References:https://github.com/esp-rs/rust/issues/214Is there an issue open for the p384 crate to reconsider their stack abuse?
https://github.com/rust-lang/rust/issues/122357
https://github.com/rust-lang/rust/pull/122847#issue-2201254359
https://github.com/rust-lang/rust/pull/122847/commits
If so, please include that link. If not, create one and link that.
Thanks Yashe,
../Randy
Also, Sundeep had reported the same issue in rust and llvm before:
https://github.com/rust-lang/rust/issues/113612 (closed as not planned)
https://github.com/llvm/llvm-project/issues/76920 (open, but again points to https://github.com/rust-lang/rust/issues/122357)
Let me know, if you want me to send a v2?
We discussed this issue and agreed that since it doesn't affect
YP AB since there are no DEBUG builds done there
and more importantly since it's really a work-around rather than a
fix, we'll continue to work with upstream p384
crate owners to resolve the issue. Forcing users to change the
stack size, even for debug builds, is not a good policy
and hopefully some of the code-generation tools that are inputs to
p384 can be adjusted to reduce stack usage.
../Randy
Regards,
Yash
-- # Randy MacLeod # Wind River Linux