[LLVMdev] ARM unwinding bug

Mason Wheeler masonwheeler at yahoo.com
Wed Jul 29 14:23:06 PDT 2015


> From: Renato Golin <renato.golin at linaro.org>

>
> On 29 July 2015 at 20:14, Mason Wheeler <masonwheeler at yahoo.com> wrote:
> > Well, yes, an unwinding expert *was* who I was really hoping to hear from.  But
> > if I understand correctly, you're saying that rather than seeing the values Ben
> > reported, the sample code crashes on you on both compilers?  I do notice that
> > you're using different versions of both compilers than he was, which may or may
> > not be relevant.  What hardware was this on?  Ben said he's been using a
> > Raspberry Pi, not sure which model.
> 
> Yes, so, that's yet another missing info. Which ARM? RaspberyPi,
> although popular, is a very old and somewhat deprecated architecture
> (ARMv6). Most people work on ARMv7 and ARMv8 nowadays, so if you can't
> reproduce the bugs on those, you'll have a hard time finding people to
> help you.


I asked Ben, and he says he's using the Raspberry Pi 2 (ARM 7) model.

> Also, Clang 3.6 is not that old, but we don't really provide
> maintenance to non-trunk versions of the compiler, so if you want a
> bug looked into, you need to reproduce it in trunk. If you can't, than
> the problem is fixed, and you either wait for the new release to come
> out, or build your own from trunk.

OK, we'll try that.

> > In the meantime, can you provide details of the crash you're observing?
> > Just saying "it crashes on FooBarBaz," which is not even mentioned anywhere in
> > the source of the test case, doesn't provide much useful information.  At the
> > risk of trotting out one of the oldest cliches in the book, this works (or at
> > least breaks as described) on our end! :P
>
> That's the catch.
> 
> I know that unw_step() calls _Unwind_VRS_Pop() while loading the stack
> frame, because you need the context of that frame, so for me that
> looked like a good thing to say. If you report a bug in the unwinder,
> I expect you to either understand a bit about it (like me), or to have

> someone at your disposal that do. 


That would be Ben. :)


> If out of those 20 million developers, not a single one can help you,> then maybe it's not that important for them...


Meh. It's more of a "if you build it, they will come" thing.  We haven't
finished building it yet, but when we do, they *will* come! :D

> > Forgive my saying so, but that seems like a bizarre attitude, as you've
> > already admitted that you don't know much about unwinding.  Isn't that the
> > entire point of specialization?
>
> I have worked with unwinding some years ago, but the knowledge is very
> specific and I forgot most of it. That's why I still have a look
> around, but I'm no specialist, by far. Logan and Anton are the guys
> you're looking for.


Awesome.  I hope one of them sees this then. :)

> Would you rather I didn't look at it, or replied to your email, if I'm
> not the specialist? (this is a genuine question)


Genuine answer: If you do know something, I'd rather you reply with that
and contribute what you can, even if you don't know everything.  Every
little contribution can be helpful.

> There is no such thing as free lunch. But if you want to share your
> lunch with me, and if I would like to have half of your sandwich, I'd
> be glad to give half of mine to you.
>
> Makes sense?


Makes perfect sense to me.  Share with me a fix for this bug, and in return
I'll happily share with you my ARM32 CLR, and the Android support, once we
get them working. :D

Mason



More information about the llvm-dev mailing list