Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upi686-musl + catch_unwind = fatal runtime error: failed to initiate panic, error 5 #35599
Comments
This comment has been minimized.
This comment has been minimized.
|
cc @vadimcn, maybe related to the changes in the personality? |
This comment has been minimized.
This comment has been minimized.
|
Sure it's possible :) |
This comment has been minimized.
This comment has been minimized.
|
Not sure, I haven't really used |
This comment has been minimized.
This comment has been minimized.
|
Oh if it never worked then I wonder if libunwind that we're using is just busted? |
This comment has been minimized.
This comment has been minimized.
|
I would place my bet on unwind tables not being registered properly. How hard is it to set up a musl build? |
This comment has been minimized.
This comment has been minimized.
|
For me it was just:
|
This comment has been minimized.
This comment has been minimized.
|
Okay, I've managed to repro this. |
This comment has been minimized.
This comment has been minimized.
|
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. |
This comment has been minimized.
This comment has been minimized.
|
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. |
japaric commentedAug 11, 2016
STR
Meta
cc @alexcrichton