golang: Update for ASLR PIE tristate option change
authorJeffery To <redacted>
Wed, 15 Jan 2020 11:36:09 +0000 (19:36 +0800)
committerJeffery To <redacted>
Wed, 15 Jan 2020 11:36:09 +0000 (19:36 +0800)
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 <redacted>
lang/golang/golang-package.mk
lang/golang/golang/Makefile

index 235585b206207030aa80aac2febe4d77b239f033..2d558565cbe5367e9c53bafb592e2f280f99db27 100644 (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
index 8bfb8260f04f2839504a552ef9a19819be20b2b9..ca27eae946cd8492a1b997ab81c96e7f34791c71 100644 (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
 
git clone https://git.99rst.org/PROJECT