aboutsummaryrefslogtreecommitdiff
path: root/lang/golang
diff options
context:
space:
mode:
authorJeffery To <jeffery.to@gmail.com>2020-09-15 23:32:53 +0800
committerJeffery To <jeffery.to@gmail.com>2020-10-06 16:28:07 +0800
commit03a1f875496d11e7f3fbba8c148ef33969f6ec03 (patch)
tree4b3696e2241bf5ad37d0db283a976b12e93e9323 /lang/golang
parent66eabf18f53468442563cc4dc4510649050cc629 (diff)
golang: Use GO_LDFLAGS to set buildmode=pie for host Go
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
Diffstat (limited to 'lang/golang')
-rw-r--r--lang/golang/golang/Makefile23
1 files changed, 3 insertions, 20 deletions
diff --git a/lang/golang/golang/Makefile b/lang/golang/golang/Makefile
index 162b5ad5e..5610ccafb 100644
--- a/lang/golang/golang/Makefile
+++ b/lang/golang/golang/Makefile
@@ -189,9 +189,8 @@ ifeq ($(GO_HOST_PIE_SUPPORTED),1)
HOST_GO_ENABLE_PIE:=1
endif
-ifeq ($(HOST_GO_ENABLE_PIE),1)
- HOST_GO_INSTALL_SUFFIX:=$(GO_HOST_PIE_INSTALL_SUFFIX)
-endif
+# when using GO_LDFLAGS to set buildmode=pie, the PIE install suffix
+# does not apply (we also delete the std lib during Host/Install)
$(eval $(call GoCompiler/AddProfile,Host,$(HOST_BUILD_DIR),$(HOST_GO_PREFIX),$(HOST_GO_VERSION_ID),$(GO_HOST_OS_ARCH),$(HOST_GO_INSTALL_SUFFIX)))
@@ -201,9 +200,6 @@ HOST_GO_VARS= \
CC=$(HOSTCC_NOCACHE) \
CXX=$(HOSTCXX_NOCACHE)
-# when https://github.com/golang/go/issues/31544 is fixed,
-# we should be able to set GO_LDFLAGS=-buildmode=pie for host make
-# instead of doing a rebuild for pie
define Host/Compile
$(call GoCompiler/Bootstrap/CheckHost,$(BOOTSTRAP_GO_VALID_OS_ARCH))
$(call GoCompiler/Host/CheckHost,$(HOST_GO_VALID_OS_ARCH))
@@ -216,22 +212,9 @@ define Host/Compile
$(call GoCompiler/Host/Make, \
GOROOT_BOOTSTRAP=$(BOOTSTRAP_ROOT_DIR) \
+ $(if $(HOST_GO_ENABLE_PIE),GO_LDFLAGS="-buildmode pie") \
$(HOST_GO_VARS) \
)
-
- ifneq ($(HOST_GO_ENABLE_PIE),)
- @echo "Rebuilding host Go with PIE"
-
- ( \
- cd $(HOST_BUILD_DIR)/bin ; \
- $(CP) go go-nopie ; \
- $(HOST_GO_VARS) \
- ./go-nopie install -a -buildmode pie std cmd ; \
- retval=$$$$? ; \
- rm -f go-nopie ; \
- exit $$$$retval ; \
- )
- endif
endef
# if host and target os/arch are the same,