From 8524d66504e23775cd392b57f03f5fe884fce6b6 Mon Sep 17 00:00:00 2001 From: David Laseca Perez Date: Tue, 8 Sep 2026 09:12:25 +0200 Subject: [PATCH 1/3] Fix thread issues from upstream (#56) Signed-off-by: David Laseca Perez (cherry picked from commit 0d062095152427afb95700786c871a47266d5bdc) # Conflicts: # CMakeLists.txt --- CMakeLists.txt | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b8adb2f3..1557eaef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,13 @@ include(CheckLibraryExists) find_package(ament_cmake REQUIRED) find_package(ament_cmake_ros_core REQUIRED) +<<<<<<< HEAD +======= +if (NOT RCUTILS_NO_THREAD_SUPPORT) + set(THREADS_PREFER_PTHREAD_FLAG TRUE) + find_package(Threads REQUIRED) +endif() +>>>>>>> 0d06209 (Fix thread issues from upstream (#56)) if(UNIX AND NOT APPLE) include(cmake/check_c_compiler_uses_glibc.cmake) @@ -45,7 +52,7 @@ endif() set(rcutils_sources src/allocator.c src/array_list.c - src/base64.c + $<$>:src/base64.c> src/char_array.c src/cmdline_parser.c src/env.c @@ -100,12 +107,20 @@ configure_file( ) target_link_libraries(${PROJECT_NAME} +<<<<<<< HEAD ${CMAKE_DL_LIBS} ament_cmake_ros_core::ament_ros_defaults +======= + PUBLIC + ament_cmake_ros_core::ament_ros_defaults +>>>>>>> 0d06209 (Fix thread issues from upstream (#56)) ) if(NOT RCUTILS_NO_FILESYSTEM) target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_DL_LIBS}) endif() +if (NOT RCUTILS_NO_THREAD_SUPPORT) + target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads) +endif() check_library_exists(atomic __atomic_load_8 "" HAVE_LIBATOMICS) @@ -694,11 +709,13 @@ if(BUILD_TESTING) target_link_libraries(benchmark_err_handle ${PROJECT_NAME} ament_cmake_ros_core::ament_ros_defaults) endif() - ament_add_gtest(test_base64 - test/test_base64.cpp - ) - if(TARGET test_base64) - target_link_libraries(test_base64 ${PROJECT_NAME} ament_cmake_ros_core::ament_ros_defaults) + if(NOT RCUTILS_MICROROS) + ament_add_gtest(test_base64 + test/test_base64.cpp + ) + if(TARGET test_base64) + target_link_libraries(test_base64 ${PROJECT_NAME} ament_cmake_ros_core::ament_ros_defaults) + endif() endif() endif() From 767aa0e6cde7ba56983bff5b878cfc8e53d7660b Mon Sep 17 00:00:00 2001 From: David Laseca Perez Date: Tue, 8 Sep 2026 10:03:54 +0200 Subject: [PATCH 2/3] Fix conflicts Signed-off-by: David Laseca Perez --- CMakeLists.txt | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1557eaef..c386048a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,13 +13,6 @@ include(CheckLibraryExists) find_package(ament_cmake REQUIRED) find_package(ament_cmake_ros_core REQUIRED) -<<<<<<< HEAD -======= -if (NOT RCUTILS_NO_THREAD_SUPPORT) - set(THREADS_PREFER_PTHREAD_FLAG TRUE) - find_package(Threads REQUIRED) -endif() ->>>>>>> 0d06209 (Fix thread issues from upstream (#56)) if(UNIX AND NOT APPLE) include(cmake/check_c_compiler_uses_glibc.cmake) @@ -107,20 +100,11 @@ configure_file( ) target_link_libraries(${PROJECT_NAME} -<<<<<<< HEAD - ${CMAKE_DL_LIBS} ament_cmake_ros_core::ament_ros_defaults -======= - PUBLIC - ament_cmake_ros_core::ament_ros_defaults ->>>>>>> 0d06209 (Fix thread issues from upstream (#56)) ) if(NOT RCUTILS_NO_FILESYSTEM) target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_DL_LIBS}) endif() -if (NOT RCUTILS_NO_THREAD_SUPPORT) - target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads) -endif() check_library_exists(atomic __atomic_load_8 "" HAVE_LIBATOMICS) From b208d78d54e1a4ac1f988df82ceedb6837a8df79 Mon Sep 17 00:00:00 2001 From: David Laseca Perez Date: Tue, 8 Sep 2026 10:22:29 +0200 Subject: [PATCH 3/3] Fix CMakeLists Signed-off-by: David Laseca Perez --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c386048a..d4584be1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -103,7 +103,7 @@ target_link_libraries(${PROJECT_NAME} ament_cmake_ros_core::ament_ros_defaults ) if(NOT RCUTILS_NO_FILESYSTEM) - target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_DL_LIBS}) + target_link_libraries(${PROJECT_NAME} ${CMAKE_DL_LIBS}) endif() check_library_exists(atomic __atomic_load_8 "" HAVE_LIBATOMICS)