diff --git a/lang/golang/golang-bootstrap/Makefile b/lang/golang/golang-bootstrap/Makefile index c5dc7852a7..80f74222fb 100644 --- a/lang/golang/golang-bootstrap/Makefile +++ b/lang/golang/golang-bootstrap/Makefile @@ -37,35 +37,56 @@ HOST_GO_PREFIX:=$(STAGING_DIR_HOSTPKG) HOST_GO_VERSION_ID:=bootstrap HOST_GO_ROOT:=$(HOST_GO_PREFIX)/lib/go-$(HOST_GO_VERSION_ID) +# From go tool dist list HOST_GO_VALID_OS_ARCH:= \ - android_386 android_amd64 android_arm android_arm64 \ - freebsd_386 freebsd_amd64 freebsd_arm freebsd_arm64 \ - linux_386 linux_amd64 linux_arm linux_arm64 \ - openbsd_386 openbsd_amd64 openbsd_arm openbsd_arm64 \ - netbsd_386 netbsd_amd64 netbsd_arm netbsd_arm64 \ - windows_386 windows_amd64 windows_arm windows_arm64 \ - \ - plan9_386 plan9_amd64 plan9_arm \ - \ - darwin_amd64 darwin_arm64 \ - ios_amd64 ios_arm64 \ - \ - dragonfly_amd64 \ - illumos_amd64 \ - 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_loong64 linux_riscv64 linux_s390x \ - \ - openbsd_mips64 + aix/ppc64 \ + android/386 \ + android/amd64 \ + android/arm \ + android/arm64 \ + darwin/amd64 \ + darwin/arm64 \ + dragonfly/amd64 \ + freebsd/386 \ + freebsd/amd64 \ + freebsd/arm \ + freebsd/arm64 \ + freebsd/riscv64 \ + illumos/amd64 \ + ios/amd64 \ + ios/arm64 \ + js/wasm \ + linux/386 \ + linux/amd64 \ + linux/arm \ + linux/arm64 \ + linux/loong64 \ + linux/mips \ + linux/mips64 \ + linux/mips64le \ + linux/mipsle \ + linux/ppc64 \ + linux/ppc64le \ + linux/riscv64 \ + linux/s390x \ + netbsd/386 \ + netbsd/amd64 \ + netbsd/arm \ + netbsd/arm64 \ + openbsd/386 \ + openbsd/amd64 \ + openbsd/arm \ + openbsd/arm64 \ + openbsd/ppc64 \ + plan9/386 \ + plan9/amd64 \ + plan9/arm \ + solaris/amd64 \ + wasip1/wasm \ + windows/386 \ + windows/amd64 \ + windows/arm \ + windows/arm64 BOOTSTRAP_SOURCE:=go1.4-bootstrap-20171003.tar.gz BOOTSTRAP_SOURCE_URL:=$(GO_SOURCE_URLS) @@ -74,15 +95,26 @@ BOOTSTRAP_HASH:=f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52 BOOTSTRAP_BUILD_DIR:=$(HOST_BUILD_DIR)/.go_bootstrap BOOTSTRAP_GO_VALID_OS_ARCH:= \ - darwin_386 darwin_amd64 \ - dragonfly_386 dragonfly_amd64 \ - freebsd_386 freebsd_amd64 freebsd_arm \ - linux_386 linux_amd64 linux_arm \ - netbsd_386 netbsd_amd64 netbsd_arm \ - openbsd_386 openbsd_amd64 \ - plan9_386 plan9_amd64 \ - solaris_amd64 \ - windows_386 windows_amd64 + darwin/386 \ + darwin/amd64 \ + dragonfly/386 \ + dragonfly/amd64 \ + freebsd/386 \ + freebsd/amd64 \ + freebsd/arm \ + linux/386 \ + linux/amd64 \ + linux/arm \ + netbsd/386 \ + netbsd/amd64 \ + netbsd/arm \ + openbsd/386 \ + openbsd/amd64 \ + plan9/386 \ + plan9/amd64 \ + solaris/amd64 \ + windows/386 \ + windows/amd64 BOOTSTRAP_1_17_SOURCE:=go1.17.13.src.tar.gz BOOTSTRAP_1_17_SOURCE_URL:=$(GO_SOURCE_URLS) diff --git a/lang/golang/golang-compiler.mk b/lang/golang/golang-compiler.mk index c304a8d41d..5032836d87 100644 --- a/lang/golang/golang-compiler.mk +++ b/lang/golang/golang-compiler.mk @@ -57,7 +57,7 @@ endef # 1: source go root # 2: destination prefix # 3: go version id -# 4: GOOS_GOARCH +# 4: GOOS_GOARCH with / as a separator # 5: install suffix (optional) # 6: if target, package architecture-specific sources define GoCompiler/Default/Install/Bin @@ -76,19 +76,21 @@ define GoCompiler/Default/Install/Bin $(INSTALL_DIR) "$(2)/lib/go-$(3)/bin" + $(eval GO_HOST_OS_ARCH_PATH:=$(subst /,_,$(4))) + ifeq ($(4),$(GO_HOST_OS_ARCH)) $(INSTALL_BIN) -p "$(1)/bin"/* "$(2)/lib/go-$(3)/bin/" else - $(INSTALL_BIN) -p "$(1)/bin/$(4)"/* "$(2)/lib/go-$(3)/bin/" + $(INSTALL_BIN) -p "$(1)/bin/$(GO_HOST_OS_ARCH_PATH)"/* "$(2)/lib/go-$(3)/bin/" endif - if [ -d "$(1)/pkg/$(4)$(if $(5),_$(5))" ]; then \ + if [ -d "$(1)/pkg/$(GO_HOST_OS_ARCH_PATH)$(if $(5),_$(5))" ]; then \ $(INSTALL_DIR) "$(2)/lib/go-$(3)/pkg" ; \ - $(CP) "$(1)/pkg/$(4)$(if $(5),_$(5))" "$(2)/lib/go-$(3)/pkg/" ; \ + $(CP) "$(1)/pkg/$(GO_HOST_OS_ARCH_PATH)$(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)/" + $(INSTALL_DIR) "$(2)/lib/go-$(3)/pkg/tool/$(GO_HOST_OS_ARCH_PATH)" + $(INSTALL_BIN) -p "$(1)/pkg/tool/$(GO_HOST_OS_ARCH_PATH)"/* "$(2)/lib/go-$(3)/pkg/tool/$(GO_HOST_OS_ARCH_PATH)/" endef # 1: destination prefix @@ -163,7 +165,7 @@ endef # 2: source go root # 3: destination prefix # 4: go version id -# 5: GOOS_GOARCH +# 5: GOOS_GOARCH with / as a separator # 6: install suffix (optional) define GoCompiler/AddProfile diff --git a/lang/golang/golang-package.mk b/lang/golang/golang-package.mk index b0cb5eb126..16dac03710 100644 --- a/lang/golang/golang-package.mk +++ b/lang/golang/golang-package.mk @@ -128,7 +128,7 @@ GO_PKG_INSTALL_BIN_PATH?=/usr/bin GO_PKG_WORK_DIR_NAME:=.go_work GO_PKG_BUILD_DIR=$(PKG_BUILD_DIR)/$(GO_PKG_WORK_DIR_NAME)/build -GO_PKG_BUILD_BIN_DIR=$(GO_PKG_BUILD_DIR)/bin$(if $(GO_HOST_TARGET_DIFFERENT),/$(GO_OS_ARCH)) +GO_PKG_BUILD_BIN_DIR=$(GO_PKG_BUILD_DIR)/bin$(if $(GO_HOST_TARGET_DIFFERENT),/$(subst /,_,$(GO_OS_ARCH))) GO_PKG_BUILD_DEPENDS_PATH:=/usr/share/gocode GO_PKG_BUILD_DEPENDS_SRC=$(STAGING_DIR)$(GO_PKG_BUILD_DEPENDS_PATH)/src diff --git a/lang/golang/golang-values.mk b/lang/golang/golang-values.mk index 64913f3534..f3d26e0956 100644 --- a/lang/golang/golang-values.mk +++ b/lang/golang/golang-values.mk @@ -143,14 +143,14 @@ go_arch=$(subst \ GO_OS:=linux GO_ARCH:=$(call go_arch,$(ARCH)) -GO_OS_ARCH:=$(GO_OS)_$(GO_ARCH) +GO_OS_ARCH:=$(GO_OS)/$(GO_ARCH) GO_HOST_OS:=$(call tolower,$(HOST_OS)) GO_HOST_ARCH:=$(call go_arch,$(subst \ armv6l,arm,$(subst \ armv7l,arm,$(subst \ i686,i386,$(HOST_ARCH))))) -GO_HOST_OS_ARCH:=$(GO_HOST_OS)_$(GO_HOST_ARCH) +GO_HOST_OS_ARCH:=$(GO_HOST_OS)/$(GO_HOST_ARCH) # Filter lists for ARM64 cores # See https://en.wikipedia.org/wiki/ARM_architecture_family#Cores @@ -285,21 +285,32 @@ GO_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||loongarch64||mips||mips64||mips64el # 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_arm64 \ - \ - darwin_amd64 darwin_arm64 \ - ios_amd64 ios_arm64 \ - \ - freebsd_amd64 \ - \ - aix_ppc64 \ - \ - linux_loong64 linux_ppc64le linux_riscv64 linux_s390x + aix/ppc64 \ + android/386 \ + android/amd64 \ + android/arm \ + android/arm64 \ + darwin/amd64 \ + darwin/arm64 \ + freebsd/amd64 \ + ios/amd64 \ + ios/arm64 \ + linux/386 \ + linux/amd64 \ + linux/arm \ + linux/arm64 \ + linux/loong64 \ + linux/ppc64le \ + linux/riscv64 \ + linux/s390x \ + openbsd/arm64 \ + windows/386 \ + windows/amd64 \ + windows/arm \ + windows/arm64 # 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 windows_arm64),,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/lang/golang/golang1.25/Makefile b/lang/golang/golang1.25/Makefile index 700bd92c3e..68b5dad7ea 100644 --- a/lang/golang/golang1.25/Makefile +++ b/lang/golang/golang1.25/Makefile @@ -41,35 +41,56 @@ HOST_BUILD_DEPENDS:=golang$(if $(filter bootstrap,$(GO_BOOTSTRAP_VERSION)),-)$(G HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/go-$(PKG_VERSION) HOST_BUILD_PARALLEL:=1 +# From go tool dist list HOST_GO_VALID_OS_ARCH:= \ - android_386 android_amd64 android_arm android_arm64 \ - freebsd_386 freebsd_amd64 freebsd_arm freebsd_arm64 \ - linux_386 linux_amd64 linux_arm linux_arm64 \ - openbsd_386 openbsd_amd64 openbsd_arm openbsd_arm64 \ - netbsd_386 netbsd_amd64 netbsd_arm netbsd_arm64 \ - windows_386 windows_amd64 windows_arm windows_arm64 \ - \ - plan9_386 plan9_amd64 plan9_arm \ - \ - darwin_amd64 darwin_arm64 \ - ios_amd64 ios_arm64 \ - \ - dragonfly_amd64 \ - illumos_amd64 \ - 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_loong64 linux_riscv64 linux_s390x \ - \ - openbsd_mips64 + aix/ppc64 \ + android/386 \ + android/amd64 \ + android/arm \ + android/arm64 \ + darwin/amd64 \ + darwin/arm64 \ + dragonfly/amd64 \ + freebsd/386 \ + freebsd/amd64 \ + freebsd/arm \ + freebsd/arm64 \ + freebsd/riscv64 \ + illumos/amd64 \ + ios/amd64 \ + ios/arm64 \ + js/wasm \ + linux/386 \ + linux/amd64 \ + linux/arm \ + linux/arm64 \ + linux/loong64 \ + linux/mips \ + linux/mips64 \ + linux/mips64le \ + linux/mipsle \ + linux/ppc64 \ + linux/ppc64le \ + linux/riscv64 \ + linux/s390x \ + netbsd/386 \ + netbsd/amd64 \ + netbsd/arm \ + netbsd/arm64 \ + openbsd/386 \ + openbsd/amd64 \ + openbsd/arm \ + openbsd/arm64 \ + openbsd/ppc64 \ + plan9/386 \ + plan9/amd64 \ + plan9/arm \ + solaris/amd64 \ + wasip1/wasm \ + windows/386 \ + windows/amd64 \ + windows/arm \ + windows/arm64 include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/package.mk