logo

overlay

My own overlay for experimentations, use with caution, no support is provided git clone https://hacktivis.me/git/overlay.git

wine-vanilla-7.20-unwind.patch (1450B)


  1. Fix build with llvm-libunwind, and also fix for non-llvm libunwind
  2. when using clang+bfd given clang doesn't have _Unwind_Find_FDE in
  3. its rtlib and expects it from llvm-libunwind.
  4. The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION).
  5. --- a/dlls/ntdll/unix/dwarf.h
  6. +++ b/dlls/ntdll/unix/dwarf.h
  7. @@ -255,5 +255,7 @@
  8. };
  9. +#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__)
  10. extern const struct dwarf_fde *_Unwind_Find_FDE (void *, struct dwarf_eh_bases *);
  11. +#endif
  12. static unsigned char dwarf_get_u1( const unsigned char **p )
  13. --- a/dlls/ntdll/unix/signal_x86_64.c
  14. +++ b/dlls/ntdll/unix/signal_x86_64.c
  15. @@ -623,5 +623,5 @@
  16. int rc;
  17. -#ifdef __APPLE__
  18. +#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__)
  19. rc = unw_getcontext( &unw_context );
  20. if (rc == UNW_ESUCCESS)
  21. @@ -746,4 +746,5 @@
  22. {
  23. struct dwarf_eh_bases bases;
  24. +#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__)
  25. const struct dwarf_fde *fde = _Unwind_Find_FDE( (void *)(context->Rip - 1), &bases );
  26. @@ -751,4 +752,5 @@
  27. return dwarf_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, fde,
  28. &bases, &dispatch->LanguageHandler, &dispatch->HandlerData );
  29. +#endif
  30. #ifdef HAVE_LIBUNWIND
  31. return libunwind_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context,