Commit graph

10 commits

Author SHA1 Message Date
Jeffery To
b36f27716f golang: Fix selection of GOARM value
This fixes how GOARM is selected for arm platforms, based on support for
VFP/VFPv3 rather than CPU version.

Fixes #10967.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-01-14 22:11:02 +08:00
Jeffery To
c377576734 golang: Add support for ASLR/PIE for host and target Go
This adds support to compile host and target Go as position-independent
executables.

Host Go will have PIE enabled if Go supports PIE on the host platform.

Target Go will have PIE enabled if Go supports PIE on the target
platform and CONFIG_PKG_ASLR_PIE is selected.

Go 1.13 supports PIE for x86 and arm targets; mips support is in
progress[1].

[1]: https://github.com/golang/go/issues/21222#issuecomment-542064462

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-01-08 19:29:54 +08:00
Jeffery To
53603abaae golang: Make golang-values.mk more readable
This replaces conditional functions with conditional directives to make
golang-values.mk more readable.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-01-08 19:29:54 +08:00
Jeffery To
c9781b027a golang: Update variables unexported in golang-values.mk
The lists of variables are updated for Go 1.13.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-01-08 19:29:54 +08:00
Jeffery To
afaf95b4d8 golang: Re-format environment variable unexports
This changes the formatting of environment variable unexports in
golang-values.mk to be more maintainable, and to document the sources of
variables.

There should be no change to the actual list of variables unexported.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-01-08 19:29:54 +08:00
Jeffery To
22ee6e86a0 golang: Use new -trimpath option when compiling Go packages
Go 1.13 added a new -trimpath option to the "go build" command[1] that
removes system paths from compiled executables. This replaces the
previous -trimpath flags.

There are still system paths in the compiled executable (for crti.o and
crtn.o, when cross-compiling); these appear to be stripped during the
packaging process.

[1]: https://golang.org/doc/go1.13#trimpath

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-09-13 17:48:40 +08:00
Jeffery To
0d3ec704b0 golang: Add support for setting gcflags/ldflags from package Makefile
This adds several variables for Go package Makefiles:
* GO_PKG_GCFLAGS - go tool compile arguments
* GO_PKG_LDFLAGS - go tool link arguments
* GO_PKG_LDFLAGS_X - go tool link -X definitions

Settings these will add the corresponding flags to the go install
command line. (Other command line arguments can still be added by
passing them as the first argument to GoPackage/Build/Compile.)

This also adds Go's runtime environment variables (GOGC, GOMAXPROCS,
GOTRACEBACK) to the unexport list.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-03-21 10:10:21 +08:00
Jeffery To
6a8c72c7b0 golang: Ignore GOFLAGS, GO111MODULE environment variables
These were added in Go 1.11.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-02-11 20:33:45 +08:00
Jeffery To
453749f12b golang: Update to 1.11.1, add mips64 / mips64el builds
Go 1.11 added softfloat support for 64-bit MIPS systems[1], so this also
adds builds for mips64 and mips64el.

[1] https://golang.org/doc/go1.11#mips

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2018-10-13 02:30:03 +08:00
Jeffery To
c137c38257 golang: new packages
From golang.org:
The Go programming language is an open source project to make
programmers more productive.

This commit consists of two "parts":

* golang/host: Main Go compiler for host (installed to
  STAGING_DIR_HOST/lib/go-cross), used to cross-compile Go programs to
  be packaged.

* golang (and golang-src/golang-doc): Main Go compiler for on-target
  development. These packages are quite large, but I would expect only
  developers to install these.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2018-03-21 09:21:57 +08:00