musl/arch/powerpc
Rich Felker de7e99c585 make pointers used in robust list volatile
when manipulating the robust list, the order of stores matters,
because the code may be asynchronously interrupted by a fatal signal
and the kernel will then access the robust list in what is essentially
an async-signal context.

previously, aliasing considerations made it seem unlikely that a
compiler could reorder the stores, but proving that they could not be
reordered incorrectly would have been extremely difficult. instead
I've opted to make all the pointers used as part of the robust list,
including those in the robust list head and in the individual mutexes,
volatile.

in addition, the format of the robust list has been changed to point
back to the head at the end, rather than ending with a null pointer.
this is to match the documented kernel robust list ABI. the null
pointer, which was previously used, only worked because faults during
access terminate the robust list processing.
2014-08-17 00:46:26 -04:00
..
bits make pointers used in robust list volatile 2014-08-17 00:46:26 -04:00
atomic.h clean up unused and inconsistent atomics in arch dirs 2014-07-27 21:50:24 -04:00
crt_arch.h new mostly-C crt1 implementation 2013-07-26 01:49:14 -04:00
pthread_arch.h workaround clang deficiency affecting thread pointer access on powerpc 2013-12-02 02:45:10 -05:00
reloc.h refactor to remove arch-specific relocation code from dynamic linker 2014-06-18 02:44:02 -04:00
syscall_arch.h make socketcall types common as they are same for all architectures 2014-04-17 14:53:27 -04:00