-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
i686-musl + catch_unwind = fatal runtime error: failed to initiate panic, error 5 #35599
Comments
cc @vadimcn, maybe related to the changes in the personality? |
Sure it's possible :) |
Not sure, I haven't really used |
Oh if it never worked then I wonder if libunwind that we're using is just busted? |
I would place my bet on unwind tables not being registered properly. How hard is it to set up a musl build? |
For me it was just:
|
Okay, I've managed to repro this. |
Ok got a chance to dig a bit more into this. Some things I've learned:
So basically it looks like everything is working except the literal unwind step is either reading bad or wrong values. I haven't been able to get much further yet. |
Found the problem! The LLVM port of libunwind has historically understood that the dwarf register numbers for ebp and esp were 4 and 5, respectively. Recent changes, however (llvm-mirror/libunwind@85e3961 and llvm-mirror/libunwind@99e90f4) have noticed that there's some conflating of values going on here. More info in https://reviews.llvm.org/D22508 as well, but the tl;dr; is these values need to be swapped and then everything works. |
travis: Add i586 linux and i686 musl This commit expands the existing x86_64-musl entry in the Travis matrix to also build/test i586-unknown-linux-gnu and i686-unknown-linux-musl. cc rust-lang#38531 Closes rust-lang#35599 Closes rust-lang#39053
STR
Meta
cc @alexcrichton
The text was updated successfully, but these errors were encountered: