|
From: | Mathias Bauer |
Subject: | Re: Another unwinding problem on ARM |
Date: | Thu, 20 Mar 2014 10:50:34 +0100 |
User-agent: | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 |
Am 20.03.14 08:23, schrieb David Chisnall:
On 19 Mar 2014, at 22:44, Mathias Bauer <mathias_bauer@gmx.net> wrote:I'm curious about your opinion about this problem. The patch works, but the question remains: should it be fixed in the runtime or in the compiler?I think this is an LLVM bug. I'll see Renato next week and talk to him about it then. I'm a bit hesitant to add the hack to the runtime, because it's possible that we'll have absptr encodings later that actually are absptr (e.g. in statically linked parts of the code or as a result of some rtld optimisation). Given that we haven't yet had a release of LLVM with ARM EHABI support enabled by default, I'd be inclined to not officially support exceptions on ARM with anything before LLVM 3.5, and make sure that it works well in 3.5.
I agree with all of what you wrote. I only wrote this patch to point out the problem, I don't know what the compiler is expected to do on ARM. Meanwhile I've found some Android code where the runtime always assumes that the encoding is pcrel+indirect, but probably that's a hack also.
If I understood correctly, using DWARF structures for exception handling on ARM is not guided by any standard and it's just a sane choice. In that case there is no good reason to treat ARM differently in the way it uses these structures.
Regards, Mathias
[Prev in Thread] | Current Thread | [Next in Thread] |