News from our smart team...

Enhancing the Golang support in Yocto Project - part 1

Sep 12, 2017

Enhancing the Golang support in Yocto Project We have been using the Golang here at O.S. Systems for multiple projects, especially our UpdateHub project which is on heavy development. Because of this work we have identified a few areas where the Golang support could be improved on Yocto Project, mainly:

  • Multiple layers for providing support for Golang, like oe-meta-go, meta-golang, meta-virtualization and others;
  • Different levels of quality of integration of Golang on those layers;
  • Lack of SDK support on the OpenEmbedded-Core current integration.

After evaluating the current Golang support on OpenEmbedded-Core (added on the Pyro development cycle), oe-meta-go and meta-golang, we found that Matt Madison <matt@madison.systems> has done an outstanding job on meta-golang layer lately, so we contacted him to work on integrating his work back to OpenEmbedded-Core and we have succeed!

Short log of changes

So far, we have already merged a number of improvements on OpenEmbedded-Core, which can be seen below:

Matt Madison (4):
      go.bbclass: exported function cleanup
      go.bbclass: separate ${S} and ${B}
      go.bbclass: add do_unpack function to handle common cases
      go.bbclass: add GO_INSTALL_FILTEROUT variable

Otavio Salvador (8):
      goarch.bbclass: Stop passing True as second argument of d.getVar
      go.bbclass: Fix binary installation path detection
      go: Remove Go 1.6 and 1.7 releases
      goarch.bbclass: Add support for ARMv5
      go.bbclass: Use a global Go build flags
      go.bbclass: Enable parallel build
      go.bbclass: Use an auxiliary variable to add the build dependencies
      go-dep: Add 0.3.0 release

Now we are working on integrating the SDK support and dynamic linking onto OpenEmbedded-Core. Stay tuned for more! ;-)