diff options
author | Noah Misch <noah@leadboat.com> | 2020-10-11 21:31:37 -0700 |
---|---|---|
committer | Noah Misch <noah@leadboat.com> | 2020-10-11 21:31:40 -0700 |
commit | d41cb63ff4d114d856837fbf61ba2872c5076ac2 (patch) | |
tree | 59531af6907dd3d5abc00f882b82654b4b01cefd /src | |
parent | dc14aa038e20d0287a569c36498da9469fe9d4e3 (diff) | |
download | postgresql-d41cb63ff4d114d856837fbf61ba2872c5076ac2.tar.gz postgresql-d41cb63ff4d114d856837fbf61ba2872c5076ac2.zip |
For ppc gcc, implement 64-bit compare_exchange and fetch_add with asm.
While xlc defines __64BIT__, gcc does not. Due to this oversight in
commit 30ee5d17c20dbb282a9952b3048d6ad52d56c371, gcc builds continued
implementing 64-bit atomics by way of intrinsics. Back-patch to v13,
where that commit first appeared.
Reviewed by Tom Lane.
Discussion: https://postgr.es/m/20201011051043.GA1724101@rfd.leadboat.com
Diffstat (limited to 'src')
-rw-r--r-- | src/include/port/atomics/arch-ppc.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/include/port/atomics/arch-ppc.h b/src/include/port/atomics/arch-ppc.h index fdfe0d0cd5f..68e66033ad7 100644 --- a/src/include/port/atomics/arch-ppc.h +++ b/src/include/port/atomics/arch-ppc.h @@ -32,14 +32,14 @@ typedef struct pg_atomic_uint32 } pg_atomic_uint32; /* 64bit atomics are only supported in 64bit mode */ -#ifdef __64BIT__ +#if SIZEOF_VOID_P >= 8 #define PG_HAVE_ATOMIC_U64_SUPPORT typedef struct pg_atomic_uint64 { volatile uint64 value pg_attribute_aligned(8); } pg_atomic_uint64; -#endif /* __64BIT__ */ +#endif /* * This mimics gcc __atomic_compare_exchange_n(..., __ATOMIC_SEQ_CST), but |