From: Samuel Thibault Date: Sat, 27 May 2023 22:29:14 +0000 (+0200) Subject: hurd: Fix setting up signal thread stack alignment X-Git-Tag: glibc-2.38~186 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9ffdcf5b79acacffc35506812ca8d99ea1dde618;p=thirdparty%2Fglibc.git hurd: Fix setting up signal thread stack alignment x86_64 needs special alignment when calling functions, so we have to use MACHINE_THREAD_STATE_SETUP_CALL for the signal thread when forking. --- diff --git a/sysdeps/mach/hurd/_Fork.c b/sysdeps/mach/hurd/_Fork.c index 77cd29171e3..9981699a5a5 100644 --- a/sysdeps/mach/hurd/_Fork.c +++ b/sysdeps/mach/hurd/_Fork.c @@ -481,13 +481,11 @@ retry: MACHINE_THREAD_STATE_FLAVOR, (natural_t *) &state, &statecount)) LOSE; -#ifdef STACK_GROWTH_UP - state.SP = __hurd_sigthread_stack_base; -#else - state.SP = __hurd_sigthread_stack_end; -#endif - MACHINE_THREAD_STATE_SET_PC (&state, - (unsigned long int) _hurd_msgport_receive); + + MACHINE_THREAD_STATE_SETUP_CALL(&state, + __hurd_sigthread_stack_base, + __hurd_sigthread_stack_end - __hurd_sigthread_stack_base, + (uintptr_t) _hurd_msgport_receive); /* Do special signal thread setup for TLS if needed. */ if (err = _hurd_tls_fork (sigthread, _hurd_msgport_thread, &state))