summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/go
Commit message (Collapse)AuthorAgeFilesLines
* go-runtime: prevent host leakage into target objectsMatt Madison2017-10-071-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* meta: drop True option to getVar callsMing Liu2017-09-264-4/+4
| | | | | | | | | Search made with the following regex: getVar ?\((.*), True\). (From OE-Core rev: dbc0eaf478feb3f752ae22fd184984494fc85d0a) Signed-off-by: Ming Liu <liu.ming50@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: Fix build with -buildmode=pieKhem Raj2017-09-262-0/+48
| | | | | | | (From OE-Core rev: f080dafbbba31686fddb0867cadb8dfe273632f3) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go_1.9: remove obsolete overridesMatt Madison2017-09-261-2/+0
| | | | | | | | | | | | Now that mips and security flags fixes are in place in the bbclasses, remove the local settings in this recipe. (From OE-Core rev: 8a6b6c76dfc73aa6690f09dc2e0c16b81155f2d6) Signed-off-by: Matt Madison <matt@madison.systems> Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: disable PIE flags for cgoMatt Madison2017-09-261-0/+3
| | | | | | | | | | | | If the security_flags.inc file is included, gcc will do PIE builds by default. These flags need to be disabled for go packages that use cgo. (From OE-Core rev: 5d84042852380fc88b9be8df0e4eeac612c2a6da) Signed-off-by: Matt Madison <matt@madison.systems> Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: fixes for cross-canadian buildsMatt Madison2017-09-213-22/+52
| | | | | | | | | | | | | | | | | | | | * Add patch for go's make script to allow for build system != host system * Add dependencies on the appropriate crosssdk recipes, and use the crosssdk C compiler and linker * Remove bashism in the wrapper script * Restrict installation to only the tool binaries to address some packaging errors (From OE-Core rev: e2171f14a2dbf630a926a6792f6e6355f80e18b1) 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>
* go: fix linking issues for nativesdk buildsMatt Madison2017-09-212-0/+8
| | | | | | | | | | | | | 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>
* go-crosssdk: fix host/target references and cleanupMatt Madison2017-09-211-6/+5
| | | | | | | | | | | | | | | | * The _FOR_TARGET variables need to include SDKNATIVEPATH * Install tools (cmd) only, and for the build host * Remove unnecessary FILES setting Corrects some errors when the build host architecture is different from the SDKMACHINE's. (From OE-Core rev: 94cfa563388fb39e6a409eefcae1598a9d426a5c) 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>
* go: update to go 1.9Matt Madison2017-09-1424-253/+301
| | | | | | | | | | | | | | | | | * Rebased patches - dropped armhf-elf patch, should no longer be needed - dropped syslog patch which should not have been imported to begin with - reworked other patches as needed for the updated code base * Updated native, cross, cross-canadian .inc files to remove some testdata directories that contain .a files that strip chokes on during sysroot staging (From OE-Core rev: f2ccf56778433ec16f44eecaa10a610a6630df50) 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>
* go.bbclass: Add "ldflags" to QA skip listOtavio Salvador2017-09-141-2/+0
| | | | | | | | | | | Currently every Go package will end with GNU_HASH in the ELF binary however adding it to every recipe is cumbersome so instead we handle that here. (From OE-Core rev: 6699e668413c10704ffa8094b3dca67a9b88422a) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go-runtime: build the Go runtime as a shared libraryMatt Madison2017-09-141-2/+22
| | | | | | | | | | | | 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>
* go-1.8: add patch for set soname in ELF shared objectsMatt Madison2017-09-142-0/+45
| | | | | | | | | | | | | | | The go link tool does not set the soname by default, which prevents package.bbclass's shlibs processing from seeing shared libraries built with go. This patch passes appropriate options to go's linker and the external linker to set the soname. (From OE-Core rev: 24c2ac446296663b86160cac046e7faccb19f5af) 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>
* go-runtime: extend to nativesdk buildsMatt Madison2017-09-141-0/+3
| | | | | | | | | | 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>
* go-cross-canadian: add recipeMatt Madison2017-09-124-0/+89
| | | | | | | | | | | | Enable cross-canadian builds of the Go toolchain. This requires an additional patch to the Go source to allow us to use the native GOTOOLDIR during the bootstrap phase. (From OE-Core rev: 9daa02f63a0d53ab90a515f2bd3e783187c9415b) 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>
* go-crosssdk: add recipeMatt Madison2017-09-122-0/+57
| | | | | | | | | | Enable crosssdk builds for the Go toolchain. (From OE-Core rev: 5dbca2ab4ab9fdd200bbc8eb0572098e6fdbac84) 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>
* go: enable nativesdk builds for the toolchainMatt Madison2017-09-121-0/+3
| | | | | | | | | | All that's needed is setting BBCLASSEXTEND. (From OE-Core rev: 32438dce21689f6d6352486d6ad377d86fd90a1f) 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>
* go-cross: take GOARM environment settingMatt Madison2017-09-121-1/+1
| | | | | | | | | | | | | | Instead of hard-coding GOARM to ${TARGET_GOARM} in the wrapper script, take it from an existing environment setting if present. This allows the same cross-compiler to be used for different ARM targets. (From OE-Core rev: 1d319f102cd1f37ce5629c73948efae01478f866) 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>
* go: rename go.inc -> go-target.incMatt Madison2017-09-122-1/+1
| | | | | | | | | | | to make it clearer that it is only used for building the toolchain for the target. (From OE-Core rev: 780aa334f8614c80ce5b9cb77b0cea2fcd482614) 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>
* go-dep: Move bash dependency to -dev packageOtavio Salvador2017-09-121-1/+1
| | | | | | | | | | The src content has been moved to -dev package, so does the test routines. Fix the runtime dependency accordingly. (From OE-Core rev: 53bbd2222027b7bbca8df066a8a9a58355ae0f91) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: split out go-runtime into separate recipeMatt Madison2017-09-127-61/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* go-bootstrap-native: remove recipeMatt Madison2017-09-126-363/+0
| | | | | | | | | | | No longer needed, with go-native handling its own bootstrap phase. (From OE-Core rev: d9f54865ac90ed8d39a70b7989b1bf43ab26e248) 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>
* go-native: remove dependency on go-bootstrap-nativeMatt Madison2017-09-125-27/+32
| | | | | | | | | | | | | | | | | | | | The go1.4 toolchain is only required for bootstrapping go-native, and should not be used for anything else, so build it as part of the go-native build. This way, we don't have to carry around its built artifacts in the native sysroot. The go-cross and target toolchains can then just depend on go-native, using that for their 'bootstrap' toolchain. Also removed some unnecessary package-related noexec settings, since native recipes inherit nopackages. (From OE-Core rev: 9dc9d457fb9a456bc18c7789b91f40e1f6a999fe) 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>
* go-dep: Add 0.3.0 releaseOtavio Salvador2017-09-111-0/+18
| | | | | | | | | | | | | This is the Golang dependency management tool under development; it is ready for production use and intended to be merged onto Golang 1.10. Until that, projects are starting to use it and making it available on OE-Core reduces the Golang integration work for new recipes. (From OE-Core rev: 79e0401fa463736f28ad39f2f98cd23d8fd6fe88) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: Remove Go 1.6 and 1.7 releasesOtavio Salvador2017-09-1117-538/+0
| | | | | | | | | | | | | | The OE-Core has no reason to support multiple versions of Go as this increases the maintenance work and testing efforts. So we are going to support just a single version from now on which currently is 1.8.3. The 1.4 release is kept around as it is used for bootstrap, as such, it cannot be removed. (From OE-Core rev: 26abbf129d7ca0d36f6244f96fa8a572fd847899) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: Remove -fPIE -pie from SECURITY_PIE_CFLAGSKhem Raj2017-08-091-0/+1
| | | | | | | | | | | | | | | External compilers will explicitly pass -fPIE -pie flags unlike internal toolchain which does not use them, so the build fails with external toolchains because, its passing these flags to linker when building with -r option and fails to link | /mnt/a/oe/build/tmp/work/corei7-64-bec-linux/go/1.8.3-r0/recipe-sysroot-native/usr/bin/x86_64-bec-linux/x86_64-bec-linux-ld: -r and -pie may not be used together (From OE-Core rev: bb89849b5edb05a953586d190826a67ba87c1c5a) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: centralize definition of COMPATIBLE_HOSTJoe Slater2017-07-272-10/+0
| | | | | | | | | Put it in goarch.bbclass which all go related recipes inherit. (From OE-Core rev: 9e899bbc081cb932c1492f6d6802b908d70ef42f) Signed-off-by: Joe Slater <jslater@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: do not try to build for powerpc64Joe Slater2017-06-091-1/+2
| | | | | | | | | | Add powerpc64 to the incompatible host list. (From OE-Core rev: 358c2daee23eaa778e6a4f356b05b2d5a248fdd1) Signed-off-by: Joe Slater <jslater@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: Upgrade to 1.8.3Khem Raj2017-06-052-5/+6
| | | | | | | | | | Add a comment to fix build musl<->glibc switch while using same TMPDIR (From OE-Core rev: bc940753ee4af8c656f33d63e33c3d12d419446e) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipes/*-cross recipes: ignore TARGET_ARCH sstate hashPatrick Ohly2017-04-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | "yocto-compat-layer.py --machines" showed that shared packages like gcc-cross-powerpc64 have a sstate signature that depends on TUNEFLAGS. As a result, there are unnecessary rebuilds and potential conflicts in a multiconfig. That's due to the way how TARGET_ARCH is set. Richard Purdie suggested setting TARGET_ARCH[vardepvalue] as fix, which works. It would be shorter to do that in cross.bbclass instead of repeating the relevant line in different recipes, but Richard was concerned about potential side-effects in other usages of cross.bbclass. TARGET_GOARM as used in go.inc is still causing signature differences for go-cross-powerpc64 and machines b4420qds-64b and p5020ds-64b. This needs further investigation. (From OE-Core rev: 39bfa0dd3237cbca47e7fca1075d521f9d073f25) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go-cross: avoid libgcc dependencyPatrick Ohly2017-04-121-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | libgcc gets compiled differently depending on the tune flags for the target. That dependency would make go-cross also tune specific and prevent sharing it between different machines using the same architecture. For example, MACHINE=intel-corei7-64 and MACHINE=qemux86-64 shared the same go-cross-x86_64, but compiled libgcc differently. The libgcc dependency gets inherited from go.inc, but does not seem to be necessary for go-cross (compiling go-helloworld still succeeds). The dependency is left in go.inc conditionally, just in case that it really is relevant for the various on-target recipes which inherit that. Because go-cross*.bb includes go*.bb, moving the DEPENDS into a .inc file that only gets included for the target recipes doesn't work. Reshuffling the content of three .bb files seems too intrusive at this point. (From OE-Core rev: 58149a7be4172074349951aaf5af95fa40fd4bdb) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go-native: Install bootstrap binaries with 1.4 suffixKhem Raj2017-03-221-6/+6
| | | | | | | | | | | | | | Currently, bin/go and bin/gofmt collide between go-native and go-bootstrap-native packages, these are scripts anyway which call the go compiler proper from right install, in this case create go1.4 and gofmt1.4 names for these scripts to avoid namespace collision (From OE-Core rev: c46faa132d39d3dc235a019d9abf6e46f74e3bae) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: Remove mips32r2 from mipsKhem Raj2017-03-171-0/+1
| | | | | | | | | mips32r1 is only one supported for mips32 (From OE-Core rev: d39b819579c767aa7892835624540fd6509db201) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: Fix packaging for target goKhem Raj2017-03-171-7/+1
| | | | | | | | | | We need all packaging tasks when building go for target (From OE-Core rev: 8f504a7737d5e6be6ec61f9ce8728a2c74102a8a) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: add native recipes for 1.8Khem Raj2017-03-144-9/+15
| | | | | | | (From OE-Core rev: 13a5c3dac4b5b0ccb4c5dfebf79b468acd8e1983) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: Enable on muslKhem Raj2017-03-142-4/+0
| | | | | | | | | Working fine for musl targets now (From OE-Core rev: 1bab5be8133f62cdae251e66db6f472c3c37297c) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: Add recipes for golang compilers and toolsKhem Raj2017-03-1036-0/+1350
* This is converging the recipes for go from meta-virtualization and oe-meta-go * Add recipes for go 1.7 * go.bbclass is added to ease out writing recipes for go packages * go-examples: Add an example, helloworld written in go This should serve as temlate for writing go recipes * Disable for musl, at least for now * Disable for x32/ppc32 which is not supported (From OE-Core rev: 78615e9260fb5d6569de4883521b049717fa4340) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>