[libunwind] [libunwind][Haiku] Fix signal frame unwinding (PR #135367)
Trung Nguyen via cfe-commits
cfe-commits at lists.llvm.org
Sat Apr 12 20:40:53 PDT 2025
================
@@ -3032,6 +2983,162 @@ int UnwindCursor<A, R>::stepThroughSigReturn(Registers_s390x &) {
#endif // defined(_LIBUNWIND_CHECK_LINUX_SIGRETURN) &&
// defined(_LIBUNWIND_TARGET_S390X)
+#if defined(_LIBUNWIND_CHECK_HAIKU_SIGRETURN)
+
+#if defined(B_HAIKU_32_BIT)
+typedef Elf32_Sym elf_sym;
+#define ELF_ST_TYPE ELF32_ST_TYPE
+#elif defined(B_HAIKU_64_BIT)
+typedef Elf64_Sym elf_sym;
+#define ELF_ST_TYPE ELF64_ST_TYPE
+#endif
+
+// Private syscall declared as a weak symbol to prevent ABI breaks.
----------------
trungnt2910 wrote:
> If this is getting upstreamed we should really export this symbol not as a syscall so we can avoid ABI breaks.
Just like in the [GDB port](https://www.haiku-os.org/blog/trungnt2910/2024-07-28_gsoc_2024_debugging_progress_2/#private-syscalls), if the syscall disappears the function will silently fail, and other normal unwinding can still happen as usual.
https://github.com/llvm/llvm-project/pull/135367
More information about the cfe-commits
mailing list