Skip to content

Fix thread issues added upstream - #56

Merged
David-LP99 merged 1 commit into
rolling_rebasedfrom
hotfix/pthread_issue
Sep 8, 2026
Merged

Fix thread issues added upstream#56
David-LP99 merged 1 commit into
rolling_rebasedfrom
hotfix/pthread_issue

Conversation

@David-LP99

Copy link
Copy Markdown

Description

This PR aims to deal with two changes involving threads from upstream.

The base64 encode and decode functionality added in ros2#533 for configuring binary data in YAML files is not needed in micro-ROS. It's only reference at the moment comes from rcl_yaml_param_parser, which is also disabled in micro-ROS.

In ros2#579, it was also added a dependency on pthreads, which is not used anywere else in micro-ROS and should be gated on RCUTILS_NO_THREAD_SUPPORT.

Main changes

  • Added gates that prevent base64.c from compiling in micro-ROS/rcutils
  • The package Threads is now linked conditionally on RCUTILS_NO_THREAD_SUPPORT

Signed-off-by: David Laseca Perez <davidlaseca@eprosima.com>
@mergify

mergify Bot commented Sep 7, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@EugenioCollado EugenioCollado left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@David-LP99
David-LP99 merged commit 0d06209 into rolling_rebased Sep 8, 2026
2 checks passed
@David-LP99
David-LP99 deleted the hotfix/pthread_issue branch September 8, 2026 07:12
@David-LP99

Copy link
Copy Markdown
Author

@mergify backport lyrical

@mergify

mergify Bot commented Sep 8, 2026

Copy link
Copy Markdown

backport lyrical

✅ Backports have been created

Details

Cherry-pick of 0d06209 has failed:

On branch mergify/bp/lyrical/pr-56
Your branch is up to date with 'origin/lyrical'.

You are currently cherry-picking commit 0d06209.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   CMakeLists.txt

no changes added to commit (use "git add" and/or "git commit -a")

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

David-LP99 pushed a commit that referenced this pull request Sep 8, 2026
Signed-off-by: David Laseca Perez <davidlaseca@eprosima.com>
David-LP99 added a commit that referenced this pull request Sep 8, 2026
* micro-ROS changes over dashing

* Added and updated security directory (#1)

* RCUTILS_NO_FILESYSTEM and RCUTILS_AVOID_DYNAMIC_ALLOCATION (#2)
  - No filesystem options; default allocators write access
  - Avoid dynamic allocation and no filesystem on error handling
  - Error handling template; new allocator approach

* Add test_security_directory test from rcl (#3)

* Zephyr fixes (#4)

* CMake refactor (#5)

* Update approach (#6)
  - Remove target_compile_definitions and refactor flags install
  - Added RCUTILS_NO_FILESYSTEM on new functions

* Updates 17092020

* Fix atomics 64bits (#9)
  - Add hashing and lock pool

* Updates 09102020

* Release micro-ROS Foxy (#8)
  - Update filesystem; adjust logger level; cleaning

* Remove build warning (#10) - avoid not used warnings

* Reduce error handling static size (#14) (#15)

* Revert "Revert "Install headers to include/${PROJECT_NAME} (ros2#351)""

* Fix atomic 64 b description (#17) (#18)

* Add fork checker for humble

* Don't link dl library when not needed (#28)

* Revert "Set hints to find the python version we actually want. (ros2#451)"

* Fix struct tm init

* Add PRId64

* Don't export dl library when not used (#33) (#34)

* Remove unnecessary folder (#42)

* Update CI (backport #43) (#46)
  - Add CI and nightly for each distro; update git version; skip tests
  - Change nightly to weekly; change master to rolling in fork checker

* Add RCUTILS_NO_PROCESS_SUPPORT option to build without fork/exec/wait (#50)

* Update CI (#51)

* Fix thread issues added upstream (backport #56) (#57)

Dropped during the rebase as superseded by upstream:
* Don't export dl library when not used (#33) (#34)

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
Co-authored-by: Jose Antonio Moral <joseantoniomoralparras@gmail.com>
Co-authored-by: Blazej Sowa <bsowa123@gmail.com>
Co-authored-by: Anton Casas <antoncasas@eprosima.com>
Co-authored-by: Eugenio Collado <eugeniocollado@eprosima.com>
Co-authored-by: Carlos Espinoza Curto <148376273+Carlosespicur@users.noreply.github.com>
Co-authored-by: Jimmy McElwain <jimmy.mcelwain@motoman.com>
Signed-off-by: David Laseca <davidlaseca@eprosima.com>
David-LP99 added a commit that referenced this pull request Sep 8, 2026
* micro-ROS changes over dashing

* Added and updated security directory (#1)

* RCUTILS_NO_FILESYSTEM and RCUTILS_AVOID_DYNAMIC_ALLOCATION (#2)
  - No filesystem options; default allocators write access
  - Avoid dynamic allocation and no filesystem on error handling
  - Error handling template; new allocator approach

* Add test_security_directory test from rcl (#3)

* Zephyr fixes (#4)

* CMake refactor (#5)

* Update approach (#6)
  - Remove target_compile_definitions and refactor flags install
  - Added RCUTILS_NO_FILESYSTEM on new functions

* Updates 17092020

* Fix atomics 64bits (#9)
  - Add hashing and lock pool

* Updates 09102020

* Release micro-ROS Foxy (#8)
  - Update filesystem; adjust logger level; cleaning

* Remove build warning (#10) - avoid not used warnings

* Reduce error handling static size (#14) (#15)

* Revert "Revert "Install headers to include/${PROJECT_NAME} (ros2#351)""

* Fix atomic 64 b description (#17) (#18)

* Add fork checker for humble

* Don't link dl library when not needed (#28)

* Revert "Set hints to find the python version we actually want. (ros2#451)"

* Fix struct tm init

* Add PRId64

* Don't export dl library when not used (#33) (#34)

* Remove unnecessary folder (#42)

* Update CI (backport #43) (#46)
  - Add CI and nightly for each distro; update git version; skip tests
  - Change nightly to weekly; change master to rolling in fork checker

* Add RCUTILS_NO_PROCESS_SUPPORT option to build without fork/exec/wait (#50)

* Update CI (backport #51) (#54)

* Fix thread issues from upstream (#56)

Dropped during the rebase as superseded by upstream:
* Don't export dl library when not used (#33) (#34)

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
Co-authored-by: Jose Antonio Moral <joseantoniomoralparras@gmail.com>
Co-authored-by: Blazej Sowa <bsowa123@gmail.com>
Co-authored-by: Anton Casas <antoncasas@eprosima.com>
Co-authored-by: Eugenio Collado <eugeniocollado@eprosima.com>
Co-authored-by: Carlos Espinoza Curto <148376273+Carlosespicur@users.noreply.github.com>
Co-authored-by: Jimmy McElwain <jimmy.mcelwain@motoman.com>
Signed-off-by: David Laseca <davidlaseca@eprosima.com>
David-LP99 added a commit that referenced this pull request Sep 8, 2026
* micro-ROS changes over dashing

* Added and updated security directory (#1)

* RCUTILS_NO_FILESYSTEM and RCUTILS_AVOID_DYNAMIC_ALLOCATION (#2)
  - No filesystem options; default allocators write access
  - Avoid dynamic allocation and no filesystem on error handling
  - Error handling template; new allocator approach

* Add test_security_directory test from rcl (#3)

* Zephyr fixes (#4)

* CMake refactor (#5)

* Update approach (#6)
  - Remove target_compile_definitions and refactor flags install
  - Added RCUTILS_NO_FILESYSTEM on new functions

* Updates 17092020

* Fix atomics 64bits (#9)
  - Add hashing and lock pool

* Updates 09102020

* Release micro-ROS Foxy (#8)
  - Update filesystem; adjust logger level; cleaning

* Remove build warning (#10) - avoid not used warnings

* Reduce error handling static size (#14) (#15)

* Revert "Revert "Install headers to include/${PROJECT_NAME} (ros2#351)""

* Fix atomic 64 b description (#17) (#18)

* Add fork checker for humble

* Don't link dl library when not needed (#28)

* Revert "Set hints to find the python version we actually want. (ros2#451)"

* Fix struct tm init

* Add PRId64

* Don't export dl library when not used (#33) (#34)

* Remove unnecessary folder (#42)

* Update CI (backport #43) (#46)
  - Add CI and nightly for each distro; update git version; skip tests
  - Change nightly to weekly; change master to rolling in fork checker

* Add RCUTILS_NO_PROCESS_SUPPORT option to build without fork/exec/wait (#50)

* Update CI (#51)

* Fix thread issues added upstream (backport #56) (#57)

* Fix weekly CI (backport #58) (#60)

Dropped during the rebase as superseded by upstream:
* Don't export dl library when not used (#33) (#34)

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
Co-authored-by: Jose Antonio Moral <joseantoniomoralparras@gmail.com>
Co-authored-by: Blazej Sowa <bsowa123@gmail.com>
Co-authored-by: Anton Casas <antoncasas@eprosima.com>
Co-authored-by: Eugenio Collado <eugeniocollado@eprosima.com>
Co-authored-by: Carlos Espinoza Curto <148376273+Carlosespicur@users.noreply.github.com>
Co-authored-by: Jimmy McElwain <jimmy.mcelwain@motoman.com>
Signed-off-by: David Laseca <davidlaseca@eprosima.com>
David-LP99 added a commit that referenced this pull request Sep 8, 2026
* micro-ROS changes over dashing

* Added and updated security directory (#1)

* RCUTILS_NO_FILESYSTEM and RCUTILS_AVOID_DYNAMIC_ALLOCATION (#2)
  - No filesystem options; default allocators write access
  - Avoid dynamic allocation and no filesystem on error handling
  - Error handling template; new allocator approach

* Add test_security_directory test from rcl (#3)

* Zephyr fixes (#4)

* CMake refactor (#5)

* Update approach (#6)
  - Remove target_compile_definitions and refactor flags install
  - Added RCUTILS_NO_FILESYSTEM on new functions

* Updates 17092020

* Fix atomics 64bits (#9)
  - Add hashing and lock pool

* Updates 09102020

* Release micro-ROS Foxy (#8)
  - Update filesystem; adjust logger level; cleaning

* Remove build warning (#10) - avoid not used warnings

* Reduce error handling static size (#14) (#15)

* Revert "Revert "Install headers to include/${PROJECT_NAME} (ros2#351)""

* Fix atomic 64 b description (#17) (#18)

* Add fork checker for humble

* Don't link dl library when not needed (#28)

* Revert "Set hints to find the python version we actually want. (ros2#451)"

* Fix struct tm init

* Add PRId64

* Don't export dl library when not used (#33) (#34)

* Remove unnecessary folder (#42)

* Update CI (backport #43) (#46)
  - Add CI and nightly for each distro; update git version; skip tests
  - Change nightly to weekly; change master to rolling in fork checker

* Add RCUTILS_NO_PROCESS_SUPPORT option to build without fork/exec/wait (#50)

* Update CI (backport #51) (#54)

* Fix thread issues from upstream (#56)

* Fix weekly CI (backport #58) (#59)

Dropped during the rebase as superseded by upstream:
* Don't export dl library when not used (#33) (#34)

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
Co-authored-by: Jose Antonio Moral <joseantoniomoralparras@gmail.com>
Co-authored-by: Blazej Sowa <bsowa123@gmail.com>
Co-authored-by: Anton Casas <antoncasas@eprosima.com>
Co-authored-by: Eugenio Collado <eugeniocollado@eprosima.com>
Co-authored-by: Carlos Espinoza Curto <148376273+Carlosespicur@users.noreply.github.com>
Co-authored-by: Jimmy McElwain <jimmy.mcelwain@motoman.com>
Signed-off-by: David Laseca <davidlaseca@eprosima.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants