Lots of archs define most or all of their atomics except a_cas in terms of a_cas. The attached atomic.h is a proposed replacement for arch-specific atomic.h that would live in src/internal. The arch atomic.h files would be replaced with atomic_arch.h, which could opt to define nothing but a_cas, or could define more primitives itself if it can do so more efficiently. The second attachment, atomic_generic.h, is an implementation of the atomics (and other non-atomic ops we've traditionally had in atomic.h) using GNU C builtins. This file can be used as-is for any new archs that satisfy the following conditions: - They're not supported by compilers too old to have the __sync_* builtins. - They don't need runtime switching/detection of atomic implementations. - GCC doesn't generate pathologically bad code for the builtins. Even if some of these conditions aren't met, atomic_generic.h may be useful when porting to help determine the right way to implement atomics by watching what the compiler does, and it may be suitable for early porting stages before a proper atomic.h is written. I'm not sure if I'll try to integrate this stuff right away or as part of the bits deduplication and build system overhaul that's been coming-soon for a long time. Comments welcome. Rich