Building micro-ROS library
Build mcu micro-ROS environment failed:
--- stderr: rmw_implementation_cmake
CMake Warning:
Manually-specified variables were not used by the project:
BUILD_SHARED_LIBS
CMAKE_POSITION_INDEPENDENT_CODE
THIRDPARTY
---
--- stderr: test_interface_files
CMake Warning:
Manually-specified variables were not used by the project:
BUILD_SHARED_LIBS
CMAKE_POSITION_INDEPENDENT_CODE
THIRDPARTY
---
--- stderr: rosidl_typesupport_interface
CMake Warning:
Manually-specified variables were not used by the project:
CMAKE_POSITION_INDEPENDENT_CODE
THIRDPARTY
---
--- stderr: tracetools
CMake Warning:
Manually-specified variables were not used by the project:
THIRDPARTY
---
--- stderr: rcutils
CMake Warning:
Manually-specified variables were not used by the project:
ENABLE_TESTING
THIRDPARTY
In file included from /root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/error_handling.c:35:
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/./error_handling_helpers.h: In function '__rcutils_convert_uint64_t_into_c_str':
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/./error_handling_helpers.h:109:48: warning: unused parameter 'number' [-Wunused-parameter]
109 | __rcutils_convert_uint64_t_into_c_str(uint64_t number, char * buffer, size_t buffer_size)
| ~~~~~~~~~^~~~~~
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/./error_handling_helpers.h:109:63: warning: unused parameter 'buffer' [-Wunused-parameter]
109 | __rcutils_convert_uint64_t_into_c_str(uint64_t number, char * buffer, size_t buffer_size)
| ~~~~~~~^~~~~~
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/./error_handling_helpers.h:109:78: warning: unused parameter 'buffer_size' [-Wunused-parameter]
109 | __rcutils_convert_uint64_t_into_c_str(uint64_t number, char * buffer, size_t buffer_size)
| ~~~~~~~^~~~~~~~~~~
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/./error_handling_helpers.h: In function '__rcutils_format_error_string':
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/./error_handling_helpers.h:142:28: warning: unused parameter 'error_string' [-Wunused-parameter]
142 | rcutils_error_string_t * error_string,
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/./error_handling_helpers.h:143:33: warning: unused parameter 'error_state' [-Wunused-parameter]
143 | const rcutils_error_state_t * error_state)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/error_handling.c: In function 'rcutils_get_error_string':
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/error_handling.c:240:38: warning: initializer-string for array of 'char' is too long
240 | return (rcutils_error_string_t) {"error not set"}; // NOLINT(readability/braces)
| ^~~~~~~~~~~~~~~
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/error_handling.c:240:38: note: (near initialization for '(anonymous).str')
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/./error_handling_helpers.h: At top level:
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/./error_handling_helpers.h:109:1: warning: '__rcutils_convert_uint64_t_into_c_str' defined but not used [-Wunused-function]
109 | __rcutils_convert_uint64_t_into_c_str(uint64_t number, char * buffer, size_t buffer_size)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/./error_handling_helpers.h:91:1: warning: '__rcutils_reverse_str' defined but not used [-Wunused-function]
91 | __rcutils_reverse_str(char * string_in, size_t string_len)
| ^~~~~~~~~~~~~~~~~~~~~
In function 'rcutils_strndup',
inlined from 'rcutils_strdup' at /root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/strdup.c:35:10:
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/strdup.c:47:14: warning: 'memchr' specified bound 4294967295 exceeds maximum object size 2147483647 [-Wstringop-overread]
47 | char * p = memchr(str, '\0', max_length);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/atomic_64bits.c:53:10: warning: conflicting types for built-in function '__atomic_load_8'; expected 'long long unsigned int(const volatile void *, int)' [-Wbuiltin-declaration-mismatch]
53 | uint64_t __atomic_load_8(uint64_t *mem, int model) {
| ^~~~~~~~~~~~~~~
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/atomic_64bits.c:62:6: warning: conflicting types for built-in function '__atomic_store_8'; expected 'void(volatile void *, long long unsigned int, int)' [-Wbuiltin-declaration-mismatch]
62 | void __atomic_store_8(uint64_t *mem, uint64_t val, int model) {
| ^~~~~~~~~~~~~~~~
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/atomic_64bits.c:70:10: warning: conflicting types for built-in function '__atomic_exchange_8'; expected 'long long unsigned int(volatile void *, long long unsigned int, int)' [-Wbuiltin-declaration-mismatch]
70 | uint64_t __atomic_exchange_8(uint64_t *mem, uint64_t val, int model) {
| ^~~~~~~~~~~~~~~~~~~
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/atomic_64bits.c:80:10: warning: conflicting types for built-in function '__atomic_fetch_add_8'; expected 'long long unsigned int(volatile void *, long long unsigned int, int)' [-Wbuiltin-declaration-mismatch]
80 | uint64_t __atomic_fetch_add_8(uint64_t *mem, uint64_t val, int model) {
| ^~~~~~~~~~~~~~~~~~~~
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/time_unix.c:48:4: warning: #warning before C23 is a GCC extension
48 | # warning no monotonic clock function available
| ^~~~~~~
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/time_unix.c:48:4: warning: #warning no monotonic clock function available [-Wcpp]
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/time_unix.c: In function 'rcutils_system_time_now':
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/time_unix.c:65:7: error: implicit declaration of function 'clock_gettime' [-Wimplicit-function-declaration]
65 | if (clock_gettime(CLOCK_REALTIME, ×pec_now) < 0) {
| ^~~~~~~~~~~~~
gmake[2]: *** [CMakeFiles/rcutils.dir/build.make:432: CMakeFiles/rcutils.dir/src/time_unix.c.obj] Error 1
gmake[2]: *** Waiting for unfinished jobs....
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/logging.c: In function 'rcutils_get_env_var_zero_or_one':
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/logging.c:154:35: warning: unused parameter 'zero_semantic' [-Wunused-parameter]
154 | const char * name, const char * zero_semantic,
| ~~~~~~~~~~~~~^~~~~~~~~~~~~
/root/micro_ros_platformio/examples/micro-ros_publisher/.pio/libdeps/pico/micro_ros_platformio/build/mcu/src/rcutils/src/logging.c:155:16: warning: unused parameter 'one_semantic' [-Wunused-parameter]
155 | const char * one_semantic)
| ~~~~~~~~~~~~~^~~~~~~~~~~~
gmake[1]: *** [CMakeFiles/Makefile2:192: CMakeFiles/rcutils.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
---
Failed <<< rcutils [4.10s, exited with code 2]
Issue template
Steps to reproduce the issue
Try to build a simple script for rp2040 or rp2350, using…
Platformio.ini:
Code:
https://github.com/micro-ROS/micro_ros_platformio/blob/main/examples/micro-ros_publisher/src/Main.cpp
Procedure:
3 Docker debian containers, each with a fresh platformio install.
Dockerfile
run:
Expected behavior
All 3 platforms should build fine.
Actual behavior
https://github.com/maxgerhardt/platform-raspberrypi.git#1ab176cd4d4edd38a156e0c25e12e86ad96b21efShortened log
log_1.txt
https://github.com/maxgerhardt/platform-raspberrypi.gitShortened log
log_2.txt
https://github.com/hippo5329/platform-raspberrypi.gitShortened log
log_3.txt
rp2040 and rp2350 fail in the exact same fashion.
Additional information
Unfortunately I cannot use the older commit version, as it is lacking features I need :(