[PATCH] D118021: [Driver] Use libatomic for 32-bit SPARC atomics support
John Paul Adrian Glaubitz via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jan 24 02:43:35 PST 2022
glaubitz 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.
----------------
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 at 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 at gcc202:~$ gcc -m32 -mv8plus atomic.c -o atomic
glaubitz at gcc202:~$
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D118021/new/
https://reviews.llvm.org/D118021
More information about the cfe-commits
mailing list