From d12a894a25a6c5ba1b11037d51c81600f1545e24 Mon Sep 17 00:00:00 2001
From: Martin Hierholzer <martin.hierholzer@desy.de>
Date: Thu, 3 Dec 2020 11:38:17 +0100
Subject: [PATCH] add macro to find gcc's atomic library

---
 cmake/Modules/FindGccAtomic.cmake | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 cmake/Modules/FindGccAtomic.cmake

diff --git a/cmake/Modules/FindGccAtomic.cmake b/cmake/Modules/FindGccAtomic.cmake
new file mode 100644
index 0000000..0a0f079
--- /dev/null
+++ b/cmake/Modules/FindGccAtomic.cmake
@@ -0,0 +1,28 @@
+# This scripts finds gcc's built-in atomic shared library (libatomic.so).
+# It is required to link against this library on gcc when using 16 byte atomics, even when running on x86_64/amd64.
+
+if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+
+  FIND_LIBRARY(GCCLIBATOMIC_LIBRARY NAMES atomic atomic.so.1 libatomic.so.1
+    HINTS
+    $ENV{HOME}/local/lib64
+    $ENV{HOME}/local/lib
+    /usr/local/lib64
+    /usr/local/lib
+    /opt/local/lib64
+    /opt/local/lib
+    /usr/lib64
+    /usr/lib
+    /lib64
+    /lib
+  )
+
+else ()
+
+  SET(GCCLIBATOMIC_LIBRARY "")
+
+endif ()
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GCCLIBATOMIC DEFAULT_MSG GCCLIBATOMIC_LIBRARY)
+
-- 
GitLab