Open phildue opened 2 years ago
When trying to build "foxy" or "galactic" for armhf, the compilation of various packages fails.
It should be possible to compile the latest ros2 distribution for armhf architecture, similar to aarch64.
clear and concise description of what actually happened. include copied logs whenever possible
pip3 install ros_cross_compile sudo apt install python3-rosinstall-generator mkdir ws cd ws rosinstall_generator --deps --rosdistro galactic ros_base ros_cross_compile $(pwd) --arch armhf --os ubuntu --rosdistro galactic --skip-rosdep-keys libopensplice67 console_bridge rosbag2_py urdfdom_headers fastcdr --colcon-defaults ./colcon.yaml --runtime-tag ros-galactic-base-armhf
colcon.yaml:
list: build: event-handlers: ["console_direct+"]
INFO:Docker Client:Successfully tagged phil/armhf-ubuntu-galactic:latest INFO:ros_cross_compile.sysroot_creator:Successfully created sysroot docker image: phil/armhf-ubuntu-galactic:latest INFO:Docker Client:+ trap cleanup EXIT INFO:Docker Client:+ mkdir -p /opt/ros/galactic INFO:Docker Client:+ touch /opt/ros/galactic/setup.bash INFO:Docker Client:+ set +ux INFO:Docker Client:+ colcon build --mixin armhf-docker --build-base build_armhf --install-base install_armhf INFO:Docker Client:Starting >>> ament_package INFO:Docker Client:Starting >>> ament_lint INFO:Docker Client:Starting >>> gtest_vendor INFO:Docker Client:Starting >>> ament_cppcheck INFO:Docker Client:Starting >>> fastcdr INFO:Docker Client:Starting >>> iceoryx_utils INFO:Docker Client:Starting >>> osrf_pycommon INFO:Docker Client:Starting >>> osrf_testing_tools_cpp INFO:Docker Client:Not searching for unused variables given on the command line. INFO:Docker Client:-- Configuring Fast CDR INFO:Docker Client:-- Version: 1.0.20 INFO:Docker Client:-- To change the version modify the file configure.ac INFO:Docker Client:-- Configuring done INFO:Docker Client:-- Generating done INFO:Docker Client:-- Build files have been written to: /ros_ws/build_armhf/fastcdr INFO:Docker Client:CMake Error at CMakeLists.txt:209 (add_library): INFO:Docker Client: No SOURCES given to target: iceoryx_platform INFO:Docker Client: INFO:Docker Client: INFO:Docker Client:CMake Generate step failed. Build files cannot be regenerated correctly. INFO:Docker Client:Not searching for unused variables given on the command line. INFO:Docker Client:-- Configuring done INFO:Docker Client:--- stderr: iceoryx_utils INFO:Docker Client:CMake Error at CMakeLists.txt:209 (add_library): INFO:Docker Client: No SOURCES given to target: iceoryx_platform INFO:Docker Client: INFO:Docker Client: INFO:Docker Client:CMake Generate step failed. Build files cannot be regenerated correctly. INFO:Docker Client:--- INFO:Docker Client:Failed <<< iceoryx_utils [12.6s, exited with code 1] INFO:Docker Client:Not searching for unused variables given on the command line. INFO:Docker Client:-- Could NOT find libdw (missing: LIBDW_LIBRARY LIBDW_INCLUDE_DIR) INFO:Docker Client:-- Could NOT find libbfd (missing: LIBBFD_LIBRARY LIBBFD_INCLUDE_DIR LIBDL_LIBRARY) INFO:Docker Client:-- Could NOT find libdwarf (missing: LIBDWARF_LIBRARY LIBDWARF_INCLUDE_DIR LIBELF_LIBRARY LIBELF_INCLUDE_DIR LIBDL_LIBRARY) INFO:Docker Client:-- googletest version '1.10.0.1' selected, of versions: '1.10.0;1.10.0.1' INFO:Docker Client:-- building googletest from '/ros_ws/src/osrf_testing_tools_cpp/vendor/google/googletest/release-1.10.0.1.tar.gz'... INFO:Docker Client:Aborted <<< gtest_vendor [13.0s] INFO:Docker Client:Scanning dependencies of target fastcdr INFO:Docker Client:[-42%] Building CXX object src/cpp/CMakeFiles/fastcdr.dir/Cdr.cpp.o INFO:Docker Client:[-42%] Building CXX object src/cpp/CMakeFiles/fastcdr.dir/FastBuffer.cpp.o INFO:Docker Client:[-42%] Building CXX object src/cpp/CMakeFiles/fastcdr.dir/exceptions/NotEnoughMemoryException.cpp.o INFO:Docker Client:[-42%] Building CXX object src/cpp/CMakeFiles/fastcdr.dir/exceptions/Exception.cpp.o INFO:Docker Client:[-42%] Building CXX object src/cpp/CMakeFiles/fastcdr.dir/exceptions/BadParamException.cpp.o INFO:Docker Client:[-42%] Building CXX object src/cpp/CMakeFiles/fastcdr.dir/FastCdr.cpp.o INFO:Docker Client:-- Configuring done INFO:Docker Client:-- Generating done INFO:Docker Client:-- Build files have been written to: /ros_ws/build_armhf/osrf_testing_tools_cpp/googletest-1.10.0.1-extracted INFO:Docker Client:running egg_info INFO:Docker Client:[-33%] Built target googletest INFO:Docker Client:writing ../../build_armhf/osrf_pycommon/osrf_pycommon.egg-info/PKG-INFO INFO:Docker Client:writing dependency_links to ../../build_armhf/osrf_pycommon/osrf_pycommon.egg-info/dependency_links.txt INFO:Docker Client:writing requirements to ../../build_armhf/osrf_pycommon/osrf_pycommon.egg-info/requires.txt INFO:Docker Client:writing top-level names to ../../build_armhf/osrf_pycommon/osrf_pycommon.egg-info/top_level.txt INFO:Docker Client:reading manifest file '../../build_armhf/osrf_pycommon/osrf_pycommon.egg-info/SOURCES.txt' INFO:Docker Client:reading manifest template 'MANIFEST.in' INFO:Docker Client:adding license file 'LICENSE' INFO:Docker Client:writing manifest file '../../build_armhf/osrf_pycommon/osrf_pycommon.egg-info/SOURCES.txt' INFO:Docker Client:running build INFO:Docker Client:running build_py INFO:Docker Client:running install INFO:Docker Client:running install_lib INFO:Docker Client:running install_data INFO:Docker Client:running install_egg_info INFO:Docker Client:removing '/ros_ws/install_armhf/osrf_pycommon/lib/python3.8/site-packages/osrf_pycommon-0.2.1-py3.8.egg-info' (and everything under it) INFO:Docker Client:Copying ../../build_armhf/osrf_pycommon/osrf_pycommon.egg-info to /ros_ws/install_armhf/osrf_pycommon/lib/python3.8/site-packages/osrf_pycommon-0.2.1-py3.8.egg-info INFO:Docker Client:running install_scripts INFO:Docker Client:CMake Error at cmake/osrf_testing_tools_cpp_extract_and_build_googletest.cmake:79 (add_subdirectory): INFO:Docker Client: The source directory INFO:Docker Client: INFO:Docker Client: /ros_ws/build_armhf/osrf_testing_tools_cpp/googletest-1.10.0.1-extracted/googletest-1.10.0.1-src INFO:Docker Client: INFO:Docker Client: does not contain a CMakeLists.txt file. INFO:Docker Client:Call Stack (most recent call first): INFO:Docker Client: cmake/osrf_testing_tools_cpp_require_googletest.cmake:178 (osrf_testing_tools_cpp_extract_and_build_googletest) INFO:Docker Client: cmake/osrf_testing_tools_cpp_require_googletest.cmake:57 (_osrf_testing_tools_cpp_require_googletest) INFO:Docker Client: CMakeLists.txt:24 (osrf_testing_tools_cpp_require_googletest) INFO:Docker Client: INFO:Docker Client: INFO:Docker Client:-- Configuring incomplete, errors occurred! INFO:Docker Client:See also "/ros_ws/build_armhf/osrf_testing_tools_cpp/CMakeFiles/CMakeOutput.log". INFO:Docker Client:See also "/ros_ws/build_armhf/osrf_testing_tools_cpp/CMakeFiles/CMakeError.log". INFO:Docker Client:running egg_info INFO:Docker Client:Aborted <<< osrf_testing_tools_cpp [16.6s] INFO:Docker Client:writing ../../build_armhf/ament_package/ament_package.egg-info/PKG-INFO INFO:Docker Client:writing dependency_links to ../../build_armhf/ament_package/ament_package.egg-info/dependency_links.txt INFO:Docker Client:writing top-level names to ../../build_armhf/ament_package/ament_package.egg-info/top_level.txt INFO:Docker Client:writing list of installed files to '/ros_ws/build_armhf/osrf_pycommon/install.log' INFO:Docker Client:reading manifest file '../../build_armhf/ament_package/ament_package.egg-info/SOURCES.txt' INFO:Docker Client:/usr/local/lib/python3.8/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. INFO:Docker Client: warnings.warn( INFO:Docker Client:adding license file 'LICENSE' INFO:Docker Client:writing manifest file '../../build_armhf/ament_package/ament_package.egg-info/SOURCES.txt' INFO:Docker Client:running build INFO:Docker Client:running build_py INFO:Docker Client:running egg_info INFO:Docker Client:writing ../../../build_armhf/ament_cppcheck/ament_cppcheck.egg-info/PKG-INFO INFO:Docker Client:writing dependency_links to ../../../build_armhf/ament_cppcheck/ament_cppcheck.egg-info/dependency_links.txt INFO:Docker Client:writing entry points to ../../../build_armhf/ament_cppcheck/ament_cppcheck.egg-info/entry_points.txt INFO:Docker Client:writing requirements to ../../../build_armhf/ament_cppcheck/ament_cppcheck.egg-info/requires.txt INFO:Docker Client:writing top-level names to ../../../build_armhf/ament_cppcheck/ament_cppcheck.egg-info/top_level.txt INFO:Docker Client:reading manifest file '../../../build_armhf/ament_cppcheck/ament_cppcheck.egg-info/SOURCES.txt' INFO:Docker Client:Aborted <<< osrf_pycommon [17.0s] INFO:Docker Client:running install INFO:Docker Client:writing manifest file '../../../build_armhf/ament_cppcheck/ament_cppcheck.egg-info/SOURCES.txt' INFO:Docker Client:running build INFO:Docker Client:running build_py INFO:Docker Client:running install_lib INFO:Docker Client:running install INFO:Docker Client:running install_data INFO:Docker Client:running install_lib INFO:Docker Client:running install_egg_info INFO:Docker Client:removing '/ros_ws/install_armhf/ament_package/lib/python3.8/site-packages/ament_package-0.12.0-py3.8.egg-info' (and everything under it) INFO:Docker Client:Copying ../../build_armhf/ament_package/ament_package.egg-info to /ros_ws/install_armhf/ament_package/lib/python3.8/site-packages/ament_package-0.12.0-py3.8.egg-info INFO:Docker Client:running install_data INFO:Docker Client:running install_egg_info INFO:Docker Client:running install_scripts INFO:Docker Client:removing '/ros_ws/install_armhf/ament_cppcheck/lib/python3.8/site-packages/ament_cppcheck-0.10.6-py3.8.egg-info' (and everything under it) INFO:Docker Client:Copying ../../../build_armhf/ament_cppcheck/ament_cppcheck.egg-info to /ros_ws/install_armhf/ament_cppcheck/lib/python3.8/site-packages/ament_cppcheck-0.10.6-py3.8.egg-info INFO:Docker Client:running install_scripts INFO:Docker Client:running egg_info INFO:Docker Client:writing ../../../build_armhf/ament_lint/ament_lint.egg-info/PKG-INFO INFO:Docker Client:writing dependency_links to ../../../build_armhf/ament_lint/ament_lint.egg-info/dependency_links.txt INFO:Docker Client:writing entry points to ../../../build_armhf/ament_lint/ament_lint.egg-info/entry_points.txt INFO:Docker Client:writing requirements to ../../../build_armhf/ament_lint/ament_lint.egg-info/requires.txt INFO:Docker Client:writing top-level names to ../../../build_armhf/ament_lint/ament_lint.egg-info/top_level.txt INFO:Docker Client:Installing ament_cppcheck script to /ros_ws/install_armhf/ament_cppcheck/bin INFO:Docker Client:writing list of installed files to '/ros_ws/build_armhf/ament_cppcheck/install.log' INFO:Docker Client:/usr/local/lib/python3.8/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. INFO:Docker Client: warnings.warn( INFO:Docker Client:reading manifest file '../../../build_armhf/ament_lint/ament_lint.egg-info/SOURCES.txt' INFO:Docker Client:writing manifest file '../../../build_armhf/ament_lint/ament_lint.egg-info/SOURCES.txt' INFO:Docker Client:running build INFO:Docker Client:running build_py INFO:Docker Client:running install INFO:Docker Client:running install_lib INFO:Docker Client:running install_data INFO:Docker Client:running install_egg_info INFO:Docker Client:removing '/ros_ws/install_armhf/ament_lint/lib/python3.8/site-packages/ament_lint-0.10.6-py3.8.egg-info' (and everything under it) INFO:Docker Client:Copying ../../../build_armhf/ament_lint/ament_lint.egg-info to /ros_ws/install_armhf/ament_lint/lib/python3.8/site-packages/ament_lint-0.10.6-py3.8.egg-info INFO:Docker Client:running install_scripts INFO:Docker Client:Aborted <<< ament_cppcheck [17.8s] INFO:Docker Client:writing list of installed files to '/ros_ws/build_armhf/ament_package/install.log' INFO:Docker Client:/usr/local/lib/python3.8/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. INFO:Docker Client: warnings.warn( INFO:Docker Client:Aborted <<< ament_package [18.3s] INFO:Docker Client:writing list of installed files to '/ros_ws/build_armhf/ament_lint/install.log' INFO:Docker Client:/usr/local/lib/python3.8/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. INFO:Docker Client: warnings.warn( INFO:Docker Client:Aborted <<< ament_lint [18.3s] INFO:Docker Client:[-42%] Linking CXX shared library libfastcdr.so INFO:Docker Client:[-42%] Built target fastcdr INFO:Docker Client:Aborted <<< fastcdr [25.8s] INFO:Docker Client: INFO:Docker Client:Summary: 0 packages finished [47.3s] INFO:Docker Client: 1 package failed: iceoryx_utils INFO:Docker Client: 7 packages aborted: ament_cppcheck ament_lint ament_package fastcdr gtest_vendor osrf_pycommon osrf_testing_tools_cpp INFO:Docker Client: 6 packages had stderr output: ament_cppcheck ament_lint ament_package iceoryx_utils osrf_pycommon osrf_testing_tools_cpp INFO:Docker Client: 199 packages not processed INFO:Docker Client:+ cleanup INFO:Docker Client:+ chown -R 1000 . Traceback (most recent call last): File "/home/phil/.local/bin/ros_cross_compile", line 8, in <module> sys.exit(main()) File "/home/phil/.local/lib/python3.8/site-packages/ros_cross_compile/ros_cross_compile.py", line 237, in main cross_compile_pipeline(args, data_collector, platform) File "/home/phil/.local/lib/python3.8/site-packages/ros_cross_compile/ros_cross_compile.py", line 224, in cross_compile_pipeline stage(platform, docker_client, ros_workspace_dir, options, data_collector) File "/home/phil/.local/lib/python3.8/site-packages/ros_cross_compile/builders.py", line 71, in __call__ run_emulated_docker_build(docker_client, platform, ros_workspace_dir) File "/home/phil/.local/lib/python3.8/site-packages/ros_cross_compile/builders.py", line 40, in run_emulated_docker_build docker_client.run_container( File "/home/phil/.local/lib/python3.8/site-packages/ros_cross_compile/docker_client.py", line 139, in run_container raise docker.errors.ContainerError( docker.errors.ContainerError: Command '' in image 'phil/armhf-ubuntu-galactic:latest' returned non-zero exit status 1: See above ^
For aarch64 it works fine.
Please not that this works fine when compiling the same packages directly on an ARM device
Description
When trying to build "foxy" or "galactic" for armhf, the compilation of various packages fails.
Expected Behavior
It should be possible to compile the latest ros2 distribution for armhf architecture, similar to aarch64.
Actual Behavior
clear and concise description of what actually happened. include copied logs whenever possible
To Reproduce
colcon.yaml:
System (please complete the following information)
Additional context
For aarch64 it works fine.