This fixes the tests under std/atomics for 32-bit MIPS CPUs where the
8-byte atomic operations call into the libatomic library.
Details
- Reviewers
mclow.lists dsanders jroelofs joerg EricWF - Commits
- rGcca79b870045: Introduce a cmake module to figure out whether we need to link with libatomic.
rCXX260235: Introduce a cmake module to figure out whether we need to link with libatomic.
rL260235: Introduce a cmake module to figure out whether we need to link with libatomic.
Diff Detail
Event Timeline
Don't use LLVM's CheckAtomic cmake module. Instead, use a libcxx-specific one
that allows checking for 64-bit atomics too.
Thanks for working on it. I think it might be slightly better to explicitly test uintmax_t and uintptr_t as well. They could be larger than long long int and there are tests depending on the existance.
Do we have any test cases for arbitrary sized trivally copyable structures? That might also be needed.
FWIW, the changes in the last revision look minor to me. I doubt it affects the LGTM
Do we have any test cases for arbitrary sized trivally copyable structures? That might also be needed.
The failures in 3.8.0rc1 (and presumably still occur in the 3.8.0rc2 that was tagged last night) were all related to 64-bit atomics.
Sorry for the early pings. In case it's not clear from Daniel's comment, without this patch libc++ will be broken for 32-bit MIPS CPUs. The relevant bug report has been nominated as a release blocker but we'd like to have it committed before the next RC.