
ROS Comm now depends on a non-catkin package, console_bridge. This means catkin_make no longer works. Unfortunately, I can't convince catkin to use my cross compile toolchain when using catkin_make_isolated, so I just end up with host-binaries.
I'm cross compiling ROS Comm Hydro for an i.MX53 Cortex A8 ARM board. I had configured yujin_tools (thanks Daniel) to cross-compile the ROS Comm sources before the console_bridge dependency existed. Now, "yujin_make" (which calls catkin_make) no longer works.
How can I convince yujin and/or catkin to build ROS Comm with my xc toolchain?
~/ros_yws/digi $ yujin_make #### #### Running command: "cmake /home/robonaut/ros_yws/digi/src -DCMAKE_TOOLCHAIN_FILE=/home/robonaut/ros_yws/digi/toolchain.cmake -C/home/robonaut/ros_yws/digi/config.cmake" in "/home/robonaut/ros_yws/digi/build" #### loading initial cache file /home/robonaut/ros_yws/digi/config.cmake -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/local/DigiEL-5.9/x-tools/arm-cortex_a8-linux-gnueabi/bin/arm-cortex_a8-linux-gnueabi-gcc -- Check for working C compiler: /usr/local/DigiEL-5.9/x-tools/arm-cortex_a8-linux-gnueabi/bin/arm-cortex_a8-linux-gnueabi-gcc -- works ...snip... CMake Error at catkin/cmake/catkin_workspace.cmake:88 (message): This workspace contains non-catkin packages in it, and catkin cannot build a non-homogeneous workspace without isolation. So yujin_make uses the toolchain correctly, but catkin doesn't like console_bridge.
~/ros_yws/digi $ yujin_make_isolated ...snip... ==> Processing catkin package: 'catkin' ==> Creating build directory: 'build_isolated/catkin' ==> cmake /home/robonaut/ros_yws/native/src/catkin -DCATKIN_DEVEL_PREFIX=/home/robonaut/ros_yws/native/devel_isolated/catkin -DCMAKE_INSTALL_PREFIX=/home/robonaut/ros_yws/native/install_isolated in '/home/robonaut/ros_yws/native/build_isolated/catkin' -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works ...snip... ~/ros_yws/digi $ file devel_isolated/console_bridge/lib/libconsole_bridge.so devel_isolated/console_bridge/lib/libconsole_bridge.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x6d0102a6e7bbb8584315b962cdb8c023aea2137f, not stripped But yujin_make_isolated fails to use the toolchain, even though catkin is happy.
Originally posted by dustingooding on ROS Answers with karma: 139 on 2014-01-23
Post score: 0
Original comments
Comment by dustingooding on 2014-01-23:
If I convert console_bridge into a catkin package, things work swimmingly. But I assume it's not a catkin package on purpose... hm.
https://github.com/dustingooding/console_bridge-release/tree/feature/catkin