mirror of
https://github.com/Z3Prover/z3
synced 2025-08-20 02:00:22 +00:00
Merge pull request #1438 from delcypher/cmake_old_glibc_librt
[CMake] Fix #1437
This commit is contained in:
commit
6a4f269563
1 changed files with 40 additions and 0 deletions
|
@ -257,6 +257,46 @@ list(APPEND Z3_COMPONENT_EXTRA_INCLUDE_DIRS
|
||||||
"${CMAKE_BINARY_DIR}/src"
|
"${CMAKE_BINARY_DIR}/src"
|
||||||
"${CMAKE_SOURCE_DIR}/src"
|
"${CMAKE_SOURCE_DIR}/src"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Linux specific configuration
|
||||||
|
################################################################################
|
||||||
|
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
|
||||||
|
# Try to detect if it is necessary to link against librt.
|
||||||
|
# Note that glibc < 2.17 required librt to be linked to use clock_gettime()
|
||||||
|
# and friends.
|
||||||
|
set(CLOCK_GETTIME_REQUIRES_LIBRT_TEST_CODE
|
||||||
|
"
|
||||||
|
#include <time.h>
|
||||||
|
int main() {
|
||||||
|
timespec res;
|
||||||
|
int result = clock_gettime(CLOCK_REALTIME, &res);
|
||||||
|
return result == 0;
|
||||||
|
}
|
||||||
|
"
|
||||||
|
)
|
||||||
|
check_cxx_source_compiles(
|
||||||
|
"${CLOCK_GETTIME_REQUIRES_LIBRT_TEST_CODE}"
|
||||||
|
CLOCK_GETTIME_NO_REQUIRE_LIBRT
|
||||||
|
)
|
||||||
|
if (NOT CLOCK_GETTIME_NO_REQUIRE_LIBRT)
|
||||||
|
# Try again with librt
|
||||||
|
message(STATUS "Failed to link against clock_gettime(), trying with librt")
|
||||||
|
set(CMAKE_REQUIRED_LIBRARIES_OLD "${CMAKE_REQUIRED_LIBRARIES}")
|
||||||
|
set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES} rt")
|
||||||
|
check_cxx_source_compiles(
|
||||||
|
"${CLOCK_GETTIME_REQUIRES_LIBRT_TEST_CODE}"
|
||||||
|
CLOCK_GETTIME_REQUIRES_LIBRT
|
||||||
|
)
|
||||||
|
set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES_OLD}")
|
||||||
|
if (CLOCK_GETTIME_REQUIRES_LIBRT)
|
||||||
|
list(APPEND Z3_DEPENDENT_LIBS "rt")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Failed to link against clock_gettime()")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# GNU multiple precision library support
|
# GNU multiple precision library support
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue