Files
shredos.x86_64/package/go/Config.in.host
2026-01-06 22:53:29 +00:00

94 lines
3.4 KiB
Plaintext

# Target go packages should depend on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
config BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
bool
default y
depends on BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE4_ARCH_SUPPORTS || BR2_PACKAGE_HOST_GO_BIN_HOST_ARCH_SUPPORTS
# See https://go.dev/doc/install/source#environment
# See src/go/build/syslist.go for the list of supported architectures
depends on (BR2_arm && BR2_TOOLCHAIN_SUPPORTS_PIE) || BR2_aarch64 \
|| BR2_i386 || BR2_x86_64 || BR2_powerpc64le \
|| BR2_mips64 || BR2_mips64el || BR2_riscv || BR2_s390x
depends on !BR2_ARM_CPU_ARMV4
# MIPS R6 support in Go has not yet been developed.
depends on !BR2_MIPS_CPU_MIPS64R6
# Go doesn't support Risc-v 32-bit.
depends on !BR2_RISCV_32
# Go requires the following Risc-v General (G) features:
depends on !BR2_riscv || (BR2_RISCV_ISA_RVI && \
BR2_RISCV_ISA_RVM && BR2_RISCV_ISA_RVA && \
BR2_RISCV_ISA_RVF && BR2_RISCV_ISA_RVD)
config BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS
bool
default y
depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
# Go doesn't support CGO linking on MIPS64x platforms
# See: https://github.com/karalabe/xgo/issues/46
depends on !BR2_mips64 && !BR2_mips64el
# go uses dlfcn.h + cgo for its plugin module
depends on !BR2_STATIC_LIBS
# cgo supports uses threads
depends on BR2_TOOLCHAIN_HAS_THREADS
# Host go packages should depend on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS
config BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS
bool
default y
depends on BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE4_ARCH_SUPPORTS || BR2_PACKAGE_HOST_GO_BIN_HOST_ARCH_SUPPORTS
# CGO linking for the host. Since we use the same compiler for target
# and host, if the target can't do CGO linking, then the host can't.
# But if the target is not supported by Go, then the host can do CGO
# linking (except when it itself does not support CGO linking).
config BR2_PACKAGE_HOST_GO_HOST_CGO_LINKING_SUPPORTS
bool
default y if BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS
default y if !BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
depends on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS
depends on BR2_HOSTARCH != "mips64"
depends on BR2_HOSTARCH != "mips64el"
# Go packages should select BR2_PACKAGE_HOST_GO
config BR2_PACKAGE_HOST_GO
bool "host go"
depends on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS
if BR2_PACKAGE_HOST_GO
choice
prompt "Go compiler variant"
default BR2_PACKAGE_HOST_GO_SRC if BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE4_ARCH_SUPPORTS
default BR2_PACKAGE_HOST_GO_BIN if BR2_PACKAGE_HOST_GO_BIN_HOST_ARCH_SUPPORTS
help
Select a Go compiler variant.
Default to 'host-go-src'.
config BR2_PACKAGE_HOST_GO_SRC
bool "host go (source)"
depends on BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE4_ARCH_SUPPORTS
help
This package will build the go compiler for the host.
config BR2_PACKAGE_HOST_GO_BIN
bool "host go (pre-built)"
depends on BR2_PACKAGE_HOST_GO_BIN_HOST_ARCH_SUPPORTS
help
This package will install pre-built versions of the compiler
endchoice
endif
config BR2_PACKAGE_PROVIDES_HOST_GO
string
# Default to host-go-bin unless src explicitly requested
default "host-go-src" if BR2_PACKAGE_HOST_GO_SRC
default "host-go-bin"
source "package/go/go-bin/Config.in.host"
source "package/go/go-bootstrap-stage1/Config.in.host"
source "package/go/go-bootstrap-stage2/Config.in.host"
source "package/go/go-bootstrap-stage3/Config.in.host"
source "package/go/go-bootstrap-stage4/Config.in.host"