ro added inline comments.
================ Comment at: clang/lib/Driver/ToolChains/Solaris.cpp:135 } + // LLVM lacks atomics support on 32-bit SPARC, so forcibly link with + // libatomic as a workaround. ---------------- glaubitz wrote: > joerg wrote: > > This comment is misleading. It's not so much that LLVM doesn't support > > them, but that SPARCv8 doesn't have the necessary hardware support. The v8+ > > support is incomplete, which is a related problem though. > As far as I know, 64-bit atomics are supported if you enable V8+ in GCC - > without linking against `libatomic`: > > ``` > glaubitz@gcc202:~$ cat atomic.c > #include <stdint.h> > > int main() > { > int64_t x = 0, y = 1; > y = __sync_val_compare_and_swap(&x, x, y); > return 0; > } > glaubitz@gcc202:~$ gcc -m32 -mv8plus atomic.c -o atomic > glaubitz@gcc202:~$ > ``` I know, that's why I referred to my patch to default `clang` on Solaris/sparc to V8+. I'll update the comment. I'd tried to actually fix the underlying issue (`clang` not emitting `casx` with `-m32 -mcpu=v9`), but ran into internal errors and areas of LLVM I know nothing about. I might post a WIP patch for reference since there are several issues there. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D118021/new/ https://reviews.llvm.org/D118021 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits