mirror of
https://github.com/postgres/postgres.git
synced 2025-10-25 13:17:41 +03:00
Add native compiler and memory barriers for solaris studio.
Discussion: 20140925133459.GB9633@alap3.anarazel.de Author: Oskari Saarenmaa
This commit is contained in:
@@ -340,6 +340,9 @@
|
||||
/* Define to 1 if `long long int' works and is 64 bits. */
|
||||
#undef HAVE_LONG_LONG_INT_64
|
||||
|
||||
/* Define to 1 if you have the <mbarrier.h> header file. */
|
||||
#undef HAVE_MBARRIER_H
|
||||
|
||||
/* Define to 1 if you have the `mbstowcs_l' function. */
|
||||
#undef HAVE_MBSTOWCS_L
|
||||
|
||||
|
||||
@@ -19,6 +19,28 @@
|
||||
|
||||
#if defined(HAVE_ATOMICS)
|
||||
|
||||
#ifdef HAVE_MBARRIER_H
|
||||
#include <mbarrier.h>
|
||||
|
||||
#define pg_compiler_barrier_impl() __compiler_barrier()
|
||||
|
||||
#ifndef pg_memory_barrier_impl
|
||||
# define pg_memory_barrier_impl() __machine_rw_barrier()
|
||||
#endif
|
||||
#ifndef pg_read_barrier_impl
|
||||
/*
|
||||
* Despite the name this is actually a full barrier. Expanding to mfence and
|
||||
* membar #StoreStore | #LoadStore | #StoreLoad | #LoadLoad on x86/sparc
|
||||
* respectively.
|
||||
*/
|
||||
# define pg_read_barrier_impl() __machine_r_barrier()
|
||||
#endif
|
||||
#ifndef pg_write_barrier_impl
|
||||
# define pg_write_barrier_impl() __machine_w_barrier()
|
||||
#endif
|
||||
|
||||
#endif /* HAVE_MBARRIER_H */
|
||||
|
||||
/* Older versions of the compiler don't have atomic.h... */
|
||||
#ifdef HAVE_ATOMIC_H
|
||||
|
||||
|
||||
Reference in New Issue
Block a user