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>
This commit is contained in:
Jeffery To 2020-01-15 19:36:09 +08:00
parent 7f1704f357
commit b621d1b0f3
2 changed files with 16 additions and 2 deletions

View file

@ -120,10 +120,22 @@ GO_PKG_BUILD_BIN_DIR:=$(GO_PKG_BUILD_DIR)/bin$(if $(GO_HOST_TARGET_DIFFERENT),/$
GO_PKG_BUILD_DEPENDS_SRC:=$(STAGING_DIR)$(GO_PKG_PATH)/src
ifeq ($(CONFIG_PKG_ASLR_PIE),y)
ifdef CONFIG_PKG_ASLR_PIE_ALL
ifeq ($(strip $(PKG_ASLR_PIE)),1)
ifeq ($(GO_TARGET_PIE_SUPPORTED),1)
GO_PKG_ENABLE_PIE:=1
else
$(warning PIE buildmode is not supported for $(GO_OS)/$(GO_ARCH))
endif
endif
endif
ifdef CONFIG_PKG_ASLR_PIE_REGULAR
ifeq ($(strip $(PKG_ASLR_PIE_REGULAR)),1)
ifeq ($(GO_TARGET_PIE_SUPPORTED),1)
GO_PKG_ENABLE_PIE:=1
else
$(warning PIE buildmode is not supported for $(GO_OS)/$(GO_ARCH))
endif
endif
endif

View file

@ -92,10 +92,12 @@ BOOTSTRAP_UNPACK:=$(HOST_TAR) -C $(BOOTSTRAP_BUILD_DIR) --strip-components=1 -xz
RSTRIP:=:
STRIP:=:
ifeq ($(CONFIG_PKG_ASLR_PIE),y)
ifdef CONFIG_PKG_ASLR_PIE_ALL
ifeq ($(GO_TARGET_PIE_SUPPORTED),1)
PKG_GO_ENABLE_PIE:=1
PKG_GO_INSTALL_SUFFIX:=$(GO_TARGET_PIE_INSTALL_SUFFIX)
else
$(warning PIE buildmode is not supported for $(GO_OS)/$(GO_ARCH))
endif
endif