aboutsummaryrefslogtreecommitdiff
path: root/lang/golang/golang-package.mk
Commit message (Collapse)AuthorAge
* golang: Fix conditionals not strippedJeffery To2022-04-15
| | | | Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: Update to 1.18.1Jeffery To2022-04-15
| | | | | | | | | | | Includes fixes for: * CVE-2022-24675 - encoding/pem: stack overflow * CVE-2022-28327 - crypto/elliptic: generic P-256 panic when scalar has too many leading zeroes This also adds -buildvcs=false to omit VCS information in Go programs. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: Update to 1.18, update patchJeffery To2022-03-28
| | | | Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: Remove deprecated variables in golang-package.mkJeffery To2021-09-13
| | | | Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: Add option to enable Spectre mitigationsJeffery To2020-10-06
| | | | Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: Move package scripts into golang-build.shJeffery To2020-10-06
| | | | | | | | This also adds GO_PKG_INSTALL_BIN_PATH which determines the path where binaries are installed by GoPackage/Package/Install/Bin (this was previously hard-coded to /usr/bin). Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: Quote variables passed to the shellJeffery To2020-10-06
| | | | Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: Share build cache across package buildsJeffery To2020-10-06
| | | | | | | This also adds a config option GOLANG_BUILD_CACHE_DIR to customize the location of the build cache directory. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: Move module cache into DL_DIRJeffery To2020-10-06
| | | | | | | | This also adds a config option GOLANG_MOD_CACHE_WORLD_READABLE; if enabled, chmod is run after a Go package build to make all files/directories in the module cache world-readable. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: Add GO_PKG_TAGS for Go packagesJeffery To2020-07-15
| | | | | | | | | | This adds a new Makefile variable, GO_PKG_TAGS, for Go packages. When set, the value is passed as the parameter of the -tags option for 'go install'. This also updates syncthing to use this variable. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: Evaluate "go install" arguments during Build/CompileJeffery To2020-06-29
| | | | | | | | | | | This evaluates the arguments passed to "go install" during Build/Compile rather than when golang-package.mk is included. This also changes build directory-related variables to be recursively expanded, because PKG_BUILD_DIR depends on BUILD_VARIANT and so can change during different runs of Build/Compile. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: Move "go install" arguments logic, add buildidJeffery To2020-05-13
| | | | | | | | | 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>
* golang: Rename GoPackage/Environment to GO_PKG_VARSJeffery To2020-05-13
| | | | | | | | | | 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>
* golang: Remove RSTRIP definition from golang-package.mkJeffery To2020-05-13
| | | | | | | | | | | 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>
* golang: Reorganize GoPackage/Environment and Makefile variablesJeffery To2020-02-05
| | | | | | | | | | | | | | | * 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>
* golang: Improve build isolation from user environmentJeffery To2020-02-04
| | | | | | | | | | * 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>
* golang: Update for ASLR PIE tristate option changeJeffery To2020-01-15
| | | | | | | | | | | | The ASLR PIE option was changed to a tristate option (openwrt/openwrt@19cbac7d264dfca1f75849de64beb98830fbb1e4). 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>
* golang: Add support for ASLR/PIE for Go packagesJeffery To2020-01-14
| | | | | | | | | | | | | | | | | 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>
* golang: Strip whitespace when using Go package variablesJeffery To2020-01-08
| | | | | | | 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>
* golang: Format TARGET_LDFLAGS for gccJeffery To2019-12-29
| | | | | | | 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>
* golang: Fix ldflags when GO_PKG_LDFLAGS is setJeffery To2019-12-26
| | | | | | | | | | | | | | | | | 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>
* golang: Use new -trimpath option when compiling Go packagesJeffery To2019-09-13
| | | | | | | | | | | | | | 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>
* golang: Add the ability to custom build environmentXingwang Liao2019-06-10
| | | | | | by overwrite the GoPackage/Environment definition Signed-off-by: Xingwang Liao <kuoruan@gmail.com>
* golang: Add support for setting gcflags/ldflags from package MakefileJeffery To2019-03-21
| | | | | | | | | | | | | | | | 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>
* golang: Install go.mod/go.sum by defaultJeffery To2019-02-11
| | | | Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: Install files with .cpp/.hpp suffixes by defaultJeffery To2019-02-11
| | | | | | This also updates the URL for dh-golang. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: Fix handling of filenames with spacesJeffery To2019-02-11
| | | | | | Closes #7127. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: fix package clean / autoremove, add output whitespaceJeffery To2018-12-12
| | | | | | | | | | | | | | | go 1.11 added modules, which are cached locally. The go developers have decided to make this cache read-only (golang/go#27455), which causes problems with package clean / autoremove (#7635). This adds a call to clear this cache right after building, as currently there is no easy way to hook into autoremove (it may be possible to hook into package clean). This also adds whitespace (blank lines) to certain places in make output, to aid debugging. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: Update to 1.11.1, add mips64 / mips64el buildsJeffery To2018-10-13
| | | | | | | | | 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>
* golang: Allow additional arguments when compiling Go packagesJeffery To2018-06-28
| | | | | | | This updates GoPackage/Build/Compile in golang-package.mk to accept additional arguments that are passed to the go command line. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* golang: new packagesJeffery To2018-03-21
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>