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)
Fri, Nov 21, 2:49 AM
Unknown Object (File)
Fri, Nov 21, 2:25 AM
Unknown Object (File)
Fri, Nov 21, 2:18 AM
Unknown Object (File)
Fri, Nov 21, 2:14 AM
Unknown Object (File)
Tue, Nov 4, 7:33 AM
Unknown Object (File)
Sat, Nov 1, 8:01 AM
Unknown Object (File)
Oct 21 2025, 3:54 PM
Unknown Object (File)
Oct 21 2025, 3:54 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