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)
Aug 18 2025, 10:04 AM
Unknown Object (File)
Aug 15 2025, 8:32 AM
Unknown Object (File)
Aug 4 2025, 3:47 AM
Unknown Object (File)
Aug 3 2025, 10:39 PM
Unknown Object (File)
Aug 2 2025, 11:31 PM
Unknown Object (File)
Jul 22 2025, 6:58 AM
Unknown Object (File)
Jun 28 2025, 7:15 AM
Unknown Object (File)
Jun 25 2025, 9:30 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