Page MenuHomeFreeBSD

Add support for MIPS to LLVM's libunwind.
ClosedPublic

Authored by jhb on Mar 15 2018, 12:10 AM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Apr 16, 9:20 PM
Unknown Object (File)
Wed, Apr 15, 4:15 PM
Unknown Object (File)
Tue, Apr 14, 9:27 PM
Unknown Object (File)
Fri, Apr 10, 7:05 PM
Unknown Object (File)
Sun, Apr 5, 9:21 PM
Unknown Object (File)
Mon, Mar 30, 10:59 AM
Unknown Object (File)
Sat, Mar 28, 9:42 AM
Unknown Object (File)
Fri, Mar 27, 11:18 PM
Subscribers

Details

Summary

This is originally based on a patch from David Chisnall for soft-float
N64 but has since been updated to support O32, N32, and hard-float ABIs.
The soft-float O32, N32, and N64 support has been committed upstream.
The hard-float changes are still in review upstream.

Enable LLVM_LIBUNWIND on mips when building with a suitable (C+11-capable)
toolchain. This has been tested with external GCC for all ABIs and
O32 and N64 with clang.

Test Plan
  • Upstream has run libunwind's tests on the committed changes. I wrote a simple C++ program that invokes _Unwind_Backtrace and throws a few exceptions and verified that worked when using this unwinder. Modern GDB (which depends on working C++ exceptions) also works fine using this unwinder.
  • Given that the hard-float change is still in review, we might want to wait for that to finish (and that was my original plan). However, I also have some desire to get this out of my tree where it's been lingering for months.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable