Merge pull request #322 from uraimo/system_arch_fix
Improve host architecture detection
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 365add2..7fe4aa3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -214,6 +214,7 @@
check_symbol_exists(CLOCK_UPTIME_FAST "time.h" HAVE_DECL_CLOCK_UPTIME_FAST)
check_symbol_exists(CLOCK_MONOTONIC "time.h" HAVE_DECL_CLOCK_MONOTONIC)
check_symbol_exists(CLOCK_REALTIME "time.h" HAVE_DECL_CLOCK_REALTIME)
+check_symbol_exists(CLOCK_MONOTONIC_COARSE "time.h" HAVE_DECL_CLOCK_MONOTONIC_COARSE)
check_symbol_exists(FD_COPY "sys/select.h" HAVE_DECL_FD_COPY)
check_symbol_exists(NOTE_LOWAT "sys/event.h" HAVE_DECL_NOTE_LOWAT)
check_symbol_exists(NOTE_NONE "sys/event.h" HAVE_DECL_NOTE_NONE)
@@ -250,20 +251,26 @@
endif()
if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
- add_custom_target(module-map-symlinks
- ALL
- COMMAND
- ${CMAKE_COMMAND} -E create_symlink "${CMAKE_SOURCE_DIR}/dispatch/darwin/module.modulemap" "${CMAKE_SOURCE_DIR}/dispatch/module.modulemap"
- COMMAND
- ${CMAKE_COMMAND} -E create_symlink "${CMAKE_SOURCE_DIR}/private/darwin/module.modulemap" "${CMAKE_SOURCE_DIR}/private/module.modulemap")
+ add_custom_command(OUTPUT
+ "${CMAKE_SOURCE_DIR}/dispatch/module.modulemap"
+ "${CMAKE_SOURCE_DIR}/private/module.modulemap"
+ COMMAND
+ ${CMAKE_COMMAND} -E create_symlink "${CMAKE_SOURCE_DIR}/dispatch/darwin/module.modulemap" "${CMAKE_SOURCE_DIR}/dispatch/module.modulemap"
+ COMMAND
+ ${CMAKE_COMMAND} -E create_symlink "${CMAKE_SOURCE_DIR}/private/darwin/module.modulemap" "${CMAKE_SOURCE_DIR}/private/module.modulemap")
else()
- add_custom_target(module-map-symlinks
- ALL
- COMMAND
- ${CMAKE_COMMAND} -E create_symlink "${CMAKE_SOURCE_DIR}/dispatch/generic/module.modulemap" "${CMAKE_SOURCE_DIR}/dispatch/module.modulemap"
- COMMAND
- ${CMAKE_COMMAND} -E create_symlink "${CMAKE_SOURCE_DIR}/private/generic/module.modulemap" "${CMAKE_SOURCE_DIR}/private/module.modulemap")
+ add_custom_command(OUTPUT
+ "${CMAKE_SOURCE_DIR}/dispatch/module.modulemap"
+ "${CMAKE_SOURCE_DIR}/private/module.modulemap"
+ COMMAND
+ ${CMAKE_COMMAND} -E create_symlink "${CMAKE_SOURCE_DIR}/dispatch/generic/module.modulemap" "${CMAKE_SOURCE_DIR}/dispatch/module.modulemap"
+ COMMAND
+ ${CMAKE_COMMAND} -E create_symlink "${CMAKE_SOURCE_DIR}/private/generic/module.modulemap" "${CMAKE_SOURCE_DIR}/private/module.modulemap")
endif()
+add_custom_target(module-map-symlinks
+ DEPENDS
+ "${CMAKE_SOURCE_DIR}/dispatch/module.modulemap"
+ "${CMAKE_SOURCE_DIR}/private/module.modulemap")
configure_file("${CMAKE_SOURCE_DIR}/cmake/config.h.in"
"${CMAKE_BINARY_DIR}/config/config_ac.h")
add_definitions(-DHAVE_CONFIG_H)
diff --git a/cmake/config.h.in b/cmake/config.h.in
index a59737b..c858589 100644
--- a/cmake/config.h.in
+++ b/cmake/config.h.in
@@ -21,6 +21,10 @@
you don't. */
#cmakedefine01 HAVE_DECL_CLOCK_UPTIME_FAST
+/* Define to 1 if you have the declaration of `CLOCK_MONOTONIC_COARSE', and to
+ 0 if you don't. */
+#cmakedefine01 HAVE_CLOCK_MONOTONIC_COARSE
+
/* Define to 1 if you have the declaration of `FD_COPY', and to 0 if you
don't. */
#cmakedefine01 HAVE_DECL_FD_COPY
diff --git a/cmake/modules/SwiftSupport.cmake b/cmake/modules/SwiftSupport.cmake
index ec891d5..bae1f9f 100644
--- a/cmake/modules/SwiftSupport.cmake
+++ b/cmake/modules/SwiftSupport.cmake
@@ -4,7 +4,7 @@
function(add_swift_library library)
set(options)
set(single_value_options MODULE_NAME;MODULE_LINK_NAME;MODULE_PATH;MODULE_CACHE_PATH;OUTPUT;TARGET)
- set(multiple_value_options SOURCES;SWIFT_FLAGS;CFLAGS)
+ set(multiple_value_options SOURCES;SWIFT_FLAGS;CFLAGS;DEPENDS)
cmake_parse_arguments(ASL "${options}" "${single_value_options}" "${multiple_value_options}" ${ARGN})
@@ -61,6 +61,7 @@
DEPENDS
${ASL_SOURCES}
${CMAKE_SWIFT_COMPILER}
+ ${ASL_DEPENDS}
COMMAND
${CMAKE_COMMAND} -E make_directory ${module_directory}
COMMAND
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 11c3a3d..2336908 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -100,9 +100,9 @@
-fmodule-map-file=${CMAKE_SOURCE_DIR}/dispatch/module.modulemap
SWIFT_FLAGS
-I ${CMAKE_SOURCE_DIR}
- ${swift_optimization_flags})
- add_dependencies(swiftDispatch
- module-map-symlinks)
+ ${swift_optimization_flags}
+ DEPENDS
+ ${CMAKE_SOURCE_DIR}/dispatch/module.modulemap)
target_sources(dispatch
PRIVATE
swift/DispatchStubs.cc
diff --git a/src/event/event_epoll.c b/src/event/event_epoll.c
index 97b4bba..0425cb2 100644
--- a/src/event/event_epoll.c
+++ b/src/event/event_epoll.c
@@ -391,13 +391,14 @@
dispatch_epoll_timeout_t timer = &_dispatch_epoll_timeout[clock];
struct epoll_event ev = {
.events = EPOLLONESHOT | EPOLLIN,
- .data = { .u32 = timer->det_ident },
+
};
int op;
if (target >= INT64_MAX && !timer->det_registered) {
return;
}
+ ev.data.u32 = timer->det_ident;
if (unlikely(timer->det_fd < 0)) {
clockid_t clockid;