From: khizmax Date: Wed, 3 May 2017 20:19:21 +0000 (+0300) Subject: GCC-7 requires libatomic to support 128-bit atomics on amd64, see https://gcc.gnu... X-Git-Tag: v2.3.0~47 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=991208c865efc629bc6b39b4f213306d447dc276;p=libcds.git GCC-7 requires libatomic to support 128-bit atomics on amd64, see https://gcc.gnu.org/ml/gcc/2017-01/msg00167.html discussion. --- diff --git a/CMakeLists.txt b/CMakeLists.txt index d22b482a..dc819721 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -115,6 +115,13 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") if(CMAKE_TARGET_ARCHITECTURE STREQUAL "x86_64") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcx16") set(LIB_SUFFIX "64") + + # GCC-7: 128-bit atomics support is implemented via libatomic on amd64 + # see https://gcc.gnu.org/ml/gcc/2017-01/msg00167.html + # Maybe, it will be changed in future + if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "7.0.0" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.0.0") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -latomic") + endif() endif() if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.0.0")