================ Comment at: include/__atomic:85 @@ +84,3 @@ +{ + *__dest = __val; +} ---------------- EricWF wrote: > jroelofs wrote: > > Should these fall back on the __sync_* ones instead of just dropping the > > atomicness? It seems a little precarious to silently default to non-atomic > > implementations for these (unless this is for a single-threaded build of > > the library). > Yes and no. The only atomic operations needed in the headers are relaxed > atomic loads. AFAIK all loads are relaxed atomic loads on x86 so not using > atomic builtins isn't a big deal (its what we already do). > > The rest of the atomic operations happen within the dylib. I agree we don't > want to drop the atomicness on these unless it is a single threaded build. > > What we really should do is limit the libc++ dylib build to compilers that > provide the required atomic intrinsics (single-threaded builds not > withstanding). If the compiler is not supported then the build should fail. > For GCC and Clang the required versions would be 4.7 and 3.3 (possibly lower) > respectively. > > Since most of the stuff in `__atomic` is only used in the dylib build perhaps > it should be moved out of the shipped headers. I'll figure out how to handle > that tomorrow. > AFAIK all loads are relaxed atomic loads on x86 so not using atomic builtins > isn't a big deal
What about PPC-darwin? > What we really should do is limit the libc++ dylib build to compilers that > provide the required atomic intrinsics (single-threaded builds not > withstanding) Agreed. http://reviews.llvm.org/D10406 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits