Skip to content

Commit

Permalink
golang: Use GO_LDFLAGS to set buildmode=pie for host Go
Browse files Browse the repository at this point in the history
Signed-off-by: Jeffery To <[email protected]>
  • Loading branch information
jefferyto committed Oct 6, 2020
1 parent 66eabf1 commit 03a1f87
Showing 1 changed file with 3 additions and 20 deletions.
23 changes: 3 additions & 20 deletions lang/golang/golang/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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)))

Expand All @@ -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))
Expand All @@ -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,
Expand Down

0 comments on commit 03a1f87

Please sign in to comment.