summaryrefslogtreecommitdiffstats
path: root/meta/classes/goarch.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* Allow global override of golang GO_DYNLINKOliver Kranz2021-08-201-7/+7
| | | | | | | | | | | Small golang applications create massive memory overhead if go-runtime is deployed. So it is helpfull to be able to disable the GO_DYNLINK option on a per distro/local.conf basis by making it a ?= instead of =. (From OE-Core rev: 2a7f5843c4ad2a3bd44bf9c262aacab2931b5677) Signed-off-by: Oliver Kranz <o.kranz.88@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Convert to new override syntaxRichard Purdie2021-08-021-27/+27
| | | | | | | | | | | | This is the result of automated script conversion: scripts/contrib/convert-overrides.py <oe-core directory> converting the metadata to use ":" as the override character instead of "_". (From OE-Core rev: 42344347be29f0997cc2f7636d9603b1fe1875ae) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch: Use softfloat instead of 387 for 386 goarchKhem Raj2021-02-261-1/+1
| | | | | | | | | | | 387 has been removed from go 1.16 see [1] [1] https://github.com/golang/go/issues/40255 (From OE-Core rev: fd549c139f534f28974c86a4e4c7acf6f5c40a79) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch.bbclass: Fix ppc64le detectionKhem Raj2021-02-231-5/+2
| | | | | | | | | | ppc64le should go above ppc64 in checks otherwise it gets subsumed wrongly with ppc64 check (From OE-Core rev: 126ecfe0d2ce65b2d2cf5598612e60bad7b3302e) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch.bbclass: Disable dynamic linking on PPC64 LEKhem Raj2020-01-211-0/+2
| | | | | | | (From OE-Core rev: cbcaa7e4808d881e19bdefc9123232449d8a2cad) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch: Dont use -fno-PIE on mipsKhem Raj2019-12-301-1/+0
| | | | | | | | | | | | | | | | | | This was added with 98b24e9268 goarch.bbclass: set SECURITY_CFLAGS for mips64 to overcome a problem that was inherent in go linker which has been now fixed in golang compiler upstream https://github.com/golang/go/issues/20243 https://github.com/golang/go/commit/39c07ce9e5311c94880789f19f2f8b49bf1b5241 (From OE-Core rev: ea93adc30ee3d8e0baa0f374c92afb7c6a133b2a) Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch: Remove target specific dependenciesKhem Raj2019-12-151-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | goarch is used in all classes of recipes ranging from native to target, therefore its best to contain the variables and not spill over into recipe classes where they can adversely affect shared state reuse e.g. go-native currently gets TUNE_FEATURES into dependency chain of referenced variables which means go-native gets rebuilt when we change from qemuarm to qemux86 machine types since TUNE_FEATURES is defined with DEFAULTTUNE which would change as machines are switched These variables are specific to arm/mips/x86 so marking them with appropriate overrides for native recipes will be right thing here Chose 'hardfloat' for mips which is default too, 7 for arm and sse2 for x86 somehow go-native bootstrap compiler (1.4) still needs them so feed commonly used values or defaults. Fixes ERROR: go-native different signature for task do_configure.sigdata between qemux86copy and qemuarm ... List of dependencies for variable TUNE_FEATURES changed from '{'DEFAULTTUNE', 'TUNE_FEATURES_tune-core2-32'}' to '{'DEFAULTTUNE', 'TUNE_FEATURES_tune-armv7vethf-neon'}' changed items: {'TUNE_FEATURES_tune-core2-32', 'TUNE_FEATURES_tune-armv7vethf-neon'} (From OE-Core rev: 83eebf5577dd0a23be937375c1a8a15e3da4fa64) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch.bbclass: Simplify logicRichard Purdie2019-04-121-6/+5
| | | | | | | | | Further simplification of the go_map_arm() function. (From OE-Core rev: 9c333505897b2bf0d80737c855af31785d23435a) Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch.bbclass: use MACHINEOVERRIDES and simplify go_map_arm()Mark Asselstine2019-04-101-8/+11
| | | | | | | | | | | | | | | | | | Per https://github.com/golang/go/wiki/GoArm we need to set GOARM when cross building for ARMv5, ARMv6 and ARMv7. The current approach of using TUNE_FEATURES can be error prone, as we can see today when attempting to build for Cortex-A7 which results in GOARM=''. Since the value of MACHINEOVERRIDES already consolidates the values of TUNE_FEATURES into something more consistent we can use the overrides mechanism to set GOARM, leaving just a little bit of logic in go_map_arm() to trigger off the arch (basically target vs host) for the setting of GOARM. (From OE-Core rev: 5f48939e26402b77fc3343f326765137f9570f40) Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch: Add riscv64Alistair Francis2019-03-211-0/+2
| | | | | | | | | | | | | | | Although RISC-V 64-bit doesn't have official golang support there are forks that now exist with at least some support and work is ongoing in the upstream tree. In order to be able to use the goarch class add support for RISC-V. For more details see here: https://github.com/golang/go/issues/27532 (From OE-Core rev: 91e3b2a762124bf5cf923654ef3a7c871b84c82f) Signed-off-by: Alistair Francis <alistair.francis@wdc.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch.bbclass: Set CCACHE_DISABLERobert Yang2019-01-141-0/+4
| | | | | | | | | Go can't be built with ccache. (From OE-Core rev: cf64c9413a2264aa67e26c6302342ff4aa99a575) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipes: Enforce ARM ISA just for arm arches <= armv5Khem Raj2018-07-181-1/+5
| | | | | | | | | | armv7+ used thumb2 ISA and it compiles fine with thumb2 issues are only when using thumb1 ISA (From OE-Core rev: c0ef8a91f671f30acd92e2734144f7ddf1acda53) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch.bbclass: set SECURITY_CFLAGS for mips64Kai Kang2018-06-151-1/+1
| | | | | | | | | | | | | | | | | When include conf/distro/include/security_flags.inc, NOPIE flags are still required for mips64 target builds. Otherwise it fails to build packages such as glide which inherit go.bbclass: | .../tmp-glibc/work/mips64-wrs-linux/glide/0.13.1-r0/recipe-sysroot-native/usr/bin/mips64-wrs-linux/../../libexec/mips64-wrs-linux/ | gcc/mips64-wrs-linux/7.3.0/ld: .../tmp-glibc/work/mips64-wrs-linux/glide/0.13.1-r0/go-tmp/go-link-518447869/go.o: | relocation r_mips_26 against `a local symbol' can not be used when making a shared object; recompile with -fPIC` Use override 'mipsarch' to set SECURITY_CFLAGS for both mips and mips64. (From OE-Core rev: 98b24e9268dc444356ce8bd9ddfec6adcce5e02a) Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go.bbclass, goarch.bbclass: update SECURITY_CFLAGSMatt Madison2018-03-061-0/+2
| | | | | | | | | | | | With go1.10 the NOPIE flags are only required for MIPS target builds, and are now incompatible for the other architectures. (From OE-Core rev: f2ff90eb7d27a2f69f5948fa8c301de30f5c8132) 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>
* goarch.bbclass: disable shared runtime for nativesdk buildsMatt Madison2018-03-061-0/+1
| | | | | | | | | | | | | | While useful on embedded devices for saving disk space, use of shared runtime in Go is not the usual practice, so disable it for nativesdk builds. We don't use it for native builds, either, so this makes the SDK match the native environment more closely. (From OE-Core rev: fde7017f9735c0d317023022817b28771df53109) 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>
* go: set GOMIPS envrionment variableMatt Madison2018-03-061-0/+11
| | | | | | | | | | | Go 1.10 adds support for selecting hard/soft float object code through the GOMIPS environment variable. (From OE-Core rev: f3cabc92dca3408da18f04e4af4051fba1f63c14) 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>
* classes/recipes: Convert SkipPackage -> SkipRecipeRichard Purdie2018-01-261-1/+1
| | | | | | | | | | The new name is much more consistent with what this actually means. We put the pieces in place to rename everything a while back but looks like we forgot to actually do it! Fix that now. (From OE-Core rev: af9612f5d6b848fceea22d10ee964437299be776) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch: There is no GOARCH defined for mips64-n32Joe Slater2017-11-051-0/+1
| | | | | | | | | | | | Defeat building for mipsarchn32 because there is no corresponding GOARCH. Neither "mips" nor "mips64" allows go-runtime to compile. Existing mips32 code assumes the o32 ABI. (From OE-Core rev: fe72090a30d1fc810de3dd07350e5e6afba745de) 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>
* goarch.bbclass: Define HOST_GO386 and TARGET_GO386Paul Barker2017-10-161-0/+11
| | | | | | | | | | | | | | | | | | | | | | | These variables are used to control the floating-point instructions emitted by the go compiler for x86 architectures. The default is '387' which disables the use of sse/sse2 instructions and is safe to use on all x86 processors from the i486 onwards. If TUNE_FEATURES contains a feature set which is known to support sse/sse2 instructions then they are set to 'sse2' to enable the use of these instructions. This is suitable for most processors from Pentium 4 onwards. Only the 'core2' and 'corei7' TUNE_FEATURES are defined in the oe-core layer and are known to support ss2 instructions. Other layers may introduce additional tunings which support sse2 instructions and for these layers, TARGET_GO386 or go_map_386 should be overridden as needed. (From OE-Core rev: 7e96cf3c9850dc34d53af73a9ac22b1624994484) 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>
* goarch.bbclass: rework mips architecture checksMatt Madison2017-10-071-10/+7
| | | | | | | | | | | | | | | Remove the TUNE_FEATURES references from go_map_arch, to avoid an unwanted variable dependency. Direct comparisons of the architecture name are sufficient for covering what Go currently supports, and using TUNE_CCARGS_remove adequately handles the conflict with the cgo-supplied flags for mips. (From OE-Core rev: 1bc4c1d880096083d1891a74024fb225a6340b9b) 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>
* goarch.bbclass: fixups for Go mips32 supportMatt Madison2017-09-261-4/+8
| | | | | | | | | | | | | | | | | | | | | * Fix the regular expression in the mips test * Flag as incompatible any mips32 tunes for n32 ABI or soft-float, as go does not support them. * Replace mips32r2 tune with mips32r1. Go only supports mips32r1, which is a strict subset of r2. Adjusting this tune is not ideal, but is hopefully a temporary measure until more complete mips32 ISA coverage arrives upstream. [YOCTO #12108] (From OE-Core rev: bdd20c296048937737da0f10bd1a3b63843c5bf4) 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>
* goarch.bbclass: set ARM_INSTRUCTION_SET to "arm"Matt Madison2017-09-141-0/+1
| | | | | | | | | | | Go does not play well with thumb, so ensure that the toolchain and any packages use arm, not thumb, instructions. (From OE-Core rev: 24da8c321831dcc5de00d65d6c5613efee109b57) 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>
* goarch.bbclass: identify archs with Go dynamic linking supportMatt Madison2017-09-141-0/+10
| | | | | | | | | | | | Go only supports shared libraries for some architectures, so add a variable for use elsewhere that gets a non-null value only for those architectures. (From OE-Core rev: 2275712df152b73ce49b36bdf9f8d744c68c9c50) 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>
* goarch.bbclass: Add support for ARMv5Otavio Salvador2017-09-111-0/+2
| | | | | | | | | | | | | | This adds support to return the proper ARMv5 format. This change is based on the meta-golang[1] layer. Thanks to Matt Madison <matt@madison.systems> for his work on this. 1. https://github.com/madisongh/meta-golang (From OE-Core rev: e242e7c3617ded87582c5d384b15027498b0c1a4) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch.bbclass: Replace logic for setting GOARMWill Newton2017-09-111-2/+5
| | | | | | | | | | | | | | The previous logic applied a regex to TUNE_FEATURES which could set the GOARM value to 7 incorrectly, for example when dealing with an arm1176 core. Simplify to check for the presence of "armv7" instead. At the same time add a check for "armv6" and set GOARM to 6 in that case. (From OE-Core rev: 07b60c15e9ef650940afdde37bf3f3b9c50a336d) Signed-off-by: Will Newton <willn@resin.io> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch.bbclass: Stop passing True as second argument of d.getVarOtavio Salvador2017-09-111-9/+9
| | | | | | | | | | The d.getVar has the second argument as True by default, avoid passing it here. (From OE-Core rev: 1a5026db41929d42bece22bd0ae60c13219a98f5) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch: Disable build for muslx32sweeaun2017-08-181-0/+1
| | | | | | | | | Disable build for muslx32. (From OE-Core rev: 7f6e47b0d8aec9cb22db50ccb40ebb01677f01ea) Signed-off-by: sweeaun <swee.aun.khor@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* go: centralize definition of COMPATIBLE_HOSTJoe Slater2017-07-271-0/+6
| | | | | | | | | 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: Add recipes for golang compilers and toolsKhem Raj2017-03-101-0/+50
* 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>