I'm having trouble with compiling the following code snippet: #include <atomic> #include <cstdint> struct sixteen { uint64_t x = 1; int64_t y = -1; }; std::atomic<sixteen> x; int main() { auto v = x.load(std::memory_order_relaxed); return std::atomic_is_lock_free(&x); } I've attempted to compile this as follows: c++ -std=c++17 -stdlib=libc++ test.cpp /tmp/test-3fe722.o: In function `main': test.cpp:(.text+0x34): undefined reference to `__atomic_load' test.cpp:(.text+0x86): undefined reference to `__atomic_is_lock_free' c++: error: linker command failed with exit code 1 (use -v to see invocation) The same snippet compiles fine with GCC 8 and -latomic. This issue appears to be related to bug #233725 and bug #220822.
*** This bug has been marked as a duplicate of bug 230888 ***