From a1fa478b1cd8af13c849939558c57427ae0a8761 Mon Sep 17 00:00:00 2001 From: Kyle Evans Date: Tue, 21 Jan 2020 22:02:53 +0000 Subject: [PATCH] posix_spawn: mark error as volatile In the case of an error, the RFSPAWN'd thread will write back to psa->error with the correct exit code. Mark this as volatile as the return value is being actively dorked up for erroneous exits on !x86. This fixes the following tests, tested on aarch64 (only under qemu, at the moment): - posix_spawn/spawn_test:t_spawn_missing - posix_spawn/spawn_test:t_spawn_nonexec - posix_spawn/spawn_test:t_spawn_zero Reported by: mikael MFC after: 3 days --- lib/libc/gen/posix_spawn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libc/gen/posix_spawn.c b/lib/libc/gen/posix_spawn.c index fb83bbebe85c..02b13dc190e5 100644 --- a/lib/libc/gen/posix_spawn.c +++ b/lib/libc/gen/posix_spawn.c @@ -201,7 +201,7 @@ struct posix_spawn_args { char * const * argv; char * const * envp; int use_env_path; - int error; + volatile int error; }; #if defined(__i386__) || defined(__amd64__)