diff options
author | David Edelsohn <dje@gcc.gnu.org> | 2015-05-21 13:18:25 -0400 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2015-05-21 13:18:25 -0400 |
commit | e3592e196a92f72d6195023b24f4d1aab9c64242 (patch) | |
tree | e206a4c4accbe87c6e55763c3910ca85c1d50648 /libstdc++-v3 | |
parent | f3da53751662e7a4e2fd6a1c119565518f1e2c63 (diff) | |
download | gcc-e3592e196a92f72d6195023b24f4d1aab9c64242.zip gcc-e3592e196a92f72d6195023b24f4d1aab9c64242.tar.gz gcc-e3592e196a92f72d6195023b24f4d1aab9c64242.tar.bz2 |
re PR target/66224 (PowerPC _GLIBCXX_READ_MEM_BARRIER too weak)
PR target/66224
* config/cpu/powerpc/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER):
Don't use isync. Use lwsync if available.
* configure.host (atomic_word_dir) [aix[56789]*]: Delete to use
powerpc cpu definition.
From-SVN: r223496
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 10 | ||||
-rw-r--r-- | libstdc++-v3/config/cpu/powerpc/atomic_word.h | 3 | ||||
-rw-r--r-- | libstdc++-v3/configure.host | 1 |
3 files changed, 11 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 3b44f54..6f2c465 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,9 +1,17 @@ +2015-05-21 David Edelsohn <dje.gcc@gmail.com> + + PR target/66224 + * config/cpu/powerpc/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER): + Don't use isync. Use lwsync if available. + * configure.host (atomic_word_dir) [aix[56789]*]: Delete to use + powerpc cpu definition. + 2015-05-21 Jason Merrill <jason@redhat.com> * libsupc++/del_opv.cc: Suppress -Wsized-deallocation. * libsupc++/del_op.cc: Likewise. -2015-05-20 François Dumont <fdumont@gcc.gnu.org> +2015-05-20 François Dumont fdumont@gcc.gnu.org> * include/debug/formatter.h (_GLIBCXX_TYPEID): New macro to simplify usage of typeid. diff --git a/libstdc++-v3/config/cpu/powerpc/atomic_word.h b/libstdc++-v3/config/cpu/powerpc/atomic_word.h index e044ccd..1ceb02c 100644 --- a/libstdc++-v3/config/cpu/powerpc/atomic_word.h +++ b/libstdc++-v3/config/cpu/powerpc/atomic_word.h @@ -27,10 +27,11 @@ typedef int _Atomic_word; -#define _GLIBCXX_READ_MEM_BARRIER __asm __volatile ("isync":::"memory") #ifdef __NO_LWSYNC__ +#define _GLIBCXX_READ_MEM_BARRIER __asm __volatile ("sync":::"memory") #define _GLIBCXX_WRITE_MEM_BARRIER __asm __volatile ("sync":::"memory") #else +#define _GLIBCXX_READ_MEM_BARRIER __asm __volatile ("lwsync":::"memory") #define _GLIBCXX_WRITE_MEM_BARRIER __asm __volatile ("lwsync":::"memory") #endif diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host index 465a40a..8892f31 100644 --- a/libstdc++-v3/configure.host +++ b/libstdc++-v3/configure.host @@ -219,7 +219,6 @@ case "${host_os}" in # Newer versions of AIX only support PowerPC architecture, so use # atomic instructions directly. os_include_dir="os/aix" - atomic_word_dir="os/aix" ;; aix4.[3456789]*) # We set os_include_dir to os/aix only on AIX 4.3 and newer, but |