cmake: link with -latomic for clang
otherwise clang build fails with ../cryptonote_core/libcryptonote_core.a(miner.cpp.o): In function `std::__atomic_base<unsigned long long>::load(std::memory_order) const': /usr/bin/../lib/gcc/i686-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/bits/atomic_base.h:396: undefined reference to `__atomic_load_8' This has no effect on the gcc build. The one strange thing is that test code like std::atomic<int> x; int main() { return x; } compiles and links without errors with clang, without -latomic. This alone would suggest that this patch is unnecessary, but that is not the case. It's not clear exactly why, though. The bitmonero code is including the same header, but it must be doing something more complex than in this test code snippet that causes the failure at link time pasted above. In any case, passing -latomic fixes the problem and seems safe. .
This commit is contained in:
parent
f4b35aeafd
commit
f3e09f36d3
@ -457,6 +457,11 @@ endif()
|
|||||||
|
|
||||||
list(APPEND EXTRA_LIBRARIES ${CMAKE_DL_LIBS})
|
list(APPEND EXTRA_LIBRARIES ${CMAKE_DL_LIBS})
|
||||||
|
|
||||||
|
if(NOT MINGW)
|
||||||
|
find_library(ATOMIC atomic)
|
||||||
|
list(APPEND EXTRA_LIBRARIES ${ATOMIC})
|
||||||
|
endif()
|
||||||
|
|
||||||
include(version.cmake)
|
include(version.cmake)
|
||||||
|
|
||||||
add_subdirectory(contrib)
|
add_subdirectory(contrib)
|
||||||
|
Loading…
Reference in New Issue
Block a user