From: Harlan Stenn Date: Mon, 20 Apr 2015 10:00:46 +0000 (+0000) Subject: [Bug 2810] refclock_shm.c memory barrier code needs tweaks for QNX X-Git-Tag: NTP_4_3_15~3^2^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aee1b6d87c3db0a0dc2a512de62de7947705f981;p=thirdparty%2Fntp.git [Bug 2810] refclock_shm.c memory barrier code needs tweaks for QNX bk: 5534ce4e6qpFDmpfHSUn8ebOn546KQ --- diff --git a/ChangeLog b/ChangeLog index 7c6163295..bc37f5da2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,7 @@ * [Bug 2808] GPSD_JSON driver enhancements, step 1. Various improvements, see http://bugs.ntp.org/2808 for details. Changed libjsmn to a more recent version. +* [Bug 2810] refclock_shm.c memory barrier code needs tweaks for QNX. --- (4.2.8p2) 2015/04/07 Released by Harlan Stenn (4.2.8p2-RC3) 2015/04/03 Released by Harlan Stenn diff --git a/configure.ac b/configure.ac index dc88d2e93..980ea9831 100644 --- a/configure.ac +++ b/configure.ac @@ -375,11 +375,27 @@ case "$host" in ;; esac -dnl case "$ac_cv_header_stdatomic_h" in -dnl yes) -dnl AC_CHECK_FUNCS([atomic_thread_fence]) -dnl ;; -dnl esac +case "$ac_cv_header_stdatomic_h" in + yes) + AC_CHECK_FUNCS([atomic_thread_fence]) + AC_CACHE_CHECK( + [for atomic_thread_fence()], + [ntp_cv_func_atomic_thread_fence], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #include + ]], + [[ + atomic_thread_fence(memory_order_seq_cst); + ]] + )] + [ntp_cv_func_atomic_thread_fence=yes], + [ntp_cv_func_atomic_thread_fence=no] + )] + ) + ;; +esac case "$host" in *-*-solaris2.6) diff --git a/ntpd/refclock_shm.c b/ntpd/refclock_shm.c index 270b6cfd6..0b3b29f86 100644 --- a/ntpd/refclock_shm.c +++ b/ntpd/refclock_shm.c @@ -367,9 +367,9 @@ struct shm_stat_t { static inline void memory_barrier(void) { -#ifdef HAVE_STDATOMIC_H +#ifdef HAVE_ATOMIC_THREAD_FENCE atomic_thread_fence(memory_order_seq_cst); -#endif /* HAVE_STDATOMIC_H */ +#endif /* HAVE_ATOMIC_THREAD_FENCE */ } static enum segstat_t shm_query(volatile struct shmTime *shm_in, struct shm_stat_t *shm_stat)