On Friday, March 15, 2019 12:39:26 AM EDT Khem Raj wrote: > On Thu, Mar 14, 2019 at 1:05 PM Mark Asselstine > > <mark.asselst...@windriver.com> wrote: > > When building GO packages for ARM (v5, v6, v7) it is expected that the > > GOARM env variable is set during the build. Not having GOARM exported > > will result in GO binaries which can't be executed on the target > > (terminate with segfault). Per https://github.com/golang/go/wiki/GoArm > > > > We already have the logic in goarch.bbclass to determine the correct > > value of GOARM (see GOARM_TARGET), but currently this is only used to > > build go itself (go-cross_1.*.bb requires go-cross.inc --> export > > GOARM = "${TARGET_GOARM}"). > > > > Here we export GOARM but we do it such that it is only exported if we > > are building for 'arm' and only when recipes requiring/inheriting > > go.bbclass are be used to build for the target. > > > > Signed-off-by: Mark Asselstine <mark.asselst...@windriver.com> > > --- > > > > V2 > > * Avoid potential undefined situations > > > > meta/classes/go.bbclass | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass > > index af331f8..5af4c3e 100644 > > --- a/meta/classes/go.bbclass > > +++ b/meta/classes/go.bbclass > > @@ -8,6 +8,10 @@ GOROOT = "${STAGING_LIBDIR}/go" > > > > export GOROOT > > export GOROOT_FINAL = "${libdir}/go" > > > > +GOARM[export] = "0" > > +GOARM_arm_class-target = "${TARGET_GOARM}" > > +GOARM_arm_class-target[export] = "1" > > + > > while this works, I think it would be nicer to handle it for all > > export GOHOSTOS = "${BUILD_GOOS}" > export GOHOSTARCH = "${BUILD_GOARCH}" > export GOOS = "${TARGET_GOOS}" > export GOARCH = "${TARGET_GOARCH}" > export GOARM = "${TARGET_GOARM}" > export GO386 = "${TARGET_GO386}" > export GOMIPS = "${TARGET_GOMIPS}" > > these should all be replicated into bbclass.
I had thought about doing this but was using GOARM as a trial balloon as I had a suitable build and testcase handy to sort through any issues. I will come back around to these as I get time, if that's OK with folks. MarkA > > > DEPENDS_GOLANG_class-target = "virtual/${TUNE_PKGARCH}-go > > virtual/${TARGET_PREFIX}go-runtime" DEPENDS_GOLANG_class-native = > > "go-native" > > DEPENDS_GOLANG_class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk > > virtual/${TARGET_PREFIX}go-runtime"> > > -- > > 2.7.4 > > > > -- > > _______________________________________________ > > Openembedded-core mailing list > > Openembedded-core@lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core