Skip to content

Fix armhf build support#299

Merged
cottsay merged 9 commits intomasterfrom
fix-armhf
Jun 18, 2019
Merged

Fix armhf build support#299
cottsay merged 9 commits intomasterfrom
fix-armhf

Conversation

@nuclearsandwich
Copy link
Copy Markdown
Member

@nuclearsandwich nuclearsandwich commented Jun 3, 2019

This adds more complete armhf support using the armhf images built for the ROS build farm on the native CI linux-arm workers, which support armv7 (armhf) and armv8 (aarch64) natively but are running as armv8 platforms.

Connects to ros2/ros2#721


# Install build dependencies for rviz et al.
RUN apt-get update && apt-get install --no-install-recommends -y libassimp-dev libcurl4-openssl-dev libfreetype6-dev libgles2-mesa-dev libglu1-mesa libqt5core5a libqt5gui5 libqt5opengl5 libqt5widgets5 libxaw7-dev libxrandr-dev qtbase5-dev
RUN apt-get update && apt-get install --no-install-recommends -y libassimp-dev libcurl4-openssl-dev libfreetype6-dev libgles2-mesa-dev libglu1-mesa-dev libqt5core5a libqt5gui5 libqt5opengl5 libqt5widgets5 libxaw7-dev libxrandr-dev qtbase5-dev
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

How is this change related to armhf support?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Before Build Status

After Build Status

I haven't taken the time to figure out what's pulling in the deb package or providing that header for our other platforms.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

07:49:55 In file included from /home/jenkins-agent/workspace/test_ci_linux-armhf/ws/build/rviz_ogre_vendor/ogre-master-ca665a6-prefix/src/ogre-master-ca665a6/RenderSystems/GL/include/OgreGLPrerequisites.h:63:0,
07:49:55                  from /home/jenkins-agent/workspace/test_ci_linux-armhf/ws/build/rviz_ogre_vendor/ogre-master-ca665a6-prefix/src/ogre-master-ca665a6/RenderSystems/GL/src/GLSL/include/OgreGLSLExtSupport.h:34,
07:49:55                  from /home/jenkins-agent/workspace/test_ci_linux-armhf/ws/build/rviz_ogre_vendor/ogre-master-ca665a6-prefix/src/ogre-master-ca665a6/RenderSystems/GL/src/GLSL/src/OgreGLSLExtSupport.cpp:31:
07:49:55 /home/jenkins-agent/workspace/test_ci_linux-armhf/ws/build/rviz_ogre_vendor/ogre-master-ca665a6-prefix/src/ogre-master-ca665a6/RenderSystems/GL/include/GL/glew.h:1180:14: fatal error: GL/glu.h: No such file or directory
07:49:55  #    include <GL/glu.h>
07:49:55               ^~~~~~~~~~

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Member

@cottsay cottsay Jun 17, 2019

Choose a reason for hiding this comment

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

It should have been pulled in as a dependency of qtbase5-dev or libsdl1.2-dev. From a Bionic ARM instance:

$ apt-cache rdepends libglu1-mesa-dev
...
 |libsdl1.2-dev
...
 |qtbase5-dev
...

...the logs show both of those being installed, but the pipe in the apt-cache output indicates there are other options to satisfy that dependency. But the other option (libglu-dev) is a virtual package provided by libglu1-mesa-dev, so I have no idea how they were installed without libglu1-mesa-dev present as well.

@nuclearsandwich
Copy link
Copy Markdown
Member Author

The test_ci_linux-armhf job has been deployed using this branch.

Most recent full build: Build Status
There are required packages not installed on armhf which get installed in our other environments. I've made some changes to improve the situation but more are missing libraries that need to be addressed.

Most recent build passing: Build Status in order to test the armhf opensplice deb I built as much as ROS 2 itself I triggered a build up to test_communication and test_rclcpp with Fast-RTPS and Opensplice. This build has some type size warnings and a glut of GCC ABI change warnings that @clalancette and I haven't quite gotten to the bottom of yet. They don't appear on other platforms because the change affects only armel and armhf targets.

@nuclearsandwich nuclearsandwich added the in review Waiting for review (Kanban column) label Jun 4, 2019
Copy link
Copy Markdown
Member

@cottsay cottsay left a comment

Choose a reason for hiding this comment

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

Looks good, pending fresh CI.

@cottsay
Copy link
Copy Markdown
Member

cottsay commented Jun 18, 2019

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-armhf Build Status
  • macOS Build Status
  • Windows Build Status

@sloretz
Copy link
Copy Markdown
Contributor

sloretz commented Jun 18, 2019

CI LGTM. Windows CI has the same failures as the nightly: https://ci.ros2.org/view/nightly/job/nightly_win_rel/1222/#showFailuresLink

@cottsay cottsay merged commit 6d7c6d4 into master Jun 18, 2019
@delete-merged-branch delete-merged-branch bot deleted the fix-armhf branch June 18, 2019 17:56
@cottsay
Copy link
Copy Markdown
Member

cottsay commented Jun 18, 2019

Deployment complete ✔️

@emersonknapp
Copy link
Copy Markdown
Contributor

Thanks @cottsay for the followup on this!

@emersonknapp
Copy link
Copy Markdown
Contributor

emersonknapp commented Jun 18, 2019

@cottsay deployed, does that mean the environment should be in https://ci.ros2.org/view/All/job/ci_linux-armhf/ ? I am still seeing fatal error: GL/glu.h: No such file or directory when trying that build - https://ci.ros2.org/view/All/job/ci_linux-armhf/6/console

EDIT: My mistake - I accidentally used the wrong CI_SCRIPTS branch from a rebuild. https://ci.ros2.org/job/ci_linux-armhf/9/ got past that

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

in review Waiting for review (Kanban column)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants