Commitfa2536ec94(package/go: make host package a virtual package) introduced host-go as a host-only virtual package, which had a single provider, the choice of which is only exposed when a (target or host) package has selected BR2_PACKAGE_HOST_GO to indicate it needs host-go. However, this forgot to account for prompt-less, host-only packages, which have no way of selecting that symbol. Having prompt-less, host-only packages is a totally unexceptional, supported case; for example a host package can be depended upon by another (target or host) package, or by a filesystem, and we do not require Kconfig symbols to be exposed for those packages. As a consequence, when not package is enabled, that can select that symbol, we can't run 'make source' or 'make host-foo-source': make[1]: *** No rule to make target 'host-', needed by '[...]/build/host-go-1.22.4/.stamp_configured'. Stop. Fix that by moving the provider symbol out of the if-block, so that there is always a provider defined. Now, we only have host-go-src as a provider, but the symbol is still part of the choice that is conditional (and that _has_ to be conditional), so the BR2_PACKAGE_HOST_GO_SRC can never be set unless there is a package that explicitly select BR2_PACKAGE_HOST_GO. So, drop the conditional on the default, so that there is always a provider available. This mirrors other similar situations, like the rust case. Fixes:fa2536ec94Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> LGTM: Arnout Vandecappelle (Essensium/Mind) (on IRC) <arnout@mind.be>
67 lines
2.0 KiB
Plaintext
67 lines
2.0 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_STAGE3_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
|
|
|
|
# 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_STAGE3_ARCH_SUPPORTS
|
|
|
|
# Go packages should select BR2_PACKAGE_HOST_GO
|
|
config BR2_PACKAGE_HOST_GO
|
|
bool
|
|
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
|
|
help
|
|
Select a Go compiler variant.
|
|
|
|
Default to 'host-go-src'.
|
|
|
|
config BR2_PACKAGE_HOST_GO_SRC
|
|
bool "host go (source)"
|
|
help
|
|
This package will build the go compiler for the host.
|
|
|
|
endchoice
|
|
|
|
endif
|
|
|
|
config BR2_PACKAGE_PROVIDES_HOST_GO
|
|
string
|
|
# Default to host-go-src, as the only provider for now
|
|
default "host-go-src"
|
|
|
|
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"
|