golang: set GOARM64 based on CONFIG_CPU_TYPE

Fixes: https://github.com/openwrt/packages/issues/26852
Signed-off-by: George Sapkin <george@sapk.in>
This commit is contained in:
George Sapkin
2025-11-02 00:27:22 +02:00
parent e1b49dc033
commit bfd5e0e899
3 changed files with 47 additions and 1 deletions

View File

@@ -200,6 +200,7 @@ GO_PKG_TARGET_VARS= \
GO386="$(GO_386)" \
GOAMD64="$(GO_AMD64)" \
GOARM="$(GO_ARM)" \
GOARM64="$(GO_ARM64)" \
GOMIPS="$(GO_MIPS)" \
GOMIPS64="$(GO_MIPS64)" \
GOPPC64="$(GO_PPC64)" \

View File

@@ -147,6 +147,34 @@ GO_HOST_ARCH:=$(call go_arch,$(subst \
i686,i386,$(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
GO_ARM64_V8_0_CORES= \
cortex-a34 \
cortex-a35 \
cortex-a53 \
cortex-a57 \
cortex-a72 \
cortex-a73
GO_ARM64_V8_2_CORES= \
cortex-a55 \
cortex-a65 \
cortex-a75 \
cortex-a76 \
cortex-a77 \
cortex-a78 \
cortex-x1
GO_ARM64_V9_0_CORES= \
cortex-a510 \
cortex-a710 \
cortex-a715 \
cortex-x2 \
cortex-x3
GO_ARM64_V9_2_CORES= \
cortex-a520 \
cortex-a720 \
cortex-x4
ifeq ($(GO_OS_ARCH),$(GO_HOST_OS_ARCH))
GO_HOST_TARGET_SAME:=1
else
@@ -180,6 +208,22 @@ else ifeq ($(GO_ARCH),arm)
GO_ARM:=7
endif
else ifeq ($(GO_ARCH),arm64)
GO_TARGET_CPU:=$(call qstrip,$(CONFIG_CPU_TYPE))
ifneq ($(filter $(GO_TARGET_CPU),$(GO_ARM64_V8_0_CORES)),)
GO_ARM64:=v8.0
else ifneq ($(filter $(GO_TARGET_CPU),$(GO_ARM64_V8_2_CORES)),)
GO_ARM64:=v8.2
else ifneq ($(filter $(GO_TARGET_CPU),$(GO_ARM64_V9_0_CORES)),)
GO_ARM64:=v9.0
else ifneq ($(filter $(GO_TARGET_CPU),$(GO_ARM64_V9_2_CORES)),)
GO_ARM64:=v9.2
else
# Unknown CPU, assume baseline
GO_ARM64:=v8.0
endif
else ifneq ($(filter $(GO_ARCH),mips mipsle),)
ifeq ($(CONFIG_HAS_FPU),y)
GO_MIPS:=hardfloat

View File

@@ -12,7 +12,7 @@ GO_VERSION_PATCH:=4
PKG_NAME:=golang
PKG_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH))
PKG_RELEASE:=1
PKG_RELEASE:=2
GO_SOURCE_URLS:=https://dl.google.com/go/ \
https://mirrors.ustc.edu.cn/golang/ \
@@ -357,6 +357,7 @@ PKG_GO_ZBOOTSTRAP_MODS:= \
s/defaultGO386 = `[^`]*`/defaultGO386 = `$(or $(GO_386),sse2)`/; \
s/defaultGOAMD64 = `[^`]*`/defaultGOAMD64 = `$(or $(GO_AMD64),v1)`/; \
s/defaultGOARM = `[^`]*`/defaultGOARM = `$(or $(GO_ARM),7)`/; \
s/defaultGOARM64 = `[^`]*`/defaultGOARM64 = `$(or $(GO_ARM64),v8.0)`/; \
s/defaultGOMIPS = `[^`]*`/defaultGOMIPS = `$(or $(GO_MIPS),hardfloat)`/; \
s/defaultGOMIPS64 = `[^`]*`/defaultGOMIPS64 = `$(or $(GO_MIPS64),hardfloat)`/; \
s/defaultGOPPC64 = `[^`]*`/defaultGOPPC64 = `$(or $(GO_PPC64),power8)`/;