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)
Dec 21 2023, 7:13 PM
Unknown Object (File)
Nov 17 2023, 10:09 PM
Unknown Object (File)
Aug 31 2023, 1:32 AM
Unknown Object (File)
Aug 26 2023, 12:22 PM
Unknown Object (File)
Jul 15 2023, 4:38 PM
Unknown Object (File)
Jun 26 2023, 10:57 PM
Unknown Object (File)
Dec 16 2022, 8:12 AM
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