aboutsummaryrefslogtreecommitdiff
path: root/lang/golang
diff options
context:
space:
mode:
authorJeffery To <jeffery.to@gmail.com>2020-02-04 21:48:08 +0800
committerJeffery To <jeffery.to@gmail.com>2020-02-05 14:19:34 +0800
commit89d3f0ab54a0a1d22a0ce5903fc5067fdc64bbc0 (patch)
treee66246521dbfa50ec78966c4204cff3944c8cc6f /lang/golang
parent3bc32984267997098a785e2c0ce5cc4942fb45e8 (diff)
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>
Diffstat (limited to 'lang/golang')
-rw-r--r--lang/golang/golang-package.mk26
-rw-r--r--lang/golang/golang-values.mk6
-rw-r--r--lang/golang/golang-version.mk14
-rw-r--r--lang/golang/golang/Makefile22
4 files changed, 31 insertions, 37 deletions
diff --git a/lang/golang/golang-package.mk b/lang/golang/golang-package.mk
index 2e4679b34..303ae0eb3 100644
--- a/lang/golang/golang-package.mk
+++ b/lang/golang/golang-package.mk
@@ -165,7 +165,7 @@ define GoPackage/GoSubMenu
CATEGORY:=Languages
endef
-define GoPackage/Environment/Default
+define GoPackage/Environment/Target
GOOS=$(GO_OS) \
GOARCH=$(GO_ARCH) \
GO386=$(GO_386) \
@@ -173,9 +173,23 @@ define GoPackage/Environment/Default
GOMIPS=$(GO_MIPS) \
GOMIPS64=$(GO_MIPS64) \
CGO_ENABLED=1 \
+ CC=$(TARGET_CC) \
+ CXX=$(TARGET_CXX) \
CGO_CFLAGS="$(filter-out $(GO_CFLAGS_TO_REMOVE),$(TARGET_CFLAGS))" \
CGO_CPPFLAGS="$(TARGET_CPPFLAGS)" \
- CGO_CXXFLAGS="$(filter-out $(GO_CFLAGS_TO_REMOVE),$(TARGET_CXXFLAGS))"
+ CGO_CXXFLAGS="$(filter-out $(GO_CFLAGS_TO_REMOVE),$(TARGET_CXXFLAGS))" \
+ CGO_LDFLAGS="$(TARGET_LDFLAGS)"
+endef
+
+define GoPackage/Environment/Build
+ GOPATH=$(GO_PKG_BUILD_DIR) \
+ GOCACHE=$(GO_PKG_CACHE_DIR) \
+ GOENV=off
+endef
+
+define GoPackage/Environment/Default
+ $(call GoPackage/Environment/Target) \
+ $(call GoPackage/Environment/Build)
endef
GoPackage/Environment=$(call GoPackage/Environment/Default)
@@ -264,13 +278,7 @@ endef
define GoPackage/Build/Compile
( \
cd $(GO_PKG_BUILD_DIR) ; \
- export GOPATH=$(GO_PKG_BUILD_DIR) \
- GOCACHE=$(GO_PKG_CACHE_DIR) \
- GOENV=off \
- GOROOT_FINAL=$(GO_TARGET_ROOT) \
- CC=$(TARGET_CC) \
- CXX=$(TARGET_CXX) \
- $(call GoPackage/Environment) ; \
+ export $(call GoPackage/Environment) ; \
\
echo "Finding targets" ; \
targets=$$$$(go list $(GO_PKG_BUILD_PKG)) ; \
diff --git a/lang/golang/golang-values.mk b/lang/golang/golang-values.mk
index aa13a8791..0b0c0c18d 100644
--- a/lang/golang/golang-values.mk
+++ b/lang/golang/golang-values.mk
@@ -9,8 +9,6 @@ ifeq ($(origin GO_INCLUDE_DIR),undefined)
GO_INCLUDE_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
endif
-include $(GO_INCLUDE_DIR)/golang-version.mk
-
# Unset environment variables
# There are more magic variables to track down, but ain't nobody got time for that
@@ -209,10 +207,6 @@ endif
GO_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mips64||mips64el||mipsel||powerpc64||x86_64)
-GO_TARGET_PREFIX:=/usr
-GO_TARGET_VERSION_ID:=$(GO_VERSION_MAJOR_MINOR)
-GO_TARGET_ROOT:=$(GO_TARGET_PREFIX)/lib/go-$(GO_TARGET_VERSION_ID)
-
# ASLR/PIE
diff --git a/lang/golang/golang-version.mk b/lang/golang/golang-version.mk
deleted file mode 100644
index cc430d707..000000000
--- a/lang/golang/golang-version.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2018 Jeffery To
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-ifeq ($(origin GO_INCLUDE_DIR),undefined)
- GO_INCLUDE_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
-endif
-
-
-GO_VERSION_MAJOR_MINOR:=1.13
-GO_VERSION_PATCH:=7
diff --git a/lang/golang/golang/Makefile b/lang/golang/golang/Makefile
index 1fe8790df..ca4d76fa7 100644
--- a/lang/golang/golang/Makefile
+++ b/lang/golang/golang/Makefile
@@ -6,7 +6,9 @@
#
include $(TOPDIR)/rules.mk
-include ../golang-version.mk
+
+GO_VERSION_MAJOR_MINOR:=1.13
+GO_VERSION_PATCH:=7
PKG_NAME:=golang
PKG_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH))
@@ -34,6 +36,10 @@ PKG_GO_WORK_DIR:=$(PKG_BUILD_DIR)/.go_work
PKG_GO_HOST_CACHE_DIR:=$(PKG_GO_WORK_DIR)/host_cache
PKG_GO_TARGET_CACHE_DIR:=$(PKG_GO_WORK_DIR)/target_cache
+PKG_GO_PREFIX:=/usr
+PKG_GO_VERSION_ID:=$(GO_VERSION_MAJOR_MINOR)
+PKG_GO_ROOT:=$(PKG_GO_PREFIX)/lib/go-$(PKG_GO_VERSION_ID)
+
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/go-$(PKG_VERSION)
HOST_BUILD_PARALLEL:=1
@@ -178,7 +184,7 @@ $(eval $(call Download,golang-bootstrap))
$(eval $(call GoCompiler/AddProfile,Bootstrap,$(BOOTSTRAP_BUILD_DIR),,bootstrap,$(GO_HOST_OS_ARCH)))
$(eval $(call GoCompiler/AddProfile,Host,$(HOST_BUILD_DIR),$(HOST_GO_PREFIX),$(HOST_GO_VERSION_ID),$(GO_HOST_OS_ARCH),$(HOST_GO_INSTALL_SUFFIX)))
-$(eval $(call GoCompiler/AddProfile,Package,$(PKG_BUILD_DIR),$(GO_TARGET_PREFIX),$(GO_TARGET_VERSION_ID),$(GO_OS_ARCH),$(PKG_GO_INSTALL_SUFFIX)))
+$(eval $(call GoCompiler/AddProfile,Package,$(PKG_BUILD_DIR),$(PKG_GO_PREFIX),$(PKG_GO_VERSION_ID),$(GO_OS_ARCH),$(PKG_GO_INSTALL_SUFFIX)))
define Host/Prepare
$(call Host/Prepare/Default)
@@ -278,8 +284,9 @@ define Build/Compile
( \
cd $(PKG_BUILD_DIR)/bin ; \
+ export $(call GoPackage/Environment/Target) ; \
$(CP) go go-host ; \
- GOROOT_FINAL=$(GO_TARGET_ROOT) \
+ GOROOT_FINAL=$(PKG_GO_ROOT) \
GOCACHE=$(PKG_GO_TARGET_CACHE_DIR) \
GOENV=off \
GO_GCC_HELPER_CC="$(TARGET_CC)" \
@@ -289,7 +296,6 @@ define Build/Compile
CXX=g++ \
PKG_CONFIG=pkg-config \
PATH=$(HOST_GO_ROOT)/openwrt:$$$$PATH \
- $(call GoPackage/Environment) \
./go-host install -a $(if $(PKG_GO_ENABLE_PIE),-buildmode=pie) std cmd ; \
retval=$$$$? ; \
rm -f go-host ; \
@@ -298,16 +304,16 @@ define Build/Compile
endef
define Package/golang/install
- $(call GoCompiler/Package/Install/Bin,$(1)$(GO_TARGET_PREFIX))
- $(call GoCompiler/Package/Install/BinLinks,$(1)$(GO_TARGET_PREFIX))
+ $(call GoCompiler/Package/Install/Bin,$(1)$(PKG_GO_PREFIX))
+ $(call GoCompiler/Package/Install/BinLinks,$(1)$(PKG_GO_PREFIX))
endef
define Package/golang-doc/install
- $(call GoCompiler/Package/Install/Doc,$(1)$(GO_TARGET_PREFIX))
+ $(call GoCompiler/Package/Install/Doc,$(1)$(PKG_GO_PREFIX))
endef
define Package/golang-src/install
- $(call GoCompiler/Package/Install/Src,$(1)$(GO_TARGET_PREFIX))
+ $(call GoCompiler/Package/Install/Src,$(1)$(PKG_GO_PREFIX))
endef
# src/debug contains ELF executables as test data