<div dir="ltr">Hello cfe-commits (and Nick),<div><br></div><div>Last year, there were some small attempts to upstream our EHABI exception handling implementation but they fizzled out. We've picked up work again and would like to resume upstreaming. Here is a link to the diff (newly rebased on top of Tip-of-tree Libc++abi and libc++):</div>
<div><br></div><div> <a href="https://github.com/awong-dev/ndk/compare/upstream-llvm-ndkpatched...master#commit_comments_bucket">https://github.com/awong-dev/ndk/compare/upstream-llvm-ndkpatched...master#commit_comments_bucket</a></div>
<div><br></div><div>To see the relevant diffs, click on "Files changed" and search for "libc++abi."</div><div><br></div><div>Unlike last time, this implementation now passes all the libc++abi and almost all libc++ tests in debug mode for Android. There are still a few pieces missing (Floating point register support should be complete next week and force unwind is not implemented) however what's there should be enough to provide exception handling support without libgcc.</div>
<div><br></div><div>Our current plan is to try and upstream in the following chunks:</div><div> (1) Changes to AddressSpace.hpp needed to find the exidx section.</div><div> (2) Implementations for _Unwind_VRS_Get/Set, unw_getcontext, and then</div>
<div> stubs for the other _Unwind_VRS_* functions (basically get the non-floating-point</div><div> virtual register set working).</div><div> (3) Implementations of __aeabi_unwind_cpp_<span class="">pr{0,1,2} including the ARM unwinder</span></div>
<div><span class=""> bytecode interpreter. (most EHABI exception support done here)</span></div><div><span class=""> (4) Changes to the DWARF personality routine needed to support ARM.</span></div><div><span class=""><br>
</span></div><div>Does that sound like a good plan? Would it be easier if we merged some of these chunks?</div>
<div><div><br></div><div>Thanks,</div><div>Albert</div></div></div>