<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Dec 4, 2013 at 12:11 PM, Nico Weber <span dir="ltr"><<a href="mailto:thakis@chromium.org" target="_blank">thakis@chromium.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
<div class="im">On Tue, Dec 3, 2013 at 3:45 PM, Nick Kledzik <span dir="ltr"><<a href="mailto:kledzik@apple.com" target="_blank">kledzik@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><br>
On Dec 3, 2013, at 2:32 PM, Nico Weber <<a href="mailto:thakis@chromium.org" target="_blank">thakis@chromium.org</a>> wrote:<br>
<br>
</div><div>> Hi,<br>
><br>
> We’re evaluating using libc++ and libc++abi for Chromium/Android. While libc++abi has an unwind implementation since r192136, we noticed that there’s no support for unwinding using ARM EHABI-style unwind information, so in the last two weeks some of us (Albert Wong, Antoine Labour, Dana Jansens, and I) prototyped support for it, and we’re able to catch at least simple exceptions (you can look at our code here [1]). We believe at least some of our code is ready for upstreaming.<br>


><br>
> A few questions:<br>
> 1.) Is there interest for this upstream?<br>
> 2.) Who should review this? Howard? Nick? Anton?<br>
</div>I can.<br>
<div><br>
> 3.) r192136 didn’t add any test – how should testing of unwinding code work? Is running the exception tests in the libc++ suite enough?<br>
</div>The Darwin libunwind project (<a href="http://opensource.apple.com/source/libunwind/libunwind-35.3/" target="_blank">http://opensource.apple.com/source/libunwind/libunwind-35.3/</a>) on which this was based had some a small test suite, but it did not fit into the existing libcxxabi test suite which assumes target==host and every test is one .cpp file.<br>

</blockquote><div><br></div></div><div>Ok. I tried running at least the libc++abi test suite to make sure we don't completely break exception handling on darwin, but it looks like the buildit script doesn't build libunwind, and if I try to get it to compile (attached), the compiler complains about mach-o/dyld_priv.h – is it currently possible to run libc++abi tests for the Unwind bits of libc++abi on darwin?</div>
</div></div></div></blockquote><div><br></div><div>If I copy <a href="http://www.opensource.apple.com/source/dyld/dyld-132.13/include/mach-o/dyld_priv.h?txt">http://www.opensource.apple.com/source/dyld/dyld-132.13/include/mach-o/dyld_priv.h?txt</a> to include/mach-o/dyld_priv.h and build with the attached script, I'm able to build a libunwind.dylib that passes the tests and that fails them if I add an early return to _Unwind_RaiseException. Would adding dyld_priv.h and landing the attached patch be a good first step?</div>
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div><br>
> 4.) The unwind code doesn’t adhere to llvm style all that much – does it make sense to clang-format while it still has next to no svn history before landing other changes?<br>
</div>The Unwind part conforms to llvm style much more than the rest of libcxxabi does ;-)  I ran clang-format on the Unwind sources at one point during the port from darwin.   Feel free to use clang-format on new code.  My personal grip with clang-format is that it throws away all vertical alignment.<br>


<span><font color="#888888"><br>
<br>
-Nick<br>
<br>
<br>
</font></span></blockquote></div></div><br></div></div>
</blockquote></div><br></div></div>