Skip to content

Commit a968fae

Browse files
authored
Merge pull request #6033 from hjelmn/6014_fix
opal/asm: work around possible gcc compiler bug
2 parents 064a778 + 30119ee commit a968fae

File tree

1 file changed

+9
-0
lines changed
  • opal/include/opal/sys/gcc_builtin

1 file changed

+9
-0
lines changed

opal/include/opal/sys/gcc_builtin/atomic.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
* reserved.
1616
* Copyright (c) 2016-2017 Research Organization for Information Science
1717
* and Technology (RIST). All rights reserved.
18+
* Copyright (c) 2018 Triad National Security, LLC. All rights
19+
* reserved.
1820
* $COPYRIGHT$
1921
*
2022
* Additional copyrights may follow
@@ -57,7 +59,14 @@ static inline void opal_atomic_mb(void)
5759

5860
static inline void opal_atomic_rmb(void)
5961
{
62+
#if OPAL_ASSEMBLY_ARCH == OPAL_X86_64
63+
/* work around a bug in older gcc versions where ACQUIRE seems to get
64+
* treated as a no-op instead of being equivalent to
65+
* __asm__ __volatile__("": : :"memory") */
66+
__atomic_thread_fence (__ATOMIC_SEQ_CST);
67+
#else
6068
__atomic_thread_fence (__ATOMIC_ACQUIRE);
69+
#endif
6170
}
6271

6372
static inline void opal_atomic_wmb(void)

0 commit comments

Comments
 (0)