-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Panicking doesn't work on arm-unknown-linux-musleabi #65765
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
Comments
It wasn't related. |
I think I probably know what the problem is. The method Edit: Yes, that was the problem. With |
triage: P-high. Has PR. assigning to @vojtechkral |
I wonder what other platforms - if any - were affected. I was meaning to test on a Raspberry Pi with gnu libc, but ended up not having the time to do it... |
…ichton Fix libunwind build: Define __LITTLE_ENDIAN__ for LE targets If `__LITTLE_ENDIAN__` is missing, libunwind assumes big endian and reads unwinding instructions wrong on ARM EHABI. Fix rust-lang#65765 Technical background in referenced bug. I didn't run any automated tests, just built a simple panicking program using the fixed toolchain and panicking started to work. Tried with `catch_unwind()` and that seems to work now too. libunwind's log seems ok now, I can paste it if needed.
…ichton Fix libunwind build: Define __LITTLE_ENDIAN__ for LE targets If `__LITTLE_ENDIAN__` is missing, libunwind assumes big endian and reads unwinding instructions wrong on ARM EHABI. Fix rust-lang#65765 Technical background in referenced bug. I didn't run any automated tests, just built a simple panicking program using the fixed toolchain and panicking started to work. Tried with `catch_unwind()` and that seems to work now too. libunwind's log seems ok now, I can paste it if needed.
It would be cool if a fix for this (PR #65972) could be backport-nominated. Do you think it's eligible @pnkfelix @alexcrichton ? |
Seems reasonable to me! Although we're in the middle of a release right now so it's going to end up on beta in a few days anyway and I don't think we'll rebuild the stable release to include that. |
@alexcrichton Ok, thanks |
@vojtechkral do you still need some testing on other targets than arm-unknown-linux-musleabi? I can offer armv7a-unknown-linux-musleabihf (v1.38.0 and v1.39.0) |
@stefson Sure, if you want, you can test which toolchains work (in terms of panicking) on that platform :) |
Ok, please give me instructions on what to exactly go for. |
@stefson It should be enough to build & run a simple program that panics, such as: fn main() {
panic!("Hello, World!");
} If the toolchain's panicking support is broken, it may segfault or it may print an error message after the panic message is printed. |
Noticed a regression when running tests with a latest nightly on our xilinx arm machine. This seems to be caused by 5941acd - with Rust 1.38 stable toolchain, panicking works as expected.
With current nightly, when I build a simple program that just panics, I get:
With libunwind debug env vars turned on, I get:
Some of the addresses above:
0x29a20
is inside_Unwind_RaiseException
0x299cc
is (the start of)_Unwind_RaiseException
0x29f9c
is__aeabi_unwind_cpp_pr0
The text was updated successfully, but these errors were encountered: