diff --git a/golang-build.sh b/golang-build.sh old mode 100644 new mode 100755 index e0e4ea6..01df4aa --- a/golang-build.sh +++ b/golang-build.sh @@ -1,4 +1,10 @@ #!/bin/sh +# +# Copyright (C) 2020, 2022 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# nl=" " @@ -114,7 +120,7 @@ build() { if [ "$GO_GO_GENERATE" = 1 ]; then log "Calling go generate" # shellcheck disable=SC2086 - GOOS='' GOARCH='' GO386='' GOARM='' GOMIPS='' GOMIPS64='' \ + GOOS='' GOARCH='' GO386='' GOARM='' GOARM64='' GOMIPS='' GOMIPS64='' GORISCV64=''\ go generate -v $targets log fi diff --git a/golang-compiler.mk b/golang-compiler.mk index 77a125a..44defed 100644 --- a/golang-compiler.mk +++ b/golang-compiler.mk @@ -1,5 +1,5 @@ # -# Copyright (C) 2018, 2020 Jeffery To +# Copyright (C) 2018, 2020-2021, 2023 Jeffery To # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -19,15 +19,15 @@ define GoCompiler/Default/CheckHost endef # $(1) source go root -# $(2) destination prefix -# $(3) go version id -# $(4) additional environment variables (optional) +# $(2) additional environment variables (optional) define GoCompiler/Default/Make ( \ cd "$(1)/src" ; \ - $(if $(2),GOROOT_FINAL="$(2)/lib/go-$(3)") \ - $(4) \ - $(BASH) make.bash --no-banner ; \ + $(2) \ + $(BASH) make.bash \ + $(if $(findstring s,$(OPENWRT_VERBOSE)),-v) \ + --no-banner \ + ; \ ) endef @@ -74,6 +74,11 @@ define GoCompiler/Default/Install/Bin $(INSTALL_BIN) -p "$(1)/bin/$(4)"/* "$(2)/lib/go-$(3)/bin/" endif + if [ -d "$(1)/pkg/$(4)$(if $(5),_$(5))" ]; then \ + $(INSTALL_DIR) "$(2)/lib/go-$(3)/pkg" ; \ + $(CP) "$(1)/pkg/$(4)$(if $(5),_$(5))" "$(2)/lib/go-$(3)/pkg/" ; \ + fi + $(INSTALL_DIR) "$(2)/lib/go-$(3)/pkg/tool/$(4)" $(INSTALL_BIN) -p "$(1)/pkg/tool/$(4)"/* "$(2)/lib/go-$(3)/pkg/tool/$(4)/" endef @@ -148,7 +153,7 @@ define GoCompiler/AddProfile # $$(1) additional environment variables (optional) define GoCompiler/$(1)/Make - $$(call GoCompiler/Default/Make,$(2),$(3),$(4),$$(1)) + $$(call GoCompiler/Default/Make,$(2),$$(1)) endef # $$(1) override install prefix (optional) diff --git a/golang-host-build.mk b/golang-host-build.mk index 4b9e298..7c7551f 100644 --- a/golang-host-build.mk +++ b/golang-host-build.mk @@ -1,5 +1,5 @@ # -# Copyright (C) 2020 Jeffery To +# Copyright (C) 2020, 2022 Jeffery To # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. diff --git a/golang-package.mk b/golang-package.mk index a9eef17..cc00505 100644 --- a/golang-package.mk +++ b/golang-package.mk @@ -1,5 +1,5 @@ # -# Copyright (C) 2018-2020 Jeffery To +# Copyright (C) 2018-2022 Jeffery To # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. diff --git a/golang-values.mk b/golang-values.mk index 990063e..d57de5f 100644 --- a/golang-values.mk +++ b/golang-values.mk @@ -1,5 +1,5 @@ # -# Copyright (C) 2018, 2020 Jeffery To +# Copyright (C) 2018-2023 Jeffery To # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -28,8 +28,8 @@ unexport \ GOFLAGS \ GOOS \ GOPATH \ - GOTOOLCHAIN \ GOROOT \ + GOTOOLCHAIN \ GOTMPDIR \ GOWORK # Unmodified: @@ -59,13 +59,19 @@ unexport \ # Architecture-specific environment variables: unexport \ GOARM \ + GOARM64 \ GO386 \ GOAMD64 \ GOMIPS \ GOMIPS64 \ GOPPC64 \ + GORISCV64 \ GOWASM +# Environment variables for use with code coverage: +unexport \ + GOCOVERDIR + # Special-purpose environment variables: unexport \ GCCGOTOOLDIR \ @@ -78,6 +84,7 @@ unexport \ # From https://pkg.go.dev/runtime#hdr-Environment_Variables unexport \ GOGC \ + GOMEMLIMIT \ GOMAXPROCS \ GORACE \ GOTRACEBACK @@ -123,10 +130,11 @@ unexport \ go_arch=$(subst \ aarch64,arm64,$(subst \ i386,386,$(subst \ + loongarch64,loong64,$(subst \ mipsel,mipsle,$(subst \ mips64el,mips64le,$(subst \ powerpc64,ppc64,$(subst \ - x86_64,amd64,$(1))))))) + x86_64,amd64,$(1)))))))) GO_OS:=linux GO_ARCH:=$(call go_arch,$(ARCH)) @@ -197,17 +205,16 @@ endif # Target Go -GO_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mips64||mips64el||mipsel||powerpc64||x86_64) +GO_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||loongarch64||mips||mips64||mips64el||mipsel||powerpc64||riscv64||x86_64) # ASLR/PIE -# From https://go.dev/src/cmd/internal/sys/supported.go +# From https://go.dev/src/internal/platform/supported.go GO_PIE_SUPPORTED_OS_ARCH:= \ android_386 android_amd64 android_arm android_arm64 \ linux_386 linux_amd64 linux_arm linux_arm64 \ - \ - windows_386 windows_amd64 windows_arm \ + windows_386 windows_amd64 windows_arm windows_arm64 \ \ darwin_amd64 darwin_arm64 \ ios_amd64 ios_arm64 \ @@ -219,7 +226,7 @@ GO_PIE_SUPPORTED_OS_ARCH:= \ linux_loong64 linux_ppc64le linux_riscv64 linux_s390x # From https://go.dev/src/cmd/go/internal/work/init.go -go_pie_install_suffix=$(if $(filter $(1),aix_ppc64 windows_386 windows_amd64 windows_arm),,shared) +go_pie_install_suffix=$(if $(filter $(1),aix_ppc64 windows_386 windows_amd64 windows_arm windows_arm64),,shared) ifneq ($(filter $(GO_HOST_OS_ARCH),$(GO_PIE_SUPPORTED_OS_ARCH)),) GO_HOST_PIE_SUPPORTED:=1 diff --git a/golang/Makefile b/golang/Makefile index ab018d5..3a6ca29 100644 --- a/golang/Makefile +++ b/golang/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2018, 2020 Jeffery To +# Copyright (C) 2018-2023 Jeffery To # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk GO_VERSION_MAJOR_MINOR:=1.23 -GO_VERSION_PATCH:=1 +GO_VERSION_PATCH:=2 PKG_NAME:=golang PKG_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH)) @@ -20,7 +20,7 @@ GO_SOURCE_URLS:=https://dl.google.com/go/ \ PKG_SOURCE:=go$(PKG_VERSION).src.tar.gz PKG_SOURCE_URL:=$(GO_SOURCE_URLS) -PKG_HASH:=6ee44e298379d146a5e5aa6b1c5b5d5f5d0a3365eabdd70741e6e21340ec3b0d +PKG_HASH:=36930162a93df417d90bd22c6e14daff4705baac2b02418edda671cdfa9cd07f PKG_MAINTAINER:=Jeffery To PKG_LICENSE:=BSD-3-Clause @@ -30,11 +30,10 @@ PKG_CPE_ID:=cpe:/a:golang:go PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_DIR:=$(BUILD_DIR)/go-$(PKG_VERSION) PKG_BUILD_PARALLEL:=1 -PKG_USE_MIPS16:=0 +PKG_BUILD_FLAGS:=no-mips16 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 @@ -58,19 +57,20 @@ HOST_GO_VALID_OS_ARCH:= \ \ dragonfly_amd64 \ illumos_amd64 \ - freebsd_riscv64 \ solaris_amd64 \ \ aix_ppc64 \ js_wasm \ wasip1_wasm \ \ + freebsd_riscv64 \ + openbsd_riscv64 \ + \ linux_ppc64 linux_ppc64le \ linux_mips linux_mipsle linux_mips64 linux_mips64le \ - linux_riscv64 linux_s390x \ - linux_loong64 \ + linux_loong64 linux_riscv64 linux_s390x \ \ - openbsd_ppc64 openbsd_riscv64 + openbsd_mips64 ifeq ($(HOST_ARCH),x86_64) PKG_ARCH:=amd64 @@ -193,8 +193,7 @@ ifeq ($(BOOTSTRAP_ROOT_DIR),) $(eval $(call Download,golang-bootstrap)) define Bootstrap/Prepare - mkdir -p "$(BOOTSTRAP_BUILD_DIR)" - $(BOOTSTRAP_UNPACK) + mkdir -p "$(BOOTSTRAP_BUILD_DIR)" && $(BOOTSTRAP_UNPACK) ; endef Hooks/HostPrepare/Post+=Bootstrap/Prepare @@ -214,6 +213,7 @@ endif $(eval $(call GoCompiler/AddProfile,Host,$(HOST_BUILD_DIR),$(HOST_GO_PREFIX),$(HOST_GO_VERSION_ID),$(GO_HOST_OS_ARCH),$(HOST_GO_INSTALL_SUFFIX))) HOST_GO_VARS= \ + GOHOSTARCH="$(GO_HOST_ARCH)" \ GOCACHE="$(GO_BUILD_CACHE_DIR)" \ GOENV=off \ CC="$(HOSTCC_NOCACHE)" \ @@ -279,6 +279,7 @@ PKG_GO_ZBOOTSTRAP_MODS:= \ PKG_GO_ZBOOTSTRAP_PATH:=$(PKG_BUILD_DIR)/src/internal/buildcfg/zbootstrap.go PKG_GO_VARS= \ + GOHOSTARCH="$(GO_HOST_ARCH)" \ GOCACHE="$(GO_BUILD_CACHE_DIR)" \ GOENV=off \ GO_GCC_HELPER_PATH="$$$$PATH" \ @@ -338,7 +339,6 @@ define Build/Compile cd "$(PKG_BUILD_DIR)/bin" ; \ export $(GO_PKG_TARGET_VARS) ; \ $(CP) go go-host ; \ - GOROOT_FINAL="$(PKG_GO_ROOT)" \ GO_GCC_HELPER_CC="$(TARGET_CC)" \ GO_GCC_HELPER_CXX="$(TARGET_CXX)" \ $(PKG_GO_VARS) \