Rewrite vlc_atomic_* using the new atomic operations
This way, the official atomic functions will be used when available, rather than VLC's own implementation. This commit also enables proper atomic operations on some platforms or with some toolchains. __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 is not defined on some platforms such as ARM Linux, nor by other compilers than GCC such as LLVM/clang. Then atomic operations wrongly fell back to the lame mutex-based implementation. This will break support for some old compilers and old or irrelevant instruction set architectures. They would need to provide replacement for the Intel-originated __sync_* builtin functions.
Showing with 25 additions and 213 deletions