Skip to content

Commit b5bf85f

Browse files
committed
Fix atomic timestamp builds on Windows and 32-bit GCC
1 parent 5cf6b24 commit b5bf85f

3 files changed

Lines changed: 12 additions & 0 deletions

File tree

cmake/platforms/linux.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ set(ZP_PLATFORM_SOURCE_FILES
77
"${PROJECT_SOURCE_DIR}/src/link/transport/tcp/tcp_posix.c"
88
"${PROJECT_SOURCE_DIR}/src/link/transport/udp/udp_posix.c"
99
"${PROJECT_SOURCE_DIR}/src/link/transport/serial/tty_posix.c")
10+
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
11+
set(ZP_PLATFORM_LINK_LIBRARIES atomic)
12+
endif()
1013
if(ZP_UDP_MULTICAST_ENABLED)
1114
list(APPEND ZP_PLATFORM_SOURCE_FILES
1215
"${PROJECT_SOURCE_DIR}/src/link/transport/udp/udp_multicast_posix.c")

include/zenoh-pico/collections/atomic_impl.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,18 @@ static inline memory_order _z_atomic_memory_order(_z_memory_order_t order) {
5757
} \
5858
bool _z_atomic_##name##_compare_exchange_strong(_z_atomic_##name##_t *var, type *expected, type desired, \
5959
_z_memory_order_t success, _z_memory_order_t failure) { \
60+
/* MSVC's C11 atomic macro does not mark memory order parameters as used. */ \
61+
(void)success; \
62+
(void)failure; \
6063
return atomic_compare_exchange_strong_explicit((_z_atomic_##name##_atomic_t *)&var->_value, expected, desired, \
6164
_z_atomic_memory_order(success), \
6265
_z_atomic_memory_order(failure)); \
6366
} \
6467
bool _z_atomic_##name##_compare_exchange_weak(_z_atomic_##name##_t *var, type *expected, type desired, \
6568
_z_memory_order_t success, _z_memory_order_t failure) { \
69+
/* MSVC's C11 atomic macro does not mark memory order parameters as used. */ \
70+
(void)success; \
71+
(void)failure; \
6672
return atomic_compare_exchange_weak_explicit((_z_atomic_##name##_atomic_t *)&var->_value, expected, desired, \
6773
_z_atomic_memory_order(success), \
6874
_z_atomic_memory_order(failure)); \

zephyr/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ if(CONFIG_ZENOH_PICO)
33
zephyr_compile_definitions(ZENOH_ZEPHYR)
44
zephyr_include_directories(../include)
55
zephyr_library()
6+
if(CONFIG_COMPILER_GCC)
7+
zephyr_link_libraries(atomic)
8+
endif()
69

710
function(configure_zenoh_feature config)
811
string(REPLACE CONFIG_ZENOH_PICO Z_FEATURE feature ${config})

0 commit comments

Comments
 (0)