Commit 9fd13a1a authored by Michael Müller's avatar Michael Müller Committed by Alexandre Julliard

libwine: Do not restrict base address of main thread on 64 bit mac os.

parent 11ab9ff7
...@@ -709,6 +709,7 @@ struct apple_stack_info ...@@ -709,6 +709,7 @@ struct apple_stack_info
* Callback for wine_mmap_enum_reserved_areas to allocate space for * Callback for wine_mmap_enum_reserved_areas to allocate space for
* the secondary thread's stack. * the secondary thread's stack.
*/ */
#ifndef _WIN64
static int apple_alloc_thread_stack( void *base, size_t size, void *arg ) static int apple_alloc_thread_stack( void *base, size_t size, void *arg )
{ {
struct apple_stack_info *info = arg; struct apple_stack_info *info = arg;
...@@ -725,6 +726,7 @@ static int apple_alloc_thread_stack( void *base, size_t size, void *arg ) ...@@ -725,6 +726,7 @@ static int apple_alloc_thread_stack( void *base, size_t size, void *arg )
info->desired_size, PROT_READ|PROT_WRITE, MAP_FIXED ); info->desired_size, PROT_READ|PROT_WRITE, MAP_FIXED );
return (info->stack != (void *)-1); return (info->stack != (void *)-1);
} }
#endif
/*********************************************************************** /***********************************************************************
* apple_create_wine_thread * apple_create_wine_thread
...@@ -742,6 +744,7 @@ static void apple_create_wine_thread( void *init_func ) ...@@ -742,6 +744,7 @@ static void apple_create_wine_thread( void *init_func )
if (!pthread_attr_init( &attr )) if (!pthread_attr_init( &attr ))
{ {
#ifndef _WIN64
struct apple_stack_info info; struct apple_stack_info info;
/* Try to put the new thread's stack in the reserved area. If this /* Try to put the new thread's stack in the reserved area. If this
...@@ -753,6 +756,7 @@ static void apple_create_wine_thread( void *init_func ) ...@@ -753,6 +756,7 @@ static void apple_create_wine_thread( void *init_func )
wine_mmap_remove_reserved_area( info.stack, info.desired_size, 0 ); wine_mmap_remove_reserved_area( info.stack, info.desired_size, 0 );
pthread_attr_setstackaddr( &attr, (char*)info.stack + info.desired_size ); pthread_attr_setstackaddr( &attr, (char*)info.stack + info.desired_size );
} }
#endif
if (!pthread_attr_setdetachstate( &attr, PTHREAD_CREATE_JOINABLE ) && if (!pthread_attr_setdetachstate( &attr, PTHREAD_CREATE_JOINABLE ) &&
!pthread_create( &thread, &attr, init_func, NULL )) !pthread_create( &thread, &attr, init_func, NULL ))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment