We mostly depend on the compilers and/or libc to provide atomic primitives. We have a custom assembler file, which does the same, but only for Intel, and only for 32-bit platforms. It's not well maintained, and causes more confusion than good. I'm suggesting we eliminate this, and going forward, require that the compiler and/or libc provides the atomic functions that we rely on.
What does this mean? It means we require one of the following
- GCC v4.1.2 or later
- Intel CC v9 (or any other version that's compatible with GCC 4.1.2 or later)
- Fairly new builds of clang / llvm (it is compatible with gcc)
- Solaris libc / SunPRO compilers.