diff --git a/portable/ThirdParty/GCC/Posix/port.c b/portable/ThirdParty/GCC/Posix/port.c index 8ec8193971b..24dd89f4539 100644 --- a/portable/ThirdParty/GCC/Posix/port.c +++ b/portable/ThirdParty/GCC/Posix/port.c @@ -148,10 +148,14 @@ StackType_t * pxPortInitialiseStack( StackType_t * pxTopOfStack, */ thread = ( Thread_t * ) ( pxTopOfStack + 1 ) - 1; pxTopOfStack = ( StackType_t * ) thread - 1; + + #ifdef __APPLE__ + pxEndOfStack = ( StackType_t *) mach_vm_round_page( pxEndOfStack ); + #endif + ulStackSize = ( size_t ) ( pxTopOfStack + 1 - pxEndOfStack ) * sizeof( *pxTopOfStack ); #ifdef __APPLE__ - pxEndOfStack = mach_vm_round_page( pxEndOfStack ); ulStackSize = mach_vm_trunc_page( ulStackSize ); #endif