-
Bug
-
Resolution: Fixed
-
P3
-
17, 21, 22
-
b25
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8325193 | 21.0.3 | Aleksey Shipilev | P3 | Resolved | Fixed | b02 |
https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html
The crucial difference between these two families of built-ins is that __atomic* 64-bit CAS is guaranteed to be supported ("The ‘__atomic’ builtins can be used with any integral scalar or pointer type that is 1, 2, 4, or 8 bytes in length"), whereas __sync* 64-bit CAS can be unimplemented. This is important for making sure
Upstream reports suggest PPC32 is one of the platforms that does not have __sync_val_compare_and_swap_8 implemented. My own testing shows these platforms have the __sync_val_compare_and_swap_8 unimplemented:
zero-fastdebug-mipsel-linux-gnu-10
zero-fastdebug-m68k-linux-gnu-10
zero-fastdebug-powerpc-linux-gnu-10
zero-fastdebug-sh4-linux-gnu-10
- backported by
-
JDK-8325193 Zero: Use __atomic built-ins for atomic RMW operations
-
- Resolved
-
- blocks
-
JDK-8318776 Require supports_cx8 to always be true
-
- Resolved
-
-
JDK-8316961 Fallback implementations for 64-bit Atomic::{add,xchg} on 32-bit platforms
-
- Resolved
-
- duplicates
-
JDK-8320050 Zero: Build failures due to duplicate definition of __sync_val_compare_and_swap_8
-
- Closed
-
- relates to
-
JDK-8316961 Fallback implementations for 64-bit Atomic::{add,xchg} on 32-bit platforms
-
- Resolved
-
- links to
-
Commit openjdk/jdk21u-dev/c6ebfdfe
-
Commit openjdk/jdk/020c9007
-
Review openjdk/jdk21u-dev/227
-
Review openjdk/jdk/16654