http://bugs.winehq.org/show_bug.cgi?id=16666
Summary: wine segfaults on launch Product: Wine Version: 1.1.11 Platform: PC OS/Version: OpenBSD Status: NEW Keywords: patch, source Severity: critical Priority: P2 Component: build-env AssignedTo: wine-bugs@winehq.org ReportedBy: austinenglish@gmail.com
Created an attachment (id=18290) --> (http://bugs.winehq.org/attachment.cgi?id=18290) core dump
Now for the biggest bug :-)
Wine segfaults on launch of any program. Even 'wine --version' crashes.
I've got this patch in place (from openbsd's port): diff --git a/loader/pthread.c b/loader/pthread.c index 4c0c892..e7f6479 100644 --- a/loader/pthread.c +++ b/loader/pthread.c @@ -96,6 +96,12 @@ static void init_thread( struct wine_pthread_thread_info *info ) /* if base is too large assume it's the top of the stack instead */ if ((char *)info->stack_base > &dummy) info->stack_base = (char *)info->stack_base - info->stack_size; +#elif defined(__OpenBSD__) + stack_t stack; + if (pthread_stackseg_np(pthread_self(), &stack) != 0) + abort (); + info->stack_base = (char *)stack.ss_sp - stack.ss_size; + info->stack_size = stack.ss_size; #else /* assume that the stack allocation is page aligned */ char dummy; @@ -163,6 +169,8 @@ static void init_current_teb( struct wine_pthread_thread_info *info ) info->pid = getpid(); #ifdef __sun info->tid = pthread_self(); /* this should return the lwp id on solaris */ +#elif defined(__OpenBSD__) + info->tid = pthread_self(); #elif defined(__APPLE__) info->tid = mach_thread_self(); #elif defined(__FreeBSD__)
Though, it still segfaults without it.
wine-pthread.core attached