Commit Graph

6 Commits

Author SHA1 Message Date
Paul Barker
001f8ee0ad go: Export correct GO386 value for target
When compiling go code for the target we need to ensure that GO386 is exported
and set appropriately. This controls whether sse/sse2 instructions are used to
implement floating-point operations or not.

(From OE-Core rev: eba5fd5f594d65d311fa7564fa4b243248cb212a)

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-16 23:52:44 +01:00
Matt Madison
39da5f3e13 go-runtime: prevent host leakage into target objects
When building for a target whose architecture matches
the build host's, the second pass through make.bash
to build the shareable runtime would also overwrite
the target's static cgo library with host-compatibile
binaries.

Fix this by running the host-side build once and
target-only passes of make.bash twice, for static
and shareable.  This ensures that what gets installed
is target-compatible.

Also fix an issue with x86-64 targets running MUSL by
removing the pre-built (for glibc) objects for the
race detector runtime before building.

[YOCTO #12136]

(From OE-Core rev: 070f4af529c84a3c8c0b1ffc7b138bdd9e8439b7)

Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-07 23:20:39 +01:00
Matt Madison
975246ffe6 go: fix linking issues for nativesdk builds
Switch to using an external linker for nativesdk
go, go-runtime, and go package builds, which works
more reliably when building 32-bit SDKs.

(From OE-Core rev: f76779f7ef6636355a5aa5741a736f5234a67fdb)

Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-21 09:05:50 +01:00
Matt Madison
5c06801655 go-runtime: build the Go runtime as a shared library
If the target architecture supports, it build the Go
runtime as a shared library in addition to building
the static libraries.

(From OE-Core rev: f562b5e91c12ab67140de537ea269fe1ac85a764)

Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-14 11:35:45 +01:00
Matt Madison
b75fef21d1 go-runtime: extend to nativesdk builds
Missed this when addding SDK support.

(From OE-Core rev: ee80c21d12d12dc262d4b02aaaef3b57253b25df)

Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-14 11:35:45 +01:00
Matt Madison
9060b87711 go: split out go-runtime into separate recipe
Reorganize the Go toolchain build to split out
the Go standard runtime libraries into a separate
recipe.  This simplifies the extension to crosssdk
and cross-canadian builds.

* Adds a patch to the go build tool to prevent it
  from trying to rebuild anything in GOROOT, which
  is now resident in the target sysroot.

* 'go' bb and inc files are now for building the
  compiler for the target only.

* 'go-cross' bb and inc files are now just for
  the cross-compiler.

* Adds virtual/<prefix> PROVIDES for the compiler
  and runtime

* Removes testdata directories from the sysroot
  during staging, as they are unnecessary and
  can cause strip errors (some of the test files
  are ELF files).

* Re-enables pacakage QA checks, adding selective
  INSANE_SKIP settings where needed.

(From OE-Core rev: d2a7af7cd834e218c39d43ee3fa0c14d4f748727)

Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-12 23:55:29 +01:00