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

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 15573
Build 15610: arc lint + arc unit