Glibc may use __compare_and_swap(), but libstdc++ does not. This function is one of the problematic signatures that explicitly uses "long int" instead of _Atomic_word. This may be an area where we need to figure out how to avoid diverging from glibc. David