From abe76789f8e7ce61b357f693eaed5b28feab5ce2 Mon Sep 17 00:00:00 2001
From: Hollis Blanchard <hollis_blanchard@mentor.com>
Date: Mon, 13 Aug 2018 12:11:33 -0700
Subject: [PATCH] Fix build break around __atomic_*() with GCC<4.7

The __atomic_* GCC primitives were introduced in GCC 4.7, but Red Hat
Enterprise Linux 6.x (for example) provides GCC 4.4. Tweak the current code to
use the (most conservative) __sync_synchronize() primitive provided by those
older GCC versions.

(Really, no __atomic or __sync operations are needed here at all, since POSIX
4.12 "Memory Synchronization" says pthread_mutex_lock() and
pthread_mutex_unlock() "synchronize memory with respect to other threads"...)

Signed-off-by: Hollis Blanchard <hollis_blanchard@mentor.com>
---
 src/label_file.h | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/label_file.h b/src/label_file.h
index 2fa85474..47859baf 100644
--- a/src/label_file.h
+++ b/src/label_file.h
@@ -351,8 +351,14 @@ static inline int compile_regex(struct saved_data *data, struct spec *spec,
 	 * init_routine does not take a parameter, it's not possible
 	 * to use, so we generate the same effect with atomics and a
 	 * mutex */
+#ifdef __ATOMIC_RELAXED
 	regex_compiled =
 		__atomic_load_n(&spec->regex_compiled, __ATOMIC_ACQUIRE);
+#else
+	/* GCC <4.7 */
+	__sync_synchronize();
+	regex_compiled = spec->regex_compiled;
+#endif
 	if (regex_compiled) {
 		return 0; /* already done */
 	}
@@ -360,8 +366,14 @@ static inline int compile_regex(struct saved_data *data, struct spec *spec,
 	__pthread_mutex_lock(&spec->regex_lock);
 	/* Check if another thread compiled the regex while we waited
 	 * on the mutex */
+#ifdef __ATOMIC_RELAXED
 	regex_compiled =
 		__atomic_load_n(&spec->regex_compiled, __ATOMIC_ACQUIRE);
+#else
+	/* GCC <4.7 */
+	__sync_synchronize();
+	regex_compiled = spec->regex_compiled;
+#endif
 	if (regex_compiled) {
 		__pthread_mutex_unlock(&spec->regex_lock);
 		return 0;
@@ -404,7 +416,13 @@ static inline int compile_regex(struct saved_data *data, struct spec *spec,
 	}
 
 	/* Done. */
+#ifdef __ATOMIC_RELAXED
 	__atomic_store_n(&spec->regex_compiled, true, __ATOMIC_RELEASE);
+#else
+	/* GCC <4.7 */
+	spec->regex_compiled = true;
+	__sync_synchronize();
+#endif
 	__pthread_mutex_unlock(&spec->regex_lock);
 	return 0;
 }
-- 
2.13.0

