These are just regular local variables that are not accessed in any funny ways, not even though a pointer. There's absolutely no reason to declare them volatile. It only ends up hurting the quality of the generated machine code.
If anything, it would make sense to decalre sigsp as *pointing* to volatile memory (volatile void *sigsp), but evidently that's not needed either. Signed-off-by: Sergey Bugaev <buga...@gmail.com> --- hurd/trampoline.c | 2 +- sysdeps/mach/hurd/i386/trampoline.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hurd/trampoline.c b/hurd/trampoline.c index 5bd8dec9..1447b13f 100644 --- a/hurd/trampoline.c +++ b/hurd/trampoline.c @@ -29,7 +29,7 @@ struct sigcontext * _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action, __sighandler_t handler, int signo, struct hurd_signal_detail *detail, - volatile int rpc_wait, + int rpc_wait, struct machine_thread_all_state *state) { #error "Need to write sysdeps/mach/hurd/MACHINE/trampoline.c" diff --git a/sysdeps/mach/hurd/i386/trampoline.c b/sysdeps/mach/hurd/i386/trampoline.c index ab67fb9c..9cd60b9c 100644 --- a/sysdeps/mach/hurd/i386/trampoline.c +++ b/sysdeps/mach/hurd/i386/trampoline.c @@ -83,13 +83,13 @@ struct sigcontext * _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action, __sighandler_t handler, int signo, struct hurd_signal_detail *detail, - volatile int rpc_wait, + int rpc_wait, struct machine_thread_all_state *state) { void trampoline (void); void rpc_wait_trampoline (void); void firewall (void); - void *volatile sigsp; + void *sigsp; struct sigcontext *scp; struct { -- 2.39.2