From ae1b064b5a5aaf870c8badff40e2991d831898cc Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Mon, 14 Mar 2022 19:37:29 -0400 Subject: [PATCH] remove broken support for Darwin/macOS --- CMakeLists.txt | 8 ---- include/villas/nodes/iec61850.hpp | 6 +-- include/villas/queue_signalled.h | 5 +-- lib/CMakeLists.txt | 13 +------ lib/nodes/iec61850_sv.cpp | 8 +--- lib/nodes/loopback.cpp | 4 -- lib/queue_signalled.cpp | 61 ------------------------------- tests/unit/memory.cpp | 2 - tests/unit/queue.cpp | 3 -- 9 files changed, 5 insertions(+), 105 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 99eaa5a1b..9571f9bf7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,10 +44,6 @@ else() set(TOPLEVEL_PROJECT OFF) endif() -if(APPLE) - set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/opt/local/lib/pkgconfig") -endif() - # check compiler version if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") # require at least gcc 8 @@ -70,10 +66,6 @@ include(GetVersion) include(FindSymbol) include(CMakeDependentOption) -if(APPLE) - add_definitions(-D_DARWIN_C_SOURCE) -endif() - add_definitions(-D_POSIX_C_SOURCE=200809L -D_GNU_SOURCE) add_compile_options(-Wall -Wno-unknown-pragmas -Werror -fdiagnostics-color=auto) diff --git a/include/villas/nodes/iec61850.hpp b/include/villas/nodes/iec61850.hpp index 76872f60a..53b2621f2 100644 --- a/include/villas/nodes/iec61850.hpp +++ b/include/villas/nodes/iec61850.hpp @@ -25,11 +25,7 @@ #include -#ifdef __APPLE__ - #include -#else - #include -#endif +#include #include #include diff --git a/include/villas/queue_signalled.h b/include/villas/queue_signalled.h index 2f9ea76d7..dcc6e39f4 100644 --- a/include/villas/queue_signalled.h +++ b/include/villas/queue_signalled.h @@ -37,8 +37,7 @@ enum class QueueSignalledMode { POLLING, #ifdef HAS_EVENTFD EVENTFD, -#elif defined(__APPLE__) - PIPE, + #endif }; @@ -60,8 +59,6 @@ struct CQueueSignalled { } pthread; #ifdef __linux__ int eventfd; -#elif defined(__APPLE__) - int pipe[2]; #endif }; }; diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index bf7f0fecc..83ad741aa 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -33,13 +33,9 @@ set(LIBRARIES PkgConfig::UUID m stdc++ + rt ) -# For shmem_unlink -if(UNIX AND NOT APPLE) - list(APPEND LIBRARIES "rt") -endif() - set(LIB_SRC capabilities.cpp config_helper.cpp @@ -149,20 +145,15 @@ if(WITH_FPGA) endif() add_library(villas SHARED ${LIB_SRC}) - target_include_directories(villas PUBLIC ${INCLUDE_DIRS}) target_link_libraries(villas PUBLIC ${LIBRARIES}) +target_link_libraries(villas PRIVATE -Wl,--whole-archive ${WHOLE_ARCHIVES} -Wl,--no-whole-archive) # We need to link with -Bsymbolic in order to use link libvillas # with Go code (Cgo) # See also: https://stackoverflow.com/a/67299849 target_link_options(villas PUBLIC "-Wl,-Bsymbolic") -if(APPLE) - target_link_libraries(villas PRIVATE -Wl,-all_load ${WHOLE_ARCHIVES} -Wl,-noall_load) -else() - target_link_libraries(villas PRIVATE -Wl,--whole-archive ${WHOLE_ARCHIVES} -Wl,--no-whole-archive) -endif() set_target_properties(villas PROPERTIES VERSION ${CMAKE_PROJECT_VERSION} diff --git a/lib/nodes/iec61850_sv.cpp b/lib/nodes/iec61850_sv.cpp index ca6a44b99..7ad333e47 100644 --- a/lib/nodes/iec61850_sv.cpp +++ b/lib/nodes/iec61850_sv.cpp @@ -181,14 +181,8 @@ int villas::node::iec61850_sv_parse(NodeCompat *n, json_t *json) if (interface) i->interface = strdup(interface); - if (dst_address) { -#ifdef __APPLE__ - struct ether_addr *ether = ether_aton(dst_address); - memcpy(&i->dst_address, ether, sizeof(struct ether_addr)); -#else + if (dst_address) ether_aton_r(dst_address, &i->dst_address); -#endif - } if (json_out) { i->out.enabled = true; diff --git a/lib/nodes/loopback.cpp b/lib/nodes/loopback.cpp index 8be13d41d..bd73dfb40 100644 --- a/lib/nodes/loopback.cpp +++ b/lib/nodes/loopback.cpp @@ -142,10 +142,6 @@ int LoopbackNode::parse(json_t *json) mode = QueueSignalledMode::PTHREAD; else if (!strcmp(mode_str, "polling")) mode = QueueSignalledMode::POLLING; -#ifdef __APPLE__ - else if (!strcmp(mode_str, "pipe")) - l->mode = QueueSignalledMode::PIPE; -#endif /* __APPLE__ */ else throw ConfigError(json, "node-config-node-loopback-mode", "Unknown mode '{}'", mode_str); } diff --git a/lib/queue_signalled.cpp b/lib/queue_signalled.cpp index 7095383de..e27b297b0 100644 --- a/lib/queue_signalled.cpp +++ b/lib/queue_signalled.cpp @@ -56,11 +56,6 @@ int villas::node::queue_signalled_init(struct CQueueSignalled *qs, size_t size, qs->mode = QueueSignalledMode::PTHREAD; #endif } -#elif defined(__APPLE__) - if (flags & (int) QueueSignalledFlags::PROCESS_SHARED) - qs->mode = QueueSignalledMode::PTHREAD; - else - qs->mode = QueueSignalledMode::PIPE; #else qs->mode = QueueSignalledMode::PTHREAD; #endif @@ -97,12 +92,6 @@ int villas::node::queue_signalled_init(struct CQueueSignalled *qs, size_t size, if (qs->eventfd < 0) return -2; } -#elif defined(__APPLE__) - else if (qs->mode == QueueSignalledMode::PIPE) { - ret = pipe(qs->pipe); - if (ret < 0) - return -2; - } #endif else return -1; @@ -131,12 +120,6 @@ int villas::node::queue_signalled_destroy(struct CQueueSignalled *qs) if (ret) return ret; } -#elif defined(__APPLE__) - else if (qs->mode == QueueSignalledMode::PIPE) { - ret = close(qs->pipe[0]) + close(qs->pipe[1]); - if (ret) - return ret; - } #endif else return -1; @@ -168,14 +151,6 @@ int villas::node::queue_signalled_push(struct CQueueSignalled *qs, void *ptr) if (ret < 0) return ret; } -#elif defined(__APPLE__) - else if (qs->mode == QueueSignalledMode::PIPE) { - int ret; - uint8_t incr = 1; - ret = write(qs->pipe[1], &incr, sizeof(incr)); - if (ret < 0) - return ret; - } #endif else return -1; @@ -207,14 +182,6 @@ int villas::node::queue_signalled_push_many(struct CQueueSignalled *qs, void *pt if (ret < 0) return ret; } -#elif defined(__APPLE__) - else if (qs->mode == QueueSignalledMode::PIPE) { - int ret; - uint8_t incr = 1; - ret = write(qs->pipe[1], &incr, sizeof(incr)); - if (ret < 0) - return ret; - } #endif else return -1; @@ -249,14 +216,6 @@ int villas::node::queue_signalled_pull(struct CQueueSignalled *qs, void **ptr) if (ret < 0) break; } -#elif defined(__APPLE__) - else if (qs->mode == QueueSignalledMode::PIPE) { - int ret; - uint8_t incr = 1; - ret = read(qs->pipe[0], &incr, sizeof(incr)); - if (ret < 0) - break; - } #endif else break; @@ -298,14 +257,6 @@ int villas::node::queue_signalled_pull_many(struct CQueueSignalled *qs, void *pt if (ret < 0) break; } -#elif defined(__APPLE__) - else if (qs->mode == QueueSignalledMode::PIPE) { - int ret; - uint8_t incr = 1; - ret = read(qs->pipe[0], &incr, sizeof(incr)); - if (ret < 0) - break; - } #endif else break; @@ -345,15 +296,6 @@ int villas::node::queue_signalled_close(struct CQueueSignalled *qs) if (ret < 0) return ret; } -#elif defined(__APPLE__) - else if (qs->mode == QueueSignalledMode::PIPE) { - int ret; - uint64_t incr = 1; - - ret = write(qs->pipe[1], &incr, sizeof(incr)); - if (ret < 0) - return ret; - } #endif else return -1; @@ -367,9 +309,6 @@ int villas::node::queue_signalled_fd(struct CQueueSignalled *qs) #ifdef HAS_EVENTFD case QueueSignalledMode::EVENTFD: return qs->eventfd; -#elif defined(__APPLE__) - case QueueSignalledMode::PIPE: - return qs->pipe[0]; #endif default: { } } diff --git a/tests/unit/memory.cpp b/tests/unit/memory.cpp index 5ff3efb28..9d7d826a6 100644 --- a/tests/unit/memory.cpp +++ b/tests/unit/memory.cpp @@ -58,11 +58,9 @@ Theory((size_t len, size_t align, struct memory::Type *mt), memory, aligned, .in cr_assert(IS_ALIGNED(ptr, align), "Memory at %p is not alligned to %#zx byte bounary", ptr, align); -#ifndef __APPLE__ if (mt == &memory::mmap_hugetlb) { cr_assert(IS_ALIGNED(ptr, HUGEPAGESIZE), "Memory at %p is not alligned to %#x byte bounary", ptr, HUGEPAGESIZE); } -#endif ret = memory::free(ptr); cr_assert_eq(ret, 0, "Failed to release memory: ret=%d, ptr=%p, len=%zu: %s", ret, ptr, len, strerror(errno)); diff --git a/tests/unit/queue.cpp b/tests/unit/queue.cpp index 11c414c60..d8d8c1fdb 100644 --- a/tests/unit/queue.cpp +++ b/tests/unit/queue.cpp @@ -92,9 +92,6 @@ static void * producer(void *ctx) srand((unsigned) time(0) + thread_get_id()); size_t nops = rand() % 1000; -#ifdef __APPLE__ - #define pthread_yield pthread_yield_np -#endif /* Wait for global start signal */ while (p->start == 0) pthread_yield();