go-native: rename to go-initial-native

With the new per recipe sysroots we were having build issues since the
bootstrap version of go (go-native 1.4) was being found and not the
go-cross (1.6) we are expecting. This results in errors such as the
following when building packages such as containerd:

  _cgo_.o: decoding dwarf section info at offset 0x4: unsupported version 0

This is caused by the dependency tree built up to prepare the per
recipe sysroot. Since recipes like containerd DEPEND on go-cross and
go-cross DEPENDS on go-native both are installed but unlike the old
global sysroot the dependency parsing order results in go-native being
last, overwriting go-cross. You can see this by running a devshell for
containerd and running 'go version'.

By adding '-initial' in the name we exploit functionality in
sstate.bbclass that is already in place to handle gcc-initial and
similar. This results in only explicit DEPENDS on go-native being
enforced, so in the case of containerd we only get a dependency on
go-cross and we therefor get go 1.6 as expected.

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
This commit is contained in:
Mark Asselstine 2017-02-08 12:53:26 -05:00 committed by Bruce Ashfield
parent ee0b5e316a
commit d475adc71b
2 changed files with 3 additions and 1 deletions

View File

@ -1,7 +1,9 @@
inherit cross
# libgcc is required for the target specific libraries to build properly
DEPENDS += "go-native libgcc virtual/${TARGET_PREFIX}gcc"
DEPENDS += "go-initial-native libgcc virtual/${TARGET_PREFIX}gcc"
do_compile[depends] += "go-initial-native:do_populate_sysroot"
# Prevent runstrip from running because you get errors when the host arch != target arch
#INHIBIT_PACKAGE_STRIP = "1"