Commit graph

63 commits

Author SHA1 Message Date
Jeffery To
4ea95b49a2
golang: Update to 1.14.4
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-06-08 16:06:53 +08:00
Jeffery To
2b8f9b7349 golang: Update to 1.14.3
This also removes a (useless) test for PKG_GO_ZBOOTSTRAP_MODS (it is
always non-empty).

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-05-17 03:37:45 +08:00
Jeffery To
da3fb97b9c golang: Set/reset default platform options for target Go compiler
Because the first stage for building target Go is actually a host build,
the default platform options (GO386, GOARM, etc.) are detected from the
host. These values are written to a source file and kept when building
the second stage.

This modifies this source file to set the appropriate values for the
target platform, and reset values for other platforms to their
cross-compiling / most compatible defaults.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-05-14 17:45:18 +08:00
Jeffery To
46017682f4 golang: Set buildid and enable stripping for Go compiler
Doing both should make the compiler reproducible.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-05-13 16:07:27 +08:00
Jeffery To
74b02ca24c golang: Blacklist older (or no) FPUs rather than whitelist newer FPUs
This should be more future-proof (presumably all future ARM FPUs will be
at least VFPv3).

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-05-13 16:07:27 +08:00
Jeffery To
25a7f0045e golang: Move "go install" arguments logic, add buildid
The moves the setting of arguments for "go install" out of the shell
script in GoPackage/Build/Compile and into make.

This also adds the -buildid link flag for reproducible builds.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-05-13 16:07:27 +08:00
Jeffery To
d2f5e6966b golang: Rename GoPackage/Environment to GO_PKG_VARS
The variable is a list of shell variables; the new name is more in-line
with other parts the build system (CONFIGURE_VARS, MAKE_VARS, etc.).

GoPackage/Environment is kept (for now) in case other feeds are using
it.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-05-13 16:07:20 +08:00
Jeffery To
bcdd6e64fa golang: Remove RSTRIP definition from golang-package.mk
Since RSTRIP is defined in rules.mk as a recursively expanded variable,
there is no need to define it again after setting STRIP in
golang-package.mk.

This also adds a note to the comment for GO_PKG_LDFLAGS to say that -s
and -w flags are not necessary.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-05-13 00:18:50 +08:00
Jeffery To
49a2ff493b golang: Add option to use external bootstrap Go
The default bootstrap Go (Go 1.4) can only be compiled on a limited
number of platforms compared to newer versions of Go.

This adds a config option to use an external bootstrap Go, e.g.
installed through the build system's package manager or downloaded from
golang.org.

See: https://github.com/openwrt/packages/issues/11731

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-05-12 17:42:48 +08:00
Jeffery To
a00a0230b4 golang: Update to 1.14.2
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-04-23 02:40:50 +08:00
Jeffery To
5f392c62a5 golang: Update to 1.14.1
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-03-23 21:25:52 +08:00
Jeffery To
074b417c67 golang: Update to 1.14
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-03-05 02:53:44 +08:00
Jeffery To
1772267747 golang: Update to 1.13.8
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-02-18 17:57:55 +08:00
Jeffery To
bddd1ec588 golang: Update files installed
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-02-05 14:19:34 +08:00
Jeffery To
89d3f0ab54 golang: Reorganize GoPackage/Environment and Makefile variables
* Move more environment variables into GoPackage/Environment
* Split GoPackage/Environment into target and build sections
* Do not set GOROOT_FINAL for Go packages (setting it should only affect
  the Go compiler and not Go packages)
* Set CGO_LDFLAGS to $(TARGET_LDFLAGS)
* Move GO_TARGET_* variables from golang-values.mk, and GO_VERSION_*
  variables from golang-version.mk, into golang/Makefile

This also updates runc, containerd, and docker-ce to reflect the changes
in GoPackage/Environment.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-02-05 14:19:34 +08:00
Jeffery To
3b5f1c73fb golang: Improve build isolation from user environment
* Set GOENV=off when building Go compiler and packages, to ignore user's
  environment configuration file
* Set GOCACHE when building host Go
* Unset GOTMPDIR, to use the buildroot temp directory instead of temp
  directories in build_dir

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-02-04 04:05:29 +08:00
Jeffery To
0dc4fa6efb golang: Update to 1.13.7, add PKG_CPE_ID to Makefile
This update includes fixes for[1]:
* CVE-2020-7919 - doesn't appear to be published publicly yet
* CVE-2020-0601 - a Windows-related issue

[1]: https://github.com/golang/go/issues?q=milestone%3AGo1.13.7+label%3ACherryPickApproved

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-02-03 04:58:58 +08:00
Jeffery To
b621d1b0f3 golang: Update for ASLR PIE tristate option change
The ASLR PIE option was changed to a tristate option
(openwrt/openwrt@19cbac7d26). This updates
the Go compiler package and golang-package.mk to account for this
change.

This also adds warning messages for when the user has selected PIE but
Go does not have PIE support for the chosen target.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-01-15 19:36:09 +08:00
Jeffery To
7459757039 golang: Update to 1.13.6
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-01-14 22:34:07 +08:00
Jeffery To
c18adadd91 golang: Add support for ASLR/PIE for Go packages
This adds support to compile position-independent executables for
packages that use golang-package.mk.

Go packages will have PIE enabled if:
* Go supports PIE on the target platform;
* CONFIG_PKG_ASLR_PIE is selected; and
* PKG_ASLR_PIE (for the package) is not set to 0

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-14 22:17:21 +08:00
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
232634fb9a golang: Strip whitespace when using Go package variables
This adds calls to the strip function in golang-package.mk when using
variables expected to be set by Go packages.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-01-08 19:29:54 +08:00
Jeffery To
12812d328f golang: Update valid os/arch combinations for host Go
The list is updated for Go 1.13.

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
dbd6f224c3 golang: Format TARGET_LDFLAGS for gcc
go invokes the external linker by calling gcc, so -zxxx options in
TARGET_LDFLAGS (in golang-package.mk) need to be formatted as -Wl,z,xxx.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-12-29 18:49:06 +08:00
Jeffery To
4827bc7509 golang: Fix ldflags when GO_PKG_LDFLAGS is set
go build/install supports multiple -ldflags arguments, but they are not
combined; for each package, the latest match on the command line is
used.[1]

Previously, the main executable would not be affected by the default
ldflags if GO_PKG_LDFLAGS or GO_PKG_LDFLAGS_X were set. (The default
ldflags instructs go to use the external linker.)

This fixes golang-package.mk so that the default ldflags take effect in
all cases.

[1]: https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-12-26 20:53:40 +08:00
Josef Schlehofer
802e8bf3f0
golang: Update to 1.13.5
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2019-12-09 23:27:24 +01:00
Jeffery To
e239dba400 golang: Update to 1.13.4
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-11-04 22:54:57 +08:00
Josef Schlehofer
10d55f63d6
golang: Update to version 1.13.3
Fixes CVE-2019-17596

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2019-10-19 22:53:25 +02:00
Josef Schlehofer
65b7bd6cc0
golang: Update to version 1.13.1
Fixes CVE-2019-16276

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2019-09-29 00:53:05 +02: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
Xingwang Liao
0849e32659 golang: Update to 1.13
Signed-off-by: Xingwang Liao <kuoruan@gmail.com>
2019-09-06 11:59:04 +08:00
Jeffery To
da0dfb1856 golang: Update to 1.12.9
Includes fixes (in 1.12.8) for:
CVE-2019-14809 - https://nvd.nist.gov/vuln/detail/CVE-2019-14809
CVE-2019-9512 - https://nvd.nist.gov/vuln/detail/CVE-2019-9512
CVE-2019-9514 - https://nvd.nist.gov/vuln/detail/CVE-2019-9514

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-08-20 22:03:52 +08:00
Jeffery To
d0bf31431d golang: Update to 1.12.7
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-07-20 20:53:49 +08:00
Jeffery To
78e378fde3 golang: Update to 1.12.6
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-06-18 18:53:49 +08:00
Xingwang Liao
f072cd6adf
golang: Add the ability to custom build environment
by overwrite the GoPackage/Environment definition

Signed-off-by: Xingwang Liao <kuoruan@gmail.com>
2019-06-10 10:42:52 +08:00
Jeffery To
b1383b418c golang: Update to 1.12.5
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-05-13 20:08:03 +08:00
Jeffery To
a172abbda6 golang-libraries: Remove library packages
These Go library packages were added to support obfs4proxy. As
obfs4proxy was updated to allow dependency management by the Go
compiler, these packages no longer have any dependants.

This removes these packages from the feed.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-05-03 03:36:57 +08:00
Josef Schlehofer
2fe6c2aedd golang: update to version 1.12.4
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2019-04-18 16:06:23 +08:00
Jeffery To
5d787e9656 golang: Update to 1.12.3
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-04-09 14:22:47 +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
Josef Schlehofer
c996ea6e4e golang: update to version 1.12.1
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2019-03-19 14:53:18 +08:00
Xingwang Liao
98986e858a golang: Bump to version 1.12
Signed-off-by: Xingwang Liao <kuoruan@gmail.com>
2019-03-08 19:37:48 +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
7dc1f3e029 golang: Install go.mod/go.sum by default
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-02-11 20:33:45 +08:00
Jeffery To
a80d54fc49 golang: Install files with .cpp/.hpp suffixes by default
This also updates the URL for dh-golang.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-02-11 20:33:44 +08:00
Jeffery To
081808ce69 golang: Fix handling of filenames with spaces
Closes #7127.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-02-11 20:33:44 +08:00