================
@@ -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
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to