diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt
index 8b590dc9989d2a4b9a0efac4315e32b207e7774b..a4a2c9e0463437a1867c4c20d6797d188f5640c2 100644
--- a/core/CMakeLists.txt
+++ b/core/CMakeLists.txt
@@ -71,14 +71,17 @@ add_library(core STATIC ${common_sources})
 add_dependencies(core generate_headers luajit)
 set_target_properties(core PROPERTIES COMPILE_FLAGS "${core_cflags}")
 
-set (common_libraries cfg core ev coro gopt misc objc luajit dl)
+set (common_libraries cfg core ev coro gopt misc objc luajit)
+if (TARGET_OS_LINUX)
+  set (common_libraries ${common_libraries} dl)
+endif()
 
 if (ENABLE_GCOV)
   set (common_libraries ${common_libraries} gcov)
 endif()
 
 if (ENABLE_BACKTRACE AND HAVE_BFD)
-  set (common_libraries ${common_libraries} bfd dl)
+  set (common_libraries ${common_libraries} bfd)
   if (ENABLE_STATIC)
      include (FindZLIB)
      set (common_libraries ${common_libraries} ${ZLIB_LIBRARIES} iberty)
diff --git a/core/replication.m b/core/replication.m
index b017960a882b112d7d7d5258a1af4dc4fe16be11..310cda41caa5f22f583c2e12da5cb415e7b48eb3 100644
--- a/core/replication.m
+++ b/core/replication.m
@@ -245,7 +245,7 @@ acceptor_handler(void *data __attribute__((unused)))
 		fiber_io_start(fiber->fd, EV_READ);
 		fiber_io_yield();
 		/* accept connection */
-		client_sock = accept(fiber->fd, &addr, &addrlen);
+		client_sock = accept(fiber->fd, (struct sockaddr*)&addr, &addrlen);
 		if (client_sock == -1) {
 			if (errno == EAGAIN && errno == EWOULDBLOCK) {
 				continue;