[Bug 49301] New: pthread_exit hangs on unwind through call_thread_exit_func on arm64

WineHQ Bugzilla wine-bugs at winehq.org
Mon Jun 1 05:10:22 CDT 2020


https://bugs.winehq.org/show_bug.cgi?id=49301

            Bug ID: 49301
           Summary: pthread_exit hangs on unwind through
                    call_thread_exit_func on arm64
           Product: Wine
           Version: unspecified
          Hardware: aarch64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ntdll
          Assignee: wine-bugs at winehq.org
          Reporter: stefan at codeweavers.com
      Distribution: ---

Created attachment 67309
  --> https://bugs.winehq.org/attachment.cgi?id=67309
Workaround

My arm64 Wine build spins in services.exe after starting up anything. The
backtrace points into pthread_exit() - see attached file backtrace.txt.

I placed pthread_exit calls throughout the thread creation / shutdown code and
it works up to the point where signal_exit_thread() calls
call_thread_exit_func(). After call_thread_exit_func() passes control to the C
function exit_thread() pthread_exit() will hang.

I previously had this problem only in a gcc wine build (with 8fb8cc03
reverted), but recently, presumably after an update to clang-10, the problem
also happens when building Wine with clang. The attached backtrace is from a
build with clang 10.

Calling exit_thread() directly from signal_exit_thread() without going through
call_thread_exit_func works around the problem. See attached file noasm.diff

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list