-
Notifications
You must be signed in to change notification settings - Fork 60
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
libunwind, c18n: Support C++ exceptions.
Implement an initial version of DWARF unwinding for Morello with the c18n runtime linker. This implementations adds two new defines: - _LIBUNWIND_SANDBOX_OTYPES: signifies that the implementation is designed around the use of otypes to protect the data inside the unwind context (since the c18n linker uses it). - _LIBUNWIND_SANDBOX_HARDENED: specifies to actually use the otypes to protect the data. By default, both are enabled in the build. These changes support: - plain aarch64 (no change expected) - purecap (no change expected) - compartmentalization ABI with our current c18n RTLD - benchmark ABI The unwinding happens as follows: (1) unw_getcontext() -- optionally call into the RTLD and get the (optionally) sealed executive stack using otypes. (2) stepWithDwarf() -- optionally unseal the executive stack locally when needed and get the next frame information. Then, if supported, reseal the executive stack and all the registers that are not sealed or sentries.
- Loading branch information
Showing
17 changed files
with
615 additions
and
86 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.