Skip to content

Commit 580b993

Browse files
mpratherlws-team
authored andcommitted
cmake: openssl: Added check for atomic library
OpenSSL on arm7 utilized atomics. In order for the configuration check for HMAC_CTX_new to succeed, the atomic library needs to be added to CMAKE_REQUIRED_LIBRARIES. Fix for #3529
1 parent e6dc345 commit 580b993

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

lib/tls/CMakeLists.txt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,8 +333,16 @@ endif()
333333
if (DEFINED LIB_LIST)
334334
set(CMAKE_REQUIRED_LIBRARIES ${LIB_LIST})
335335
endif()
336+
if(UNIX AND (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang"))
337+
check_c_source_compiles("int main() { long long x = 0; __atomic_fetch_add(&x, 1, __ATOMIC_SEQ_CST); return 0; }" HAVE_WORKING_ATOMIC_64)
338+
if(HAVE_WORKING_ATOMIC_64)
339+
set(LWS_ATOMIC_LIB "")
340+
else()
341+
set(LWS_ATOMIC_LIB atomic)
342+
endif()
343+
endif()
336344
if (UNIX AND NOT (${CMAKE_SYSTEM_NAME} MATCHES "QNX"))
337-
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${CMAKE_DL_LIBS})
345+
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${CMAKE_DL_LIBS} ${LWS_ATOMIC_LIB})
338346
endif()
339347
if ((CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) AND NOT ((${CMAKE_SYSTEM_NAME} MATCHES "QNX") OR PC_OPENSSL_FOUND))
340348
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} pthread)

0 commit comments

Comments
 (0)