libwine: Do not restrict base address of main thread on 64 bit mac os.
Signed-off-by: Ken Thomases <ken@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
11ab9ff7b3
commit
9fd13a1a5e
@ -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 )
|
|||||||
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 )
|
|||||||
|
|
||||||
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 )
|
|||||||
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 ))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user